diff --git a/README.md b/README.md
new file mode 100644
index 0000000..eefa8f2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,452 @@
+# Generating ROSE Code from RISC-V SAIL
+
+This README file describes the end-to-end pipeline for generating ROSE C++ instruction semantics from the official RISC-V formal specification written in SAIL. The pipeline consists of two stages:
+
+1. **SAIL → JSON**: An OCaml-based frontend parses the SAIL semantics and emits a simplified JSON representation.
+2. **JSON → ROSE**: A Perl-based source-to-source compiler translates the JSON semantics into ROSE C++ code.
+
+The focus of this document is on how to build and run each stage, and how to extend the pipeline for new instruction sets or extensions.
+
+## Overview of the Pipeline
+
+```
+SAIL (.sail files)
+ ↓
+OCaml SAIL parser (JSON backend)
+ ↓
+JSON semantics
+ ↓
+Perl JSON-to-ROSE compiler
+ ↓
+ROSE C++ instruction semantics
+```
+
+## Stage 1: SAIL to JSON
+
+### SAIL JSON Backend
+
+This backend parses SAIL semantics and emits a JSON representation of functions (in particular, instruction `execute` functions), which is later consumed by the ROSE generator. The current JSON backend is based on sail 0.20.
+
+### Required Dependencies
+
+To build the SAIL toolchain with the JSON backend, the following dependencies are required:
+
+* `libgmp-dev`
+* `z3`
+* `pkg-config`
+
+#### Ubuntu
+
+```bash
+sudo apt-get install build-essential libgmp-dev z3 pkg-config
+```
+
+#### macOS (Homebrew)
+
+```bash
+brew install gmp z3 pkgconf
+```
+
+### OCaml Version Requirement
+
+The parser requires **OCaml ≥ 4.08.1**. If your system OCaml is older, create a newer switch using Opam:
+
+```bash
+opam switch create 5.1.0
+eval $(opam config env)
+```
+
+### Add JSON backend to SAIL
+
+To add support for emitting JSON representation of SAIL, clone the SAIL repository from and checking out the correct version. The RISC-V SAIL model (v0.9) currently requires SAIL **version 0.20**, so make sure to switch to that tag explicitly:
+
+```bash
+git clone https://github.com/rems-project/sail/
+cd sail
+git switch -c v0.20 0.20
+```
+
+Next, update `dune-project` to register a new package for the JSON backend. Add the following line to `dune-project`:
+
+```diff
+ (base64 (>= 3.1.0))
+ (omd (and (>= 1.3.1) (< 1.4.0)))))
++(package
++ (name sail_json_backend)
++ (synopsis "Sail to JSON translation")
++ (depends
++ (libsail (= :version))))
++
+ (package
+ (name sail)
+ (synopsis "Sail is a language for describing the instruction semantics of processors")
+```
+
+Finally, copy the OPAM file and backend source directory into the SAIL repo:
+
+```bash
+cp path/to/dyninst-sail-to-rose/sail_json_backend.opam .
+cp path/to/dyninst-sail-to-rose/sail_json_backend ./src
+```
+
+With these steps, the SAIL repo will include the JSON backend.
+
+### Building the SAIL Parser
+
+Once dependencies and the OCaml version are set up, install SAIL with the JSON backend:
+
+```bash
+opam install sail
+```
+
+After a successful build, the `sail` binary will be available in your Opam switch (or current directory). Verify the installation with:
+
+```bash
+sail --help
+```
+
+## Preparing the RISC-V SAIL Semantics
+
+### Obtaining the RISC-V SAIL Model
+
+The official RISC-V SAIL semantics are available at . Currently, **version 0.9** of the RISC-V SAIL model is supported. Check out this version explicitly:
+
+```bash
+git clone https://github.com/riscv/sail-riscv
+cd sail-riscv
+git switch -c v0.9 0.9
+```
+
+All relevant SAIL source files live under the `model/` directory.
+
+### Linking the Model Directory
+
+Change the directory back to `sail-to-json` and create symbolic link to the RISC-V model directory:
+
+```bash
+cd path/to/dyninst-sail-to-rose/sail-to-json
+ln -s path/to/sail-riscv/model model
+```
+
+This allows the SAIL toolchain to locate the RISC-V semantics during parsing easily.
+
+### SAIL Configuration File
+
+RISC-V SAIL uses a JSON configuration file to select ISA profiles and extensions. A sample configuration for the `rv64gc` profile is provided in `config/rv64gc.json`
+
+This file specifies:
+
+* Base ISA and extensions
+* Architectural parameters (e.g., XLEN)
+* Miscellaneous platform information
+
+To enable an extension (for example, the **Zicond** extension), change its `supported` field:
+
+```json
+"Zicond": {
+ "supported": false
+}
+```
+
+becomes:
+
+```json
+"Zicond": {
+ "supported": true
+}
+```
+
+### The `riscv.sail_project` File
+
+The `riscv.sail_project` file defines how SAIL source files are grouped and built. Conceptually, it plays a role similar to a Makefile: it declares modules, dependencies, and configuration variables that are applied before typechecking and code generation.
+
+A sample project file is located at `riscv.sail_project`. `sail_project` is made out of several `sail_project` blocks, which typically defines the following properties:
+
+* Declares which Sail files belong to the project
+* Defines the file path of the Sail files
+* Sets dependencies for a specific extension
+* Controls build ordering of source files
+
+#### Adding a New Extension
+
+To include a new extension like `Zicond`, add the following to `riscv.sail_project`:
+
+```sail
+Zicond {
+ Zicond_types {
+ before sys
+ files extensions/Zicond/zicond_types.sail
+ }
+ Zicond_insts {
+ requires sys, Zicond_types
+ files extensions/Zicond/zicond_insts.sail
+ }
+}
+
+```
+
+### Generating the JSON Semantics
+
+With the configuration in place, run SAIL with the JSON backend:
+
+```bash
+sail --config config/rv64gc.json \
+ --no-warn \
+ --strict-var \
+ --json -O --Oconstant-fold \
+ --all-modules \
+ riscv.sail_project > sail_semantics.json
+```
+
+This produces `sail_semantics.json`, which contains the serialized semantics of all included instruction sets.
+
+## Stage 2: JSON to ROSE
+
+The second stage consumes `sail_semantics.json` and generates ROSE C++ code. This stage is implemented as a Perl-based source-to-source compiler.
+
+In the RISC-V SAIL model, instruction semantics are grouped by **instruction sets** (not by extensions). Each instruction set defines an `execute` function, which is the entry point for semantic execution. The JSON representation of these `execute` functions is what the ROSE generator operates on.
+
+### Install Dependencies
+
+The following Perl modules are required for the parser:
+
+* FindBin
+* JSON
+* Tie::IxHash
+
+Install them using `cpan install`:
+
+```bash
+cpan install FindBin JSON Tie::IxHash
+```
+
+### Generating ROSE Code for an Instruction Set
+
+For example, the `auipc` instruction belongs to the `UTYPE` instruction set. To generate its ROSE semantics:
+
+```bash
+perl json_to_rose.pl --insn-set=UTYPE
+```
+
+This extracts the `execute` function for `UTYPE` from the JSON file, builds an internal AST, and emits the corresponding ROSE C++ code.
+
+```cpp
+struct IP_UTYPE : P {
+ void p(D d, Ops ops, I insn, A args, B raw) {
+ SgAsmExpression *imm = args[1];
+ SgAsmExpression *rd = args[0];
+ enum Riscv64InstructionKind op = insn->get_kind();
+
+ BaseSemantics::SValuePtr off;
+ off = d->SignExtend(ops->shiftLeft(d->read(imm, 64, 0), ops->number_(64, 12)), 64);
+ switch (op) {
+ case rose_riscv64_op_lui:
+ d->write(rd, off);
+ break;
+ }
+ case rose_riscv64_op_auipc:
+ d->write(rd, ops->add(PC, off));
+ break;
+ }
+ default:
+ assert(0);
+ break;
+ };
+ return;
+ }
+};
+```
+
+## Structure of the JSON-to-ROSE Compiler
+
+The Perl implementation is organized as follows:
+
+* **`json_to_rose.pl`**: Entry point of the JSON-to-ROSE compiler
+* **`ASTBuild.pm`**: Builds an internal AST from the JSON representation of SAIL functions
+* **`ASTBuildFunc.pm`**: Delegates construction of complex function AST nodes to specialized handlers
+* **`ASTBuildHelper.pm`**: Helper routines for AST construction
+* **`ASTNode.pm`**: Definitions of internal AST nodes
+* **`ASTType.pm`**: Type information for AST nodes
+* **`ASTAdjust.pm`**: Post-processing and normalization of the AST
+* **`PrintROSE.pm`**: Emits ROSE C++ code from the internal AST
+* **`ParserCommon.pm`**: Shared utilities
+* **`ParserConfig.pm`**: Configuration for instruction sets, argument mappings, and supported extensions
+
+## Mapping SAIL Arguments to ROSE Arguments
+
+SAIL and ROSE use different calling conventions for instruction semantics. Bridging this gap is handled in `ParserConfig.pm`.
+
+### Example: `ITYPE`
+
+In SAIL, the `ITYPE` instruction set is defined as:
+
+```ocaml
+function clause execute ITYPE(imm, rs1, rd, op) = {
+ ...
+}
+```
+
+In ROSE, the semantic function has the form:
+
+```cpp
+void p(D d, Ops ops, I insn, A args, B raw) {
+ ...
+}
+```
+
+ROSE passes instruction operands through `args`, in the same order returned by Capstone:
+
+* `args[0]` → `rd`
+* `args[1]` → `rs1`
+* `args[2]` → `imm`
+
+The SAIL `op` argument corresponds to the instruction kind, which can be obtained in ROSE via `insn->get_kind()`.
+
+The mapping in `ParserConfig.pm` is therefore:
+
+```perl
+ITYPE => ordered_hash(
+ imm => {
+ init_code => sub {
+ print_indent("SgAsmExpression *imm = args[2];\n", 2);
+ },
+ need_read => 1,
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent("SgAsmExpression *rs1 = args[1];\n", 2);
+ },
+ },
+ rd => {
+ init_code => sub {
+ print_indent("SgAsmExpression *rd = args[0];\n", 2);
+ },
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+),
+```
+
+### Example: Adding the `RORI` Instruction (B Extension)
+
+1. Enable the `B` extension in the SAIL configuration file
+
+```json
+"B": {
+ "supported": true
+}
+```
+
+2. Add the `B` extension SAIL files to `riscv.sail_project`:
+
+```sail
+B {
+ B_types {
+ before sys
+ files model/extensions/B/bext_types.sail
+ }
+
+ B_insts {
+ requires sys, B_types
+
+ Zba {
+ files model/extensions/B/zba_insts.sail
+ }
+ Zbb {
+ files model/extensions/B/zbb_insts.sail
+ }
+ Zbc {
+ files model/extensions/B/zbc_insts.sail
+ }
+ Zbs {
+ files model/extensions/B/zbs_insts.sail
+ }
+ }
+}
+```
+
+3. Add `RORI` to the supported instruction set, as well as `Ext_B` to the supported extension in `ParserConfig.pm`:
+
+```perl
+...
+our @supported_riscv_subsets = (
+ "UTYPE", "BTYPE", ..., "RORI"
+);
+...
+our @supported_riscv_exts = (
+ "Ext_M", "Ext_A", ..., "Ext_B"
+)
+...
+```
+
+4. Locate the `execute` function of the `RORI` instruction from `extensions/B/zbb_insts.sail`:
+
+```ocaml
+function clause execute RORI(shamt, rs1, rd) = {
+ let shamt = shamt[log2_xlen - 1 .. 0];
+ X(rd) = X(rs1) >>> shamt;
+ RETIRE_SUCCESS
+}
+```
+
+This instruction takes three arguments: `shamt`, `rs1`, and `rd`.
+
+Since Capstone does not currently support the B extension, we assume the following operand order:
+
+* `args[0]` → `rd`
+* `args[1]` → `rs1`
+* `args[2]` → immediate (`shamt`)
+
+The corresponding mapping in `ParserConfig.pm` is:
+
+```perl
+RORI => ordered_hash(
+ shamt => {
+ init_code => sub {
+ print_indent("SgAsmExpression *imm = args[2];\n", 2);
+ },
+ need_read => 1,
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent("SgAsmExpression *rs1 = args[1];\n", 2);
+ },
+ },
+ rd => {
+ init_code => sub {
+ print_indent("SgAsmExpression *rd = args[0];\n", 2);
+ },
+ },
+),
+```
+
+Add the above code to `%ARGS_PER_SUBSET`.
+
+4. Once the mapping is defined, regenerate the ROSE code with:
+
+```bash
+perl json_to_rose.pl --insn-set=RORI
+```
+
+This produces the ROSE C++ semantics for the `RORI` instruction set.
+
+```cpp
+struct IP_RORI : P {
+ void p(D d, Ops ops, I insn, A args, B raw) {
+ SgAsmExpression *shamt = args[2];
+ SgAsmExpression *rs1 = args[1];
+ SgAsmExpression *rd = args[0];
+
+ BaseSemantics::SValuePtr shamt;
+ shamt = ops->extract(shamt, 0, 5);
+ d->write(rd, ops->rotateRight(d->read(rs1, 64, 0), shamt));
+ return;
+ }
+};
+```
diff --git a/json-to-rose/ASTAdjust.pm b/json-to-rose/ASTAdjust.pm
new file mode 100644
index 0000000..d40e978
--- /dev/null
+++ b/json-to-rose/ASTAdjust.pm
@@ -0,0 +1,890 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ASTAdjust;
+
+use strict;
+use warnings;
+
+use Data::Dumper;
+
+use Exporter 'import';
+use lib "$FindBin::Bin";
+use ParserCommon qw(
+ XLEN
+ WIDTH_BYTES_VAR
+);
+
+# Attempt to constant-fold an AST
+# Returns:
+# { ok => 1, value => } if fully foldable
+# { ok => 0 } otherwise
+sub try_const_fold {
+ my ($curr_node) = @_;
+ if ( $curr_node->is_num_node() ) {
+ return { ok => 1, value => $curr_node->get_value() };
+ }
+ elsif ( $curr_node->is_func_node() ) {
+ my $func_op = $curr_node->get_value();
+ my $func_args = $curr_node->get_children();
+
+ my %unary_op_lambda = (
+ ASTType::ROSE_OP_NEG => sub {
+ my ($x) = @_;
+ return -$x;
+ },
+ ASTType::ROSE_OP_BNOT => sub {
+ my ($x) = @_;
+ return ~$x;
+ },
+ );
+ my %binary_op_lambda = (
+ ASTType::ROSE_OP_ADD => sub {
+ my ( $x, $y ) = @_;
+ return $x + $y;
+ },
+ ASTType::ROSE_OP_SUB => sub {
+ my ( $x, $y ) = @_;
+ return $x - $y;
+ },
+ ASTType::ROSE_OP_SMUL => sub {
+ my ( $x, $y ) = @_;
+ return $x * $y;
+ },
+ ASTType::ROSE_OP_SDIV => sub {
+ my ( $x, $y ) = @_;
+ return $x / $y;
+ },
+ ASTType::ROSE_OP_SREM => sub {
+ my ( $x, $y ) = @_;
+ return $x % $y;
+ },
+ ASTType::ROSE_OP_SHIFT_LEFT => sub {
+ my ( $x, $y ) = @_;
+ return $x << $y;
+ },
+ ASTType::ROSE_OP_SHIFT_RIGHT => sub {
+ my ( $x, $y ) = @_;
+ return ( $x & ( ( 1 << XLEN ) - 1 ) ) >> $y;
+ },
+ ASTType::ROSE_OP_SHIFT_RIGHT_ARITH => sub {
+ my ( $x, $y ) = @_;
+ return $x >> $y;
+ },
+ ASTType::ROSE_OP_ROTATE_LEFT => sub {
+ my ( $x, $y ) = @_;
+ return ( $x << $y ) | ( $x >> ( XLEN - $y ) );
+ },
+ ASTType::ROSE_OP_ROTATE_RIGHT => sub {
+ my ( $x, $y ) = @_;
+ return ( $x >> $y ) | ( $x << ( XLEN - $y ) );
+ },
+ ASTType::ROSE_OP_BAND => sub {
+ my ( $x, $y ) = @_;
+ return $x & $y;
+ },
+ ASTType::ROSE_OP_BOR => sub {
+ my ( $x, $y ) = @_;
+ return $x | $y;
+ },
+ ASTType::ROSE_OP_BXOR => sub {
+ my ( $x, $y ) = @_;
+ return $x ^ $y;
+ },
+ ASTType::ROSE_OP_EQ => sub {
+ my ( $x, $y ) = @_;
+ return $x == $y;
+ },
+ ASTType::ROSE_OP_NEQ => sub {
+ my ( $x, $y ) = @_;
+ return $x != $y;
+ },
+ ASTType::ROSE_OP_SIGNED_LT => sub {
+ my ( $x, $y ) = @_;
+ return $x < $y;
+ },
+ ASTType::ROSE_OP_SIGNED_GT => sub {
+ my ( $x, $y ) = @_;
+ return $x > $y;
+ },
+ ASTType::ROSE_OP_SIGNED_LEQ => sub {
+ my ( $x, $y ) = @_;
+ return $x <= $y;
+ },
+ ASTType::ROSE_OP_SIGNED_GEQ => sub {
+ my ( $x, $y ) = @_;
+ return $x >= $y;
+ },
+ ASTType::ROSE_OP_UNSIGNED_LT => sub {
+ my ( $x, $y ) = @_;
+ my $mask = ( 1 << XLEN ) - 1;
+ return ( ( $a & $mask ) < ( $b & $mask ) ) ? 1 : 0;
+ },
+ ASTType::ROSE_OP_UNSIGNED_GT => sub {
+ my ( $x, $y ) = @_;
+ my $mask = ( 1 << XLEN ) - 1;
+ return ( ( $a & $mask ) > ( $b & $mask ) ) ? 1 : 0;
+ },
+ ASTType::ROSE_OP_UNSIGNED_LEQ => sub {
+ my ( $x, $y ) = @_;
+ my $mask = ( 1 << XLEN ) - 1;
+ return ( ( $a & $mask ) <= ( $b & $mask ) ) ? 1 : 0;
+ },
+ ASTType::ROSE_OP_UNSIGNED_GEQ => sub {
+ my ( $x, $y ) = @_;
+ my $mask = ( 1 << XLEN ) - 1;
+ return ( ( $a & $mask ) >= ( $b & $mask ) ) ? 1 : 0;
+ },
+ );
+
+ # Foldable if operand is constant for unary ops
+ if ( $curr_node->has_attribute("unary_op") ) {
+ my $exp_result = try_const_fold( $func_args->[0] );
+ return { ok => 0 } unless $exp_result->{ok};
+ return {
+ ok => 1,
+ value => $unary_op_lambda{ $curr_node->get_value() }
+ ( $exp_result->{value} )
+ };
+ }
+ # Foldable if both operands are constant for binary ops
+ elsif ( $curr_node->has_attribute("binary_op") ) {
+ my $lhs_result = try_const_fold( $func_args->[0] );
+ my $rhs_result = try_const_fold( $func_args->[1] );
+ return { ok => 0 } unless $lhs_result->{ok} && $rhs_result->{ok};
+ return {
+ ok => 1,
+ value => $binary_op_lambda{ $curr_node->get_value() }
+ ( $lhs_result->{value}, $rhs_result->{value} )
+ };
+
+ }
+ }
+ return { ok => 0 };
+}
+
+# Rewrite assignments involving match(...) into EXP_MATCH form.
+# This normalizes:
+# X(rd) = match(...)
+# let foo = match(...)
+# into a single match expression whose arms contain assignments.
+sub adjust_match {
+ my ( $node, $curr_set ) = @_;
+ for my $child ( @{ $node->get_children() } ) {
+ adjust_match( $child, $curr_set );
+ }
+ if ( $node->is_func_node()
+ && $node->is_op(ASTType::ROSE_OP_WRITE_REG)
+ && $node->get_nth_child(1)->is_match_node() )
+ {
+ # X(rd) = match(...)
+ my $match_node = $node->get_nth_child(1);
+ my $key_node = $match_node->get_value();
+ my $match_elem_nodes = $match_node->get_children();
+ for my $elem_node ( @{$match_elem_nodes} ) {
+ my $value_node = $elem_node->get_nth_child(0);
+ my $write_reg_node =
+ ASTNode->new_func_node( ASTType::ROSE_OP_WRITE_REG,
+ [ $node->get_nth_child(0), $value_node ] );
+ $elem_node->set_nth_child( 0, $write_reg_node );
+ }
+ $node->set_type(ASTType::EXP_MATCH);
+ $node->set_value($key_node);
+ $node->set_children($match_elem_nodes);
+ }
+ if ( $node->is_assign_node() && $node->get_nth_child(0)->is_match_node() ) {
+
+ # let foo = match(...)
+ my $match_node = $node->get_nth_child(0);
+ my $key_node = $match_node->get_value();
+ my $match_elem_nodes = $match_node->get_children();
+ for my $elem_node ( @{$match_elem_nodes} ) {
+ my $value_node = $elem_node->get_nth_child(0);
+ my $var_node = $node->get_value();
+ my $assign_node =
+ ASTNode->new_assign_node( $var_node, $value_node );
+ $elem_node->set_nth_child( 0, $assign_node );
+ }
+ $node->set_type(ASTType::EXP_MATCH);
+ $node->set_value($key_node);
+ $node->set_children($match_elem_nodes);
+ }
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ adjust_match( $sibling, $curr_set );
+ }
+}
+
+# Normalize function operands by inserting implicit arguments
+
+# Also rewrite constant operands as LIT_ID type (literals) where required.
+# e.g. d->SignExtend(data, ops->number_(64, 64)) in not valid
+# It should be d->SignExtend(data, 64)
+sub adjust_func_operands {
+ my ( $node, $curr_set ) = @_;
+ for my $child ( @{ $node->get_children() } ) {
+ adjust_func_operands( $child, $curr_set );
+ }
+ if ( $node->is_func_node() ) {
+ my $func_op = $node->get_value();
+ my $func_args = $node->get_children();
+
+ if ( $node->is_op(ASTType::ROSE_OP_READ_MEM) ) {
+
+ # Add Implicit width
+ my $width_bytes_node = ASTNode->new_id_node(WIDTH_BYTES_VAR);
+ push @$func_args, $width_bytes_node;
+ }
+ elsif ( $node->is_op(ASTType::ROSE_OP_WRITE_MEM) ) {
+
+ # Add Implicit width
+ my $width_bytes_node = ASTNode->new_id_node(WIDTH_BYTES_VAR);
+ splice @$func_args, 1, 0, $width_bytes_node;
+ }
+ elsif ($node->is_op(ASTType::ROSE_OP_READ_REG)
+ || $node->is_op(ASTType::ROSE_OP_READ_IMM) )
+ {
+ # Add Implicit width
+ my $xlen_node = ASTNode->new_id_node(XLEN);
+ my $zero_node = ASTNode->new_id_node(0);
+ push @$func_args, $xlen_node;
+ push @$func_args, $zero_node;
+ }
+ elsif ( $func_op eq ASTType::ROSE_OP_SIGN_EXTEND ) {
+
+ # The second operand should be a plain integer
+ # It should not be wrapped in ops->number_())
+ my $child1 = $node->get_nth_child(1);
+ if ( $child1->is_num_node() ) {
+ $child1->set_type(ASTType::LIT_ID);
+ }
+ }
+ elsif ( $func_op eq ASTType::ROSE_OP_ZERO_EXTEND ) {
+
+ # The second operand should be a plain integer
+ # It should not be wrapped in ops->number_())
+ my $child1 = $node->get_nth_child(1);
+ if ( $child1->is_num_node() ) {
+ $child1->set_type(ASTType::LIT_ID);
+ }
+ }
+ elsif ( $func_op eq ASTType::ROSE_OP_EXTRACT ) {
+ my ( undef, $lhs, $rhs ) = @$func_args;
+ my $const_fold_lhs = try_const_fold($lhs);
+ my $const_fold_rhs = try_const_fold($rhs);
+ if ( $const_fold_lhs->{ok} && $const_fold_rhs->{ok} ) {
+ my $lhs_node = $node->get_nth_child(1);
+ my $rhs_node = $node->get_nth_child(2);
+ $lhs_node->set_value( $const_fold_lhs->{value} );
+ $lhs_node->set_type(ASTType::LIT_ID);
+ $rhs_node->set_value( $const_fold_rhs->{value} );
+ $rhs_node->set_type(ASTType::LIT_ID);
+ }
+ }
+ elsif ( $func_op eq ASTType::ROSE_OP_NUMBER ) {
+ # The first operand should be a plain integer
+ # It should not be wrapped in ops->number_()
+ my $child0 = $node->get_nth_child(0);
+ if ( $child0->is_num_node() || $child0->is_bool_node() ) {
+ $child0->set_type(ASTType::LIT_ID);
+ }
+
+ my $child1 = $node->get_nth_child(1);
+ if ($child1->is_func_node()) {
+ $node->set_node($child1);
+ }
+ }
+ elsif ( $func_op eq ASTType::ROSE_OP_BOOL ) {
+ # The first operand should be a plain integer
+ # It should not be wrapped in ops->number_() or ops->boolean_()
+ my $child0 = $node->get_nth_child(0);
+ if ( $child0->is_num_node() || $child0->is_bool_node() ) {
+ $child0->set_type(ASTType::LIT_ID);
+ }
+ }
+ }
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ adjust_func_operands( $sibling, $curr_set );
+ }
+}
+
+# Replace constant-foldable expressions with numbers.
+sub adjust_const_fold {
+ my ( $node, $curr_set ) = @_;
+ for my $child ( @{ $node->get_children() } ) {
+ adjust_const_fold( $child, $curr_set );
+ }
+ if ( $node->is_func_node() && $node->has_attribute("is_const_foldable") ) {
+ my $const_fold_result = try_const_fold($node);
+ if ( $const_fold_result->{ok} ) {
+ $node->set_type(ASTType::LIT_NUM);
+ $node->set_value( $const_fold_result->{value} );
+ }
+ }
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ adjust_const_fold( $sibling, $curr_set );
+ }
+}
+
+sub adjust_signedness {
+ my ( $node, $curr_set ) = @_;
+ for my $child ( @{ $node->get_children() } ) {
+ adjust_signedness( $child, $curr_set );
+ }
+ if ( $node->is_assign_node() ) {
+ my $id_node = $node->get_value();
+ my $child_node = $node->get_nth_child(0);
+
+ # Signedness determination
+ # Signedness can be determined if SAIL calls signed() or unsigned()
+ # In the AST, if a function calls signed() or unsigned(),
+ # The result AST will have a "signedness" attribute with value set to 0 or 1
+
+ if ( $child_node->is_var_node()
+ && $child_node->has_attribute("signedness") )
+ {
+ $node->get_value()
+ ->add_attribute( "signedness",
+ $child_node->get_attribute("signedness") );
+ }
+
+ # Signedness can also be determined for the following expression:
+ #
+ # foo = if (cond) then signed(bar) else unsigned(baz) end
+ #
+ elsif ($child_node->is_func_node()
+ && $child_node->is_op(ASTType::ROSE_OP_ITE)
+ && $child_node->get_nth_child(1)->has_attribute("signedness")
+ && $child_node->get_nth_child(2)->has_attribute("signedness") )
+ {
+ $node->get_value()->add_attribute( "ite_signedness", 1 );
+ }
+ }
+
+ # Finally, handle all sibling nodes
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ adjust_signedness( $sibling, $curr_set );
+ }
+}
+
+sub adjust_bitvec_assign {
+ my ( $node, $curr_set ) = @_;
+ for my $child ( @{ $node->get_children() } ) {
+ adjust_bitvec_assign( $child, $curr_set );
+ }
+ if ( $node->is_assign_node() ) {
+ my $id_node = $node->get_value();
+ my $children_node = $node->get_children();
+
+ if ( $id_node->is_vec_index_node() ) {
+ my $bitvec_node = $id_node->get_value();
+ my ($index_node) = @{ $id_node->get_children() };
+ my ($assign_bit_node) = @{$children_node};
+
+ my $new_value_node =
+ ASTBuildHelper::build_bitvec_index_assign( $bitvec_node,
+ $index_node, $assign_bit_node );
+
+ $node->set_type(ASTType::EXP_ASSIGN);
+ $node->set_value($bitvec_node);
+ $node->set_children( [$new_value_node] );
+ }
+ if ( $id_node->is_vec_range_node() ) {
+ my $bitvec_node = $id_node->get_value();
+ my ( $beg_index_node, $end_index_node ) =
+ @{ $id_node->get_children() };
+ my ($assign_bits_node) = @{$children_node};
+
+ my $new_value_node = ASTBuildHelper::build_bitvec_range_assign(
+ $bitvec_node, $beg_index_node,
+ $end_index_node, $assign_bits_node
+ );
+
+ $node->set_type(ASTType::EXP_ASSIGN);
+ $node->set_value($bitvec_node);
+ $node->set_children( [$new_value_node] );
+ }
+ }
+
+ # Finally, handle all sibling nodes
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ adjust_bitvec_assign( $sibling, $curr_set );
+ }
+}
+
+sub change_field_to_id {
+ my ( $node, $curr_set ) = @_;
+
+ for my $child ( @{ $node->get_children() } ) {
+ change_field_to_id( $child, $curr_set );
+ }
+
+ if ( $node->is_field_node() ) {
+ my $new_value = "$node->{value}{var}_$node->{value}{field}";
+ $node->set_type(ASTType::LIT_VAR);
+ $node->set_value($new_value);
+ }
+
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ change_field_to_id( $sibling, $curr_set );
+ }
+}
+
+sub change_op_var {
+ my ( $node, $curr_set ) = @_;
+
+ for my $child ( @{ $node->get_children() } ) {
+ change_op_var( $child, $curr_set );
+ }
+
+ if ( $node->is_func_node() ) {
+ if ( $node->is_op(ASTType::ROSE_OP_EQ)
+ || $node->is_op(ASTType::ROSE_OP_NEQ) )
+ {
+ my $lhs_node = $node->get_nth_child(0);
+ my $rhs_node = $node->get_nth_child(1);
+ my $lhs_value = $lhs_node->get_value();
+ my $rhs_value = $rhs_node->get_value();
+ if ( $lhs_value eq "op" && $rhs_value =~ /^[\p{IsUpper}_]+$/ ) {
+ $rhs_node->set_value( ParserCommon::rename_op_var($rhs_value) );
+ }
+ elsif ( $rhs_value eq "op" && $lhs_value =~ /^[\p{IsUpper}_]+$/ ) {
+ $lhs_node->set_value( ParserCommon::rename_op_var($lhs_value) );
+ }
+ }
+ }
+ if ( $node->is_match_node() ) {
+ my $key_node = $node->get_value();
+ if ( $key_node->get_value() eq "op" ) {
+ my $match_node = $node->get_children();
+ for my $match_elem_node ( @{$match_node} ) {
+ my $op_node = $match_elem_node->get_value();
+ $op_node->set_value(
+ ParserCommon::rename_op_var( $op_node->get_value() ) );
+ }
+ }
+ }
+
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ change_op_var( $sibling, $curr_set );
+ }
+}
+
+sub adjust_mul_div_rem_signedness {
+ my ( $node, $curr_set, $lookup ) = @_;
+ for my $child ( @{ $node->get_children() } ) {
+ adjust_mul_div_rem_signedness( $child, $curr_set, $lookup );
+ }
+ if ( $node->is_func_node() ) {
+ my $func_op = $node->get_value();
+ my $func_args = $node->get_children();
+ if ( $node->is_op(ASTType::ROSE_OP_SMUL) ) {
+ my $lhs_node = $node->get_nth_child(0);
+ my $rhs_node = $node->get_nth_child(1);
+
+ # In ROSE, multiplication is split into signedMultiply, unsignedMultiply, and signedUnsignedMultiply
+ # Determining which version of multiplication to apply is painful
+ # Here, we look for signedness attributes to determine which version of multiply to use
+ # The default in SAIL is signed multiply
+ my $lhs_signedness = 1;
+ my $rhs_signedness = 1;
+
+ # First case, signedness is determined through if and else
+ # In this case, we write a C++ switch statement to determine which version of multiply to use
+ my $lhs = $lhs_node->get_value();
+ my $rhs = $rhs_node->get_value();
+ my $lhs_lookup_ref_node = $lookup->{$lhs}{ref};
+ my $rhs_lookup_ref_node = $lookup->{$rhs}{ref};
+ my $lhs_lookup_var_node = $lookup->{$lhs}{var};
+ my $rhs_lookup_var_node = $lookup->{$rhs}{var};
+ if ( defined $lhs_lookup_var_node ) {
+ if ( $lhs_lookup_var_node->has_attribute("signedness") ) {
+ $lhs_signedness =
+ $lhs_lookup_var_node->get_attribute("signedness");
+ }
+ elsif ( $lhs_lookup_var_node->has_attribute("ite_signedness") )
+ {
+ $lhs_signedness = ParserCommon::ITE_SIGNEDNESS;
+ }
+ }
+ if ( defined $rhs_lookup_var_node ) {
+ if ( $rhs_lookup_var_node->has_attribute("signedness") ) {
+ $rhs_signedness =
+ $rhs_lookup_var_node->get_attribute("signedness");
+ }
+ elsif ( $rhs_lookup_var_node->has_attribute("ite_signedness") )
+ {
+ $rhs_signedness = ParserCommon::ITE_SIGNEDNESS;
+ }
+ }
+
+ my $lhs_cond = ASTNode->new_num_node($lhs_signedness);
+ if ( $lhs_signedness == ParserCommon::ITE_SIGNEDNESS ) {
+ if ( $lhs_lookup_ref_node->is_func_node() ) {
+ $lhs_cond = $lhs_lookup_ref_node->get_nth_child(0);
+ }
+ else {
+ $lhs_cond = ASTNode->new_num_node($lhs_signedness);
+ }
+ }
+ my $rhs_cond = ASTNode->new_num_node($rhs_signedness);
+ if ( $rhs_signedness == ParserCommon::ITE_SIGNEDNESS ) {
+ if ( $rhs_lookup_ref_node->is_func_node() ) {
+ $rhs_cond = $rhs_lookup_ref_node->get_nth_child(0);
+ }
+ else {
+ $rhs_cond = ASTNode->new_num_node($rhs_signedness);
+ }
+ }
+
+ my $ss_mul_node = ASTNode->new_func_node( ASTType::ROSE_OP_SMUL,
+ [ $lhs_node, $rhs_node ] );
+ my $su_mul_node = ASTNode->new_func_node( ASTType::ROSE_OP_SUMUL,
+ [ $lhs_node, $rhs_node ] );
+ my $us_mul_node = ASTNode->new_func_node( ASTType::ROSE_OP_SUMUL,
+ [ $rhs_node, $lhs_node ] );
+ my $uu_mul_node = ASTNode->new_func_node( ASTType::ROSE_OP_UMUL,
+ [ $lhs_node, $rhs_node ] );
+
+ if ( !$lhs_cond->is_num_node() && !$rhs_cond->is_num_node() ) {
+ my $cond_ss = ASTNode->new_func_node(
+ ASTType::ROSE_OP_BAND,
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$lhs_cond]
+ ),
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$rhs_cond]
+ ),
+ ]
+ );
+ my $cond_su = ASTNode->new_func_node(
+ ASTType::ROSE_OP_BAND,
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$lhs_cond]
+ ),
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL,
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BNOT, [$rhs_cond]
+ )
+ ]
+ ),
+ ]
+ );
+ my $cond_us = ASTNode->new_func_node(
+ ASTType::ROSE_OP_BAND,
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$lhs_cond]
+ ),
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL,
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BNOT, [$rhs_cond]
+ )
+ ]
+ ),
+ ]
+ );
+ my $ite_node1 =
+ ASTNode->new_ite_node( $cond_us, $us_mul_node, $uu_mul_node );
+ my $ite_node2 =
+ ASTNode->new_ite_node( $cond_su, $su_mul_node, $ite_node1 );
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_ITE);
+ $node->set_children( [ $cond_ss, $ss_mul_node, $ite_node2 ] );
+ }
+ elsif ( !$lhs_cond->is_num_node() ) {
+ my $rhs_signedness = $rhs_cond->get_value();
+ if ($rhs_signedness) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_ITE);
+ $node->set_children(
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$lhs_cond]
+ ),
+ $ss_mul_node,
+ $us_mul_node
+ ]
+ );
+ }
+ else {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_ITE);
+ $node->set_children(
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$lhs_cond]
+ ),
+ $su_mul_node,
+ $uu_mul_node
+ ]
+ );
+ }
+ }
+ elsif ( !$rhs_cond->is_num_node() ) {
+ my $lhs_signedness = $lhs_cond->get_value();
+ if ($lhs_signedness) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_ITE);
+ $node->set_children(
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$rhs_cond]
+ ),
+ $ss_mul_node,
+ $su_mul_node
+ ]
+ );
+ }
+ else {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_ITE);
+ $node->set_children(
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$rhs_cond]
+ ),
+ $us_mul_node,
+ $uu_mul_node
+ ]
+ );
+ }
+ }
+ else {
+ my $lhs_signedness = $lhs_cond->get_value();
+ my $rhs_signedness = $rhs_cond->get_value();
+ if ( $lhs_signedness && $rhs_signedness ) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_SMUL);
+ $node->set_children( [ $lhs_node, $rhs_node ] );
+ }
+ elsif ( $lhs_signedness && !$rhs_signedness ) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_SUMUL);
+ $node->set_children( [ $lhs_node, $rhs_node ] );
+ }
+ elsif ( !$lhs_signedness && $rhs_signedness ) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_SUMUL);
+ $node->set_children( [ $rhs_node, $lhs_node ] );
+ }
+ else {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_UMUL);
+ $node->set_children( [ $lhs_node, $rhs_node ] );
+ }
+ }
+
+ }
+ elsif ( $node->is_op(ASTType::ROSE_OP_SDIV) ) {
+ my $lhs_node = $node->get_nth_child(0);
+ my $rhs_node = $node->get_nth_child(1);
+
+ # In ROSE, division is split into signedDivide and unsignedDivide
+
+ # The default in SAIL is signed divide
+ my $signedness = 1;
+
+ # Determining which version of division to apply is painful
+ # Here, we look for signedness attributes to determine which version of division to use
+ my $lhs_value = $lhs_node->get_value();
+ my $lhs_lookup_ref_node = $lookup->{$lhs_value}->{ref};
+ my $lhs_lookup_var_node = $lookup->{$lhs_value}->{var};
+ if ( $lhs_lookup_var_node->has_attribute("signedness") ) {
+ $signedness = $lhs_lookup_var_node->get_attribute("signedness");
+ }
+ elsif ( $lhs_lookup_var_node->has_attribute("ite_signedness") ) {
+ $signedness = ParserCommon::ITE_SIGNEDNESS;
+ }
+
+ my $cond = ASTNode->new_num_node($signedness);
+ my $sdiv_node = ASTNode->new_func_node( ASTType::ROSE_OP_SDIV,
+ [ $lhs_node, $rhs_node ] );
+ my $udiv_node = ASTNode->new_func_node( ASTType::ROSE_OP_UDIV,
+ [ $rhs_node, $lhs_node ] );
+ if ( $signedness == ParserCommon::ITE_SIGNEDNESS ) {
+ if ( $lhs_lookup_ref_node->is_func_node() ) {
+ $cond = $lhs_lookup_ref_node->get_nth_child(0);
+ }
+ else {
+ $cond = ASTNode->new_num_node($signedness);
+ }
+ }
+ if ( !$cond->is_num_node() ) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_ITE);
+ $node->set_children(
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$cond]
+ ),
+ $sdiv_node,
+ $udiv_node
+ ]
+ );
+ }
+ else {
+ if ($signedness) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_SDIV);
+ $node->set_children( [ $lhs_node, $rhs_node ] );
+ }
+ else {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_UDIV);
+ $node->set_children( [ $lhs_node, $rhs_node ] );
+ }
+ }
+ }
+ elsif ( $node->{value} eq ASTType::ROSE_OP_SREM ) {
+ my $lhs_node = $node->get_nth_child(0);
+ my $rhs_node = $node->get_nth_child(1);
+
+ # In ROSE, division is split into signedDivide and unsignedDivide
+
+ # The default in SAIL is signed divide
+ my $signedness = 1;
+
+ # Determining which version of division to apply is painful
+ # Here, we look for signedness attributes to determine which version of division to use
+ my $lhs_value = $lhs_node->get_value();
+ my $lhs_lookup_ref_node = $lookup->{$lhs_value}->{ref};
+ my $lhs_lookup_var_node = $lookup->{$lhs_value}->{var};
+ if ( $lhs_lookup_var_node->has_attribute("signedness") ) {
+ $signedness = $lhs_lookup_var_node->get_attribute("signedness");
+ }
+ elsif ( $lhs_lookup_var_node->has_attribute("ite_signedness") ) {
+ $signedness = ParserCommon::ITE_SIGNEDNESS;
+ }
+
+ my $cond = ASTNode->new_num_node($signedness);
+ my $sdiv_node = ASTNode->new_func_node( ASTType::ROSE_OP_SREM,
+ [ $lhs_node, $rhs_node ] );
+ my $udiv_node = ASTNode->new_func_node( ASTType::ROSE_OP_UREM,
+ [ $rhs_node, $lhs_node ] );
+ if ( $signedness == ParserCommon::ITE_SIGNEDNESS ) {
+ if ( $lhs_lookup_ref_node->is_func_node() ) {
+ $cond = $lhs_lookup_ref_node->get_nth_child(0);
+ }
+ else {
+ $cond = ASTNode->new_num_node($signedness);
+ }
+ }
+ if ( !$cond->is_num_node() ) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_ITE);
+ $node->set_children(
+ [
+ ASTNode->new_func_node(
+ ASTType::ROSE_OP_BOOL, [$cond]
+ ),
+ $sdiv_node,
+ $udiv_node
+ ]
+ );
+
+ }
+ else {
+ if ($signedness) {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_SREM);
+ $node->set_children( [ $lhs_node, $rhs_node ] );
+ }
+ else {
+ $node->set_type(ASTType::EXP_FUNC);
+ $node->set_value(ASTType::ROSE_OP_UREM);
+ $node->set_children( [ $lhs_node, $rhs_node ] );
+ }
+ }
+ }
+ }
+ elsif ( $node->is_assign_node() ) {
+ my $var_node = $node->get_value();
+ my ($value_node) = @{ $node->get_children() };
+
+ my ( @lhs_nodes, @rhs_nodes );
+ if ( $var_node->is_tuple_node() && $value_node->is_tuple_node() ) {
+ @lhs_nodes = @{ $var_node->get_children() };
+ @rhs_nodes = @{ $value_node->get_children() };
+ }
+ else {
+ @lhs_nodes = ($var_node);
+ @rhs_nodes = ($value_node);
+ }
+ for my $i ( 0 .. $#lhs_nodes ) {
+ my $var_node = $lhs_nodes[$i];
+ my $value_node = $rhs_nodes[$i];
+ my $var = ParserCommon::rename_invalid_id( $var_node->get_value() );
+ $lookup->{$var} =
+ { is_rose_var => 1, var => $var_node, ref => $value_node };
+ }
+ }
+ elsif ( $node->is_for_node() ) {
+ my $i = $node->get_value()->get_value();
+ $lookup->{$i} = { is_cpp_var => 1 };
+ }
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ adjust_mul_div_rem_signedness( $sibling, $curr_set, $lookup );
+ }
+}
+
+sub adjust_next_node {
+ my ( $node, $curr_set, $lookup ) = @_;
+ my @child_siblings;
+ for my $child ( @{ $node->get_children() } ) {
+ adjust_next_node( $child, $curr_set, $lookup );
+ }
+ if ($node->is_func_node() ) {
+ if ($node->is_op(ASTType::ROSE_OP_ITE)) {
+ my $if_node = $node->get_nth_child(1);
+ my $else_node = $node->get_nth_child(2);
+ if ($if_node->is_block_node() && $else_node->is_block_node()) {
+ my @new_siblings = @{ $node->get_siblings() };
+ for my $child_node (@{ $else_node->get_children() }) {
+ unshift @new_siblings, @{ $child_node->get_siblings() };
+ $child_node->set_siblings([]);
+ }
+ for my $child_node (@{ $if_node->get_children() }) {
+ unshift @new_siblings, @{ $child_node->get_siblings() };
+ $child_node->set_siblings([]);
+ }
+ $node->set_siblings(\@new_siblings);
+ }
+ }
+ }
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ adjust_next_node( $sibling, $curr_set, $lookup );
+ }
+}
+
+1;
diff --git a/json-to-rose/ASTBuild.pm b/json-to-rose/ASTBuild.pm
new file mode 100644
index 0000000..63953de
--- /dev/null
+++ b/json-to-rose/ASTBuild.pm
@@ -0,0 +1,915 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ASTBuild;
+
+use strict;
+use warnings;
+
+use Data::Dumper;
+
+use Exporter 'import';
+use lib "$FindBin::Bin";
+use ASTBuildFunc qw(@FN_DISPATCH @ERR_DISPATCH);
+use ASTType qw(
+ ROSE_OP_CONCAT
+ ROSE_OP_EADDR
+ ROSE_OP_EXTRACT
+ ROSE_OP_JUMP
+ ROSE_OP_READ_IMM
+ ROSE_OP_READ_MEM
+ ROSE_OP_READ_REG
+ ROSE_OP_SIGNED_GEQ
+ ROSE_OP_SIGNED_GT
+ ROSE_OP_SIGNED_LEQ
+ ROSE_OP_SIGNED_LT
+ ROSE_OP_UNSIGNED_GEQ
+ ROSE_OP_UNSIGNED_GT
+ ROSE_OP_UNSIGNED_LEQ
+ ROSE_OP_UNSIGNED_LT
+ ROSE_OP_WRITE_MEM
+ ROSE_OP_WRITE_REG
+);
+use ParserConfig;
+use ParserCommon qw(
+ TEMP_VAR
+ WIDTH_BYTES_VAR
+);
+
+sub parse_ast {
+ my ( $self, $ast, $curr_set ) = @_;
+ return $self->do_exp( $ast, $curr_set );
+}
+
+sub do_pat {
+ my ( $self, $ast, $curr_set ) = @_;
+
+ if ( my $papp = $ast->{P_app} ) {
+ my ( $id_ast, $args_ast ) = @$papp;
+ my $id = $id_ast->{Id};
+ my @args = map { $self->do_pat( $_, $curr_set ) } @$args_ast;
+ return ASTNode->new_app_node( $id, \@args );
+ }
+
+ if ( my $plit = $ast->{P_lit} ) {
+ return ASTNode->new_lit_node( $plit->[0] );
+ }
+
+ if ( my $pid = $ast->{P_id} ) {
+ return ASTNode->new_var_node( $pid->[0]{Id} );
+ }
+
+ if ( my $ptuple = $ast->{P_tuple} ) {
+ my @elems = map { $self->do_pat( $_, $curr_set ) } @{ $ptuple->[0] };
+ return ASTNode->new_tuple_node( \@elems );
+ }
+
+ if ( my $ptype = $ast->{P_typ} ) {
+
+ # Ignore type annotation
+ my ( $p_type, $p_id ) = @$ptype;
+ return $self->do_pat( $p_id, $curr_set );
+ }
+
+ if ( my $pvar = $ast->{P_var} ) {
+ return ASTNode->new_var_node( $pvar->[0]{P_id}[0]{Id} );
+ }
+
+ if ( my $pvec = $ast->{P_vector} ) {
+ my @elems = map { $self->do_pat( $_, $curr_set ) } @{ $pvec->[0] };
+ return ASTNode->new_vec_node( \@elems );
+ }
+
+ if ( my $pvec = $ast->{P_vector_concat} ) {
+ my ( $p_id_ast, $p_concat_ast ) = @$pvec;
+ my $p_id_node = $self->do_pat( $p_id_ast, $curr_set );
+ my $p_concat_node = $self->do_pat( $p_id_ast, $curr_set );
+ return ASTNode->new_func_node( ROSE_OP_CONCAT,
+ [ $p_id_node, $p_concat_node ] );
+ }
+
+ if ( my $pvec = $ast->{P_vector_subrange} ) {
+ my ( $p_id_ast, $p_beg_ast, $p_end_ast ) = @$pvec;
+ my $p_id_node = $self->do_pat( $p_id_ast, $curr_set );
+ my $p_beg_node = $self->do_pat( $p_beg_ast, $curr_set );
+ my $p_end_node = $self->do_pat( $p_end_ast, $curr_set );
+ return ASTNode->new_func_node( ROSE_OP_EXTRACT,
+ [ $p_id_node, $p_beg_node, $p_end_node ] );
+ }
+
+ if ( exists $ast->{P_wild} ) {
+ return ASTNode->new_wild_node;
+ }
+
+ die "Unknown pattern AST: " . Dumper($ast);
+}
+
+sub do_pexp {
+ my ( $self, $ast, $curr_set ) = @_;
+
+ if ( my $pexp = $ast->{Pat_exp} ) {
+ my ( $key_ast, $val_ast ) = @$pexp;
+ return [
+ $self->do_pat( $key_ast, $curr_set ),
+ $self->do_exp( $val_ast, $curr_set ),
+ ];
+ }
+
+ die "Unknown paired pattern AST" . Dumper($ast);
+}
+
+sub do_varbind {
+ my ( $self, $var_ast, $exp_ast, $curr_set ) = @_;
+
+ # Ignore redundant assignments in C-extensions
+ return ASTNode->new_null_node()
+ if $curr_set =~ /^C_/;
+
+ # Process id and expression
+ my $var_node = $self->do_lexp( $var_ast, $curr_set );
+ my $exp_node = $self->do_exp( $exp_ast, $curr_set );
+
+ $var_node->is_var_node() or die "Unexpected error: id is not variable";
+
+ # Skip if either side evaluates to null
+ return ASTNode->new_null_node()
+ if $var_node->is_null_node || $exp_node->is_null_node;
+
+ # Skip if assign to itself
+ return ASTNode->new_null_node()
+ if $exp_node->is_var_node
+ && $var_node->get_value() eq $exp_node->get_value();
+
+ return ASTNode->new_assign_node( $var_node, $exp_node );
+}
+
+sub do_letbind {
+ my ( $self, $ast, $curr_set ) = @_;
+ my ( $pat_ast, $exp_ast ) = @{ $ast->{LB_val} };
+
+ # Ignore redundant assignments in C-extensions
+ return ASTNode->new_null_node()
+ if $curr_set =~ /^C_/;
+
+ # Process pattern and expression
+ my $id_node = $self->do_pat( $pat_ast, $curr_set );
+ my $exp_node = $self->do_exp( $exp_ast, $curr_set );
+
+ # Skip if either side evaluates to null
+ return ASTNode->new_null_node()
+ if $id_node->is_null_node || $exp_node->is_null_node;
+
+ # Skip if assign to itself
+ return ASTNode->new_null_node
+ if $exp_node->is_var_node
+ && $id_node->get_value() eq $exp_node->get_value();
+
+ return ASTNode->new_assign_node( $id_node, $exp_node );
+}
+
+sub do_lexp {
+ my ( $self, $ast, $curr_set ) = @_;
+
+ if ( my $id = $ast->{LE_id} ) {
+ return ASTNode->new_var_node( $id->[0]{Id} );
+ }
+
+ # TODO Fix this
+ if ( my $deref = $ast->{LE_deref} ) {
+ my ($expr_ast) = @$deref;
+ my $expr_node = $self->do_exp( $expr_ast, $curr_set );
+ return ASTNode->new_func_node( ROSE_OP_READ_MEM, [$expr_node] );
+ }
+
+ if ( my $app = $ast->{LE_app} ) {
+ my ( $id_ast, $args_ast ) = @$app;
+ my $id = $id_ast->{Id};
+ my @args = map { $self->do_pat( $_, $curr_set ) } @$args_ast;
+ return ASTNode->new_app_node( $id, \@args );
+ }
+
+ if ( my $typed = $ast->{LE_typ} ) {
+
+ # Ignore type
+ return ASTNode->new_var_node( $typed->[1]{Id} );
+ }
+
+ if ( my $tuple = $ast->{LE_tuple} ) {
+ my @elems = map { $self->do_pat( $_, $curr_set ) } @{ $tuple->[0] };
+ return ASTNode->new_tuple_node( \@elems );
+ }
+
+ if ( my $vec = $ast->{LE_vector} ) {
+ my ( $vec_ast, $index_ast ) = @$vec;
+ my $vec_node = $self->do_lexp( $vec_ast, $curr_set );
+ my $index_node = $self->do_exp( $index_ast, $curr_set );
+ return ASTNode->new_vec_index_node( $vec_node, $index_node );
+ }
+
+ if ( my $range = $ast->{LE_vector_range} ) {
+ my ( $vec_ast, $start_ast, $end_ast ) = @$range;
+ my $vec_node = $self->do_lexp( $vec_ast, $curr_set );
+ my $start_node = $self->do_exp( $start_ast, $curr_set );
+ my $end_node = $self->do_exp( $end_ast, $curr_set );
+ return ASTNode->new_vec_range_node( $vec_node, $start_node, $end_node );
+ }
+
+ if ( my $vec = $ast->{LE_vector_concat} ) {
+ my ( $vec_ast, $concat_ast ) = @$vec;
+ my $vec_node = $self->do_lexp( $vec_ast, $curr_set );
+ my $concat_node = $self->do_exp( $concat_ast, $curr_set );
+ return ASTNode->new_vec_concat_node( $vec_node, $concat_node );
+ }
+
+ if ( my $field = $ast->{LE_field} ) {
+ my ( $field_ast, $id_ast ) = @$field;
+ my $var = $field_ast->{LE_id}[0]{Id};
+ my $field = $id_ast->{Id};
+ return ASTNode->new_field_node( $var, $field );
+ }
+
+ die "Unknown l-value expression AST" . Dumper($ast);
+}
+
+sub do_exp {
+ my ( $self, $ast, $curr_set ) = @_;
+
+ if ( my $lit_ast = $ast->{E_lit} ) {
+
+ my $val_ast = $lit_ast->[0];
+
+ # The value could either be a string or a has like { L_num: {...} }
+
+ if ( ref($val_ast) eq "HASH" ) {
+ if ( exists $val_ast->{L_num} ) {
+ my $num = $val_ast->{L_num};
+ return ASTNode->new_num_node($num);
+ }
+
+ if ( exists $val_ast->{L_hex} ) {
+ my $hex = $val_ast->{L_hex};
+ return ASTNode->new_hex_node($hex);
+ }
+
+ if ( exists $val_ast->{L_bin} ) {
+ my $bin = $val_ast->{L_bin};
+ return ASTNode->new_bin_node($bin);
+ }
+
+ if ( exists $val_ast->{L_string} ) {
+ my $str = $val_ast->{L_string};
+ return ASTNode->new_str_node($str);
+ }
+ }
+ else {
+ if ( $val_ast =~ /^L_(true|one)$/ ) {
+ return ASTNode->new_bool_node(1);
+ }
+
+ if ( $val_ast =~ /^L_(false|zero)$/ ) {
+ return ASTNode->new_bool_node(0);
+
+ }
+
+ if ( $val_ast =~ /^L_unit$/ ) {
+ return ASTNode->new_unit_node();
+ }
+ }
+
+ return ASTNode->new_null_node();
+ }
+ if ( my $id_ast = $ast->{E_id} ) {
+ my $id = $id_ast->[0]{Id};
+
+ # Ignore RETIRE_* pseudo-values
+ return ASTNode->new_null_node()
+ if $id eq "RETIRE_SUCCESS" || $id eq "RETIRE_FAIL";
+
+ $id = ParserCommon::rename_invalid_id($id);
+
+ return ASTNode->new_func_node( ROSE_OP_READ_IMM,
+ [ ASTNode->new_var_node($id) ] )
+ if ( exists $ParserConfig::ARGS_PER_SUBSET{$curr_set}
+ && exists $ParserConfig::ARGS_PER_SUBSET{$curr_set}{$id}
+ && $ParserConfig::ARGS_PER_SUBSET{$curr_set}{$id}{need_read} );
+
+ return ASTNode->new_func_node( ROSE_OP_READ_IMM,
+ [ ASTNode->new_var_node($id) ] )
+ if ( exists $ParserConfig::ARGS_PER_SUBSET{$curr_set}
+ && exists $ParserConfig::ARGS_PER_SUBSET{$curr_set}{$id}
+ && $ParserConfig::ARGS_PER_SUBSET{$curr_set}{$id}{need_read} );
+
+ if ( exists $ParserConfig::GLOBAL_VARS{$id} ) {
+ my $value = $ParserConfig::GLOBAL_VARS{$id}{value};
+ return ASTNode->new_num_node($value);
+ }
+
+ # Default: variable
+ return ASTNode->new_var_node($id);
+ }
+
+ if ( my $fld = $ast->{E_field} ) {
+ my ( $var_ast, $field_ast ) = @$fld;
+
+ my $var = $var_ast->{E_id}[0]{Id};
+ my $field = $field_ast->{Id};
+
+ return ASTNode->new_field_node( $var, $field );
+ }
+
+ if ( my $blk = $ast->{E_block} ) {
+ my ($exps_ast) = @$blk;
+
+ my @nodes =
+ map { $self->do_exp( $_, $curr_set ) }
+ grep { defined $_ } @$exps_ast;
+
+ @nodes = grep { !$_->is_null_node } @nodes;
+
+ return ASTNode->new_block_node( \@nodes );
+ }
+
+ if ( my $assign = $ast->{E_assign} ) {
+ my ( $var_ast, $exp_ast ) = @$assign;
+
+ my $lhs = $self->do_lexp( $var_ast, $curr_set );
+ my $rhs = $self->do_exp( $exp_ast, $curr_set );
+
+ return ASTNode->new_assign_node( $lhs, $rhs );
+ }
+
+ if ( my $assert_ast = $ast->{E_assert} ) {
+
+ # We ignore all asserts
+ return ASTNode->new_null_node();
+ }
+
+ if ( my $let = $ast->{E_let} ) {
+ my ( $letbind_ast, $exp_ast ) = @$let;
+
+ my $let_node = $self->do_letbind( $letbind_ast, $curr_set );
+ my $next_node = $self->do_exp( $exp_ast, $curr_set );
+
+ return $next_node if $let_node->is_null_node;
+ return $let_node if $next_node->is_null_node;
+
+ $let_node->append_sibling($next_node);
+ return $let_node;
+ }
+
+ if ( my $var = $ast->{E_var} ) {
+ my ( $var_ast, $bind_ast, $exp_ast ) = @$var;
+
+ my $let_node = $self->do_varbind( $var_ast, $bind_ast, $curr_set );
+ my $next_node = $self->do_exp( $exp_ast, $curr_set );
+
+ return $next_node if $let_node->is_null_node;
+ return $let_node if $next_node->is_null_node;
+
+ $let_node->append_sibling($next_node);
+ return $let_node;
+ }
+
+ if ( my $for = $ast->{E_for} ) {
+ my ( $i_ast, $init_ast, $fini_ast, $step_ast, $ord, $block_ast ) =
+ @$for;
+
+ my $i = ASTNode->new_var_node( $i_ast->{Id} );
+ my $init = $self->do_exp( $init_ast, $curr_set );
+ my $fini = $self->do_exp( $fini_ast, $curr_set );
+ my $step = $self->do_exp( $step_ast, $curr_set );
+ my $block = $self->do_exp( $block_ast, $curr_set );
+
+ return ASTNode->new_for_node( $i, $init, $fini, $step, $ord, $block );
+ }
+
+ if ( my $loop_ast = $ast->{E_loop} ) {
+
+ my ( $loop_type, undef, $cond_ast, $block_ast ) = @$loop_ast;
+
+ my $cond_node;
+
+ if ( $loop_type eq "While" ) {
+ $cond_node = $self->do_exp( $cond_ast, $curr_set );
+ }
+ elsif ( $loop_type eq "Until" ) {
+ my $exp_node = $self->do_exp( $cond_ast, $curr_set );
+ return ASTBuildHelper::build_boolean_not($exp_node);
+ }
+ else {
+ die "Unexpected SAIL loop type: $loop_type";
+ }
+
+ my $block_node = $self->do_exp( $block_ast, $curr_set );
+
+ return ASTNode->new_while_node( $cond_node, $block_node );
+ }
+
+ if ( my $app = $ast->{E_app} ) {
+ my ( $id_ast, $exps_ast ) = @$app;
+
+ # Boolean operators: And_Bool / Or_Bool (id_ast is an array of ["And_Bool"] or ["Or_Bool"])
+ if ( ref $id_ast eq "ARRAY" ) {
+ my $bool_op = $id_ast->[0];
+
+ my ( $lhs_ast, $rhs_ast ) = @$exps_ast;
+ my $lhs = $self->do_exp( $lhs_ast, $curr_set );
+ my $rhs = $self->do_exp( $rhs_ast, $curr_set );
+
+ return ASTBuildHelper::build_boolean_and( $lhs, $rhs )
+ if $bool_op eq "And_Bool";
+
+ return ASTBuildHelper::build_boolean_or( $lhs, $rhs )
+ if $bool_op eq "Or_Bool";
+
+ die "Unexpected boolean operator: $bool_op";
+ }
+
+ # Normal function application (id_ast is object with {Id => "fn_id", ...})
+ if ( my $fn_id = $id_ast->{Id} ) {
+
+ for my $dispatch (@FN_DISPATCH) {
+ my ( $re, $handler ) = @$dispatch;
+ if ( $fn_id =~ $re ) {
+ return $handler->( $self, $exps_ast, $curr_set );
+ }
+ }
+
+ # This is for instruction conversion
+ if ( grep( /^$fn_id$/, @ParserConfig::supported_riscv_subsets) ) {
+ return $fn_id;
+ }
+
+ for my $dispatch (@ERR_DISPATCH) {
+ my ( $re, $handler ) = @$dispatch;
+ if ( $fn_id =~ $re ) {
+ $handler->( $fn_id );
+ exit 1;
+ }
+ }
+
+ # Unexpected functions, probably newly added extension
+ die "$fn_id does not map to ROSE C++. Consider implementing it.";
+ exit 1;
+ }
+
+ # Operators, mostly comparison operators
+ if ( my $operator = $id_ast->{Operator} ) {
+
+ # Map SAIL operators to ROSE operators
+ my %op_map = (
+ '<_s' => ROSE_OP_SIGNED_LT,
+ '<=_s' => ROSE_OP_SIGNED_LEQ,
+ '>_s' => ROSE_OP_SIGNED_GT,
+ '>=_s' => ROSE_OP_SIGNED_GEQ,
+ '<_u' => ROSE_OP_UNSIGNED_LT,
+ '<=_u' => ROSE_OP_UNSIGNED_LEQ,
+ '>_u' => ROSE_OP_UNSIGNED_GT,
+ '>=_u' => ROSE_OP_UNSIGNED_GEQ,
+ );
+ if ( my $rose_op = $op_map{$operator} ) {
+ my ( $lhs_ast, $rhs_ast ) = @$exps_ast;
+ my $lhs_node = $self->do_exp( $lhs_ast, $curr_set );
+ my $rhs_node = $self->do_exp( $rhs_ast, $curr_set );
+ return ASTNode->new_func_node( $rose_op,
+ [ $lhs_node, $rhs_node ] );
+ }
+ else {
+ die "Unknown operator in E_app: $operator";
+ }
+ }
+ }
+ elsif ( exists $ast->{E_match} ) {
+ my ( $id_ast, $match_list_ast ) = @{ $ast->{E_match} };
+ my $id_node = $self->do_exp( $id_ast, $curr_set );
+ my @match_list_node;
+ if ( exists $id_ast->{E_app} ) {
+ my $app_ast = $id_ast->{E_app};
+ my $func = $app_ast->[0]->{Id};
+ if ( $func eq "vmem_read" ) {
+
+ # offset and width are already handled by capstone
+ my $source_node =
+ $self->do_exp( $app_ast->[1]->[0], $curr_set );
+
+ # In sail, memory read is done using vmem_read
+ # In ROSE, it needs to be broken into two steps:
+ # 1. Get effective address
+ # 2. Read from the address
+
+ # First, we look for where the read value is stored
+ # look for Ok pattern and ignore Err pattern
+ my @ok_asts =
+ grep {
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq "Ok"
+ } @$match_list_ast;
+
+ # Handle Ok(result), where result stores the value read
+ my ( $ok_node, $next_node ) =
+ @{ $self->do_pexp( $ok_asts[0], $curr_set ) };
+ my $read_result_node = $ok_node->get_nth_child(0);
+
+ # Now, let's deal with the effective address
+ # Dyninst combines read register and offset into the effective address
+ # This is different from how SAIL handles memory read
+ # SAIL use the function vmem_read(rs1, offset, width, Read(Data), al, rl, res)
+
+ # The effective address is stored in a temporary variable in ROSE
+ # Read from the effective address will be handled in the printer
+ my $ea_target = TEMP_VAR;
+ my $ea_target_node = ASTNode->new_var_node($ea_target);
+
+ my $ea_node =
+ ASTNode->new_func_node( ROSE_OP_EADDR, [$source_node] );
+
+ # Now, we construct the assignment nodes
+
+ my $ea_assign_node =
+ ASTNode->new_assign_node( $ea_target_node, $ea_node );
+ my $mem_read_node =
+ ASTNode->new_func_node( ROSE_OP_READ_MEM, [$ea_target_node] );
+ my $mem_read_assign_node =
+ ASTNode->new_assign_node( $read_result_node, $mem_read_node );
+ $ea_assign_node->append_sibling($mem_read_assign_node);
+
+ # Finally, construct the next block node in Ok(result)
+ $ea_assign_node->append_sibling($next_node);
+
+ return $ea_assign_node;
+ }
+ if ( $func eq "vmem_write" ) {
+ my $source_node =
+ $self->do_exp( $app_ast->[1]->[0], $curr_set );
+
+ # In sail, memory write is done using vmem_write
+ # In ROSE, it needs to be broken into two steps:
+ # 1. Get effective address
+ # 2. Write from the address
+
+ # The effective address is stored in a temporary variable in ROSE
+ # Write to the effective address will be handled in the printer
+
+ my $ea_target = TEMP_VAR;
+ my $ea_target_node = ASTNode->new_var_node($ea_target);
+
+ my $ea_node =
+ ASTNode->new_func_node( ROSE_OP_EADDR, [$source_node] );
+ my $ea_assign_node =
+ ASTNode->new_assign_node( $ea_target_node, $ea_node );
+
+ # Now, we construct the write address node
+ my $write_data_node =
+ $self->do_exp( $app_ast->[1]->[3], $curr_set );
+ my $mem_write_node = ASTNode->new_func_node( ROSE_OP_WRITE_MEM,
+ [ $ea_target_node, $write_data_node ] );
+
+ # Ignore Ok and Err pattern
+ # They are related to whether the reservation failed
+ # This cannot be possibly determined in ROSE
+
+ $ea_assign_node->append_sibling($mem_write_node);
+ return $ea_assign_node;
+ }
+ if ( $func eq "mem_read" ) {
+
+ # offset and width are already handled by capstone
+ my $addr_node = $self->do_exp( $app_ast->[1]->[1], $curr_set );
+
+ # In sail, memory read is done using vmem_read
+ # In ROSE, it needs to be broken into two steps:
+ # 1. Get effective address
+ # 2. Read from the address
+
+ # First, we look for where the read value is stored
+ # look for Ok pattern and ignore Err pattern
+ my @ok_asts =
+ grep {
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq "Ok"
+ } @$match_list_ast;
+
+ my ( $ok_node, $next_node ) =
+ @{ $self->do_pexp( $ok_asts[0], $curr_set ) };
+ my $read_result_node = $ok_node->get_nth_child(0);
+
+ # Now, we construct the assignment nodes
+
+ my $mem_read_node =
+ ASTNode->new_func_node( ROSE_OP_READ_MEM, [$addr_node] );
+ my $mem_read_assign_node =
+ ASTNode->new_assign_node( $read_result_node, $mem_read_node );
+
+ # Finally, construct the next block node in Ok(result)
+ $mem_read_assign_node->append_sibling($next_node);
+
+ return $mem_read_assign_node;
+ }
+ if ( $func eq "mem_write_value" ) {
+
+ # offset and width are already handled by capstone
+ my $addr_node = $self->do_exp( $app_ast->[1]->[0], $curr_set );
+
+ # In sail, memory read is done using vmem_read
+ # In ROSE, it needs to be broken into two steps:
+ # 1. Get effective address
+ # 2. Read from the address
+
+ # First, we look for where the read value is stored
+ # look for Ok pattern and ignore Err pattern
+ my @ok_asts = grep {
+
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq "Ok"
+ && $_->{Pat_exp}->[0]->{P_app}->[1]->[0]->{P_lit}->[0] eq
+ "L_true"
+ } @$match_list_ast;
+
+ # Now, we construct the write node
+
+ my $write_data_node =
+ $self->do_exp( $app_ast->[1]->[2], $curr_set );
+ my $mem_write_node = ASTNode->new_func_node( ROSE_OP_WRITE_MEM,
+ [ $addr_node, $write_data_node ] );
+
+ # Finally, construct the next block node in Ok(result)
+ my $next_ast = $ok_asts[0]->{Pat_exp}->[1];
+ my $next_node = $self->do_exp( $next_ast, $curr_set );
+
+ $mem_write_node->append_sibling($next_node);
+
+ return $mem_write_node;
+ }
+ if ( $func eq "mem_write_ea" ) {
+
+ # Accept Ok(...)
+ my @ok_asts =
+ grep {
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq "Ok"
+ } @$match_list_ast;
+
+ my $ok_ast = $ok_asts[0]->{Pat_exp}->[1];
+ my $next_node = $self->do_exp( $ok_ast, $curr_set );
+ return $next_node;
+ }
+ if ( $func eq "ext_data_get_addr" ) {
+
+ # Accept Ext_DataAddr_OK
+ my @ok_asts = grep {
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq
+ "Ext_DataAddr_OK"
+ } @$match_list_ast;
+
+ my $source_node =
+ $self->do_exp( $app_ast->[1]->[0], $curr_set );
+ my $ea_node =
+ ASTNode->new_func_node( ROSE_OP_EADDR, [$source_node] );
+
+ my $ea_target =
+ $ok_asts[0]->{Pat_exp}->[0]->{P_app}->[1]->[0]->{P_id}->[0]
+ ->{Id};
+ my $ea_target_node = ASTNode->new_var_node($ea_target);
+ my $ea_assign_node =
+ ASTNode->new_assign_node( $ea_target_node, $ea_node );
+
+ my $ok_ast = $ok_asts[0]->{Pat_exp}->[1];
+ my $ok_asts = $self->do_exp( $ok_ast, $curr_set );
+
+ $ea_assign_node->append_sibling($ok_asts);
+ return $ea_assign_node;
+ }
+
+ # Ignore translateAddr
+ # ROSE's effectiveAddress already handles that
+ if ( $func eq "translateAddr" ) {
+ my $src_id;
+ if ( exists $app_ast->[1]->[0]->{E_id} ) {
+ $src_id = $app_ast->[1]->[0]->{E_id}->[0]->{Id};
+ }
+ elsif ( exists $app_ast->[1]->[0]->{E_app} ) {
+ $src_id =
+ $app_ast->[1]->[0]->{E_app}->[1]->[0]->{E_id}->[0]->{Id};
+ }
+ else {
+ die "Fatal error: unrecognized translateAddr AST";
+ exit 1;
+ }
+ my $src_id_node = ASTNode->new_var_node($src_id);
+
+ # Accept Ok(...)
+ my @ok_asts =
+ grep {
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq "Ok"
+ } @$match_list_ast;
+
+ my $ok_tuple =
+ $ok_asts[0]->{Pat_exp}->[0]->{P_app}->[1]->[0]->{P_tuple};
+ my $target_id = $ok_tuple->[0]->[0]->{P_id}->[0]->{Id};
+ my $target_id_node = ASTNode->new_var_node($target_id);
+ my $assign_node =
+ ASTNode->new_assign_node( $target_id_node, $src_id_node );
+
+ my $ok_ast = $ok_asts[0]->{Pat_exp}->[1];
+ my $next_node = $self->do_exp( $ok_ast, $curr_set );
+ $assign_node->append_sibling($next_node);
+ return $assign_node;
+ }
+ # Ignore control flow check
+ # Return whatever is needed to be done next
+ if ( $func eq "ext_control_check_pc" ) {
+ my @ok_asts = grep {
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq
+ "Ext_ControlAddr_OK"
+ } @$match_list_ast;
+ my ( $ok_node, $next_node ) =
+ @{ $self->do_pexp( $ok_asts[0], $curr_set ) };
+ return $next_node;
+ }
+ # Same, but also return the destination to jump to
+ if ( $func eq "jump_to" ) {
+ my @ok_asts = grep {
+ exists $_->{Pat_exp}->[0]->{P_app}
+ && $_->{Pat_exp}->[0]->{P_app}->[0]->{Id} eq
+ "Retire_Success"
+ } @$match_list_ast;
+ my ( $ok_node, $next_node ) =
+ @{ $self->do_pexp( $ok_asts[0], $curr_set ) };
+
+ $id_node->append_sibling($next_node);
+ return $id_node;
+ }
+
+ # Some(...) None(...) pattern
+ # We only care about values in Some(...)
+ my ( $match_value_node1, $match_expr_node1 ) =
+ @{ $self->do_pexp( $match_list_ast->[0], $curr_set ) };
+ my ( $match_value_node2, $match_expr_node2 ) =
+ @{ $self->do_pexp( $match_list_ast->[1], $curr_set ) };
+ if ( $match_value_node1->is_app_node()
+ && $match_value_node2->is_app_node() )
+ {
+ # match ... None ... Some ...
+ # match ... Ok ... Err ...
+ if ( $match_value_node1->get_value() eq "Some"
+ && $match_value_node2->get_value() eq "None" )
+ {
+ my $some_node = $match_value_node1->get_nth_child(0);
+ my $expr_node =
+ $self->do_exp( $app_ast->[1]->[0], $curr_set );
+ my $assign_node =
+ ASTNode->new_assign_node( $some_node, $expr_node );
+ $assign_node->append_sibling($match_expr_node1);
+ return $assign_node;
+ }
+ elsif ($match_value_node1->get_value() eq "None"
+ && $match_value_node2->get_value() eq "Some" )
+ {
+ my $some_node = $match_value_node2->get_nth_child(0);
+ my $expr_node =
+ $self->do_exp( $app_ast->[1]->[0], $curr_set );
+ my $assign_node =
+ ASTNode->new_assign_node( $some_node, $expr_node );
+ $assign_node->append_sibling($match_expr_node2);
+ return $assign_node;
+ }
+ }
+ }
+ @match_list_node = map {
+ my ( $key, $value ) = @{ $self->do_pexp( $_, $curr_set ) };
+ ASTNode->new_match_op_node( $key, $value );
+ } @$match_list_ast;
+ return ASTNode->new_match_node( $id_node, \@match_list_node );
+ }
+ elsif ( my $iff = $ast->{E_if} ) {
+ my ( $cond_ast, $if_ast, $else_ast ) = @$iff;
+
+ my $cond_node = $self->do_exp( $cond_ast, $curr_set );
+ my $if_node = $self->do_exp( $if_ast, $curr_set );
+ my $else_node = $self->do_exp( $else_ast, $curr_set );
+
+ # If both the if or else node is an exception
+ # We return a NULL node
+ if ( $if_node->is_exception_node && $else_node->is_exception_node ) {
+ return ASTNode->new_null_node;
+ }
+
+ # If the if statement is an exception but the else is not
+ # Or if the else statement is an exception but the if is not
+ # We collapse the if-then-else
+ elsif ( $if_node->is_exception_node ) {
+ return $else_node;
+ }
+ elsif ( $else_node->is_exception_node ) {
+ return $if_node;
+ }
+
+ # Special case: In SAIL, it is possible to write
+ # if (cond) jumps_to(foo)
+ # In C++, this is impossible. It must write
+ # d->branchTo(ops->ite(cond, foo, PC))
+ # So we need to append the default jump target PC back
+ if ( $if_node->is_func_node
+ && $if_node->is_op(ROSE_OP_JUMP)
+ && ( $else_node->is_null_node || $else_node->is_return_node ) )
+ {
+ $else_node = ASTNode->new_func_node( ROSE_OP_JUMP,
+ [ ASTNode->new_var_node("PC") ] );
+ }
+
+ # Special case: In SAIL, it is possible to write
+ # if (cond) X(rd) = foo
+ # In C++, this is impossible. It must write
+ # d->write(ops->ite(cond, foo, d->read(rd)))
+ # So we need to append the default value d->read(rd)
+ if ( $if_node->is_func_node
+ && $if_node->is_op(ROSE_OP_WRITE_REG)
+ && ( $else_node->is_null_node || $else_node->is_return_node ) )
+ {
+ my $reg = $if_node->get_nth_child(0);
+ $else_node = ASTNode->new_func_node( ROSE_OP_WRITE_REG,
+ [ $reg, ASTNode->new_func_node( ROSE_OP_READ_REG, [$reg] ) ] );
+ }
+
+ #
+ # Merge two writes to same register
+ # if (cond) X(rd) = foo else X(rd) = bar
+ # becomes
+ # d->write(rd, ops->ite(cond, foo, bar))
+ #
+ if ( $if_node->is_func_node
+ && $if_node->is_op(ASTType::ROSE_OP_WRITE_REG)
+ && $else_node->is_func_node
+ && $else_node->is_op(ASTType::ROSE_OP_WRITE_REG)
+ && $if_node->get_nth_child(0)->is_var_node
+ && $else_node->get_nth_child(0)->is_var_node
+ && $if_node->get_nth_child(0)->get_value() eq
+ $else_node->get_nth_child(0)->get_value() )
+ {
+ my $reg = $if_node->get_nth_child(0);
+
+ my $ite = ASTNode->new_ite_node(
+ $cond_node,
+ $if_node->get_nth_child(1),
+ $else_node->get_nth_child(1)
+ );
+
+ return ASTNode->new_func_node( ASTType::ROSE_OP_WRITE_REG,
+ [ $reg, $ite ] );
+
+ }
+
+ # Merge two jumps
+ # if (cond) jump_to(foo) else jump_to(bar)
+ # becomes
+ # d->branchTo(ops->ite(cond, foo, bar))
+ if ( $if_node->is_func_node
+ && $if_node->is_op(ASTType::ROSE_OP_JUMP)
+ && $else_node->is_func_node
+ && $else_node->is_op(ASTType::ROSE_OP_JUMP) )
+ {
+ my $ite = ASTNode->new_ite_node(
+ $cond_node,
+ $if_node->get_nth_child(0),
+ $else_node->get_nth_child(0)
+ );
+
+ return ASTNode->new_func_node( ASTType::ROSE_OP_JUMP, [$ite] );
+
+ }
+
+ # Generic if-then-else node
+ return ASTNode->new_ite_node( $cond_node, $if_node, $else_node );
+ }
+ return ASTNode->new_null_node();
+}
+
+1;
diff --git a/json-to-rose/ASTBuildFunc.pm b/json-to-rose/ASTBuildFunc.pm
new file mode 100644
index 0000000..f08194f
--- /dev/null
+++ b/json-to-rose/ASTBuildFunc.pm
@@ -0,0 +1,1245 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ASTBuildFunc;
+
+use strict;
+use warnings;
+
+use Exporter 'import';
+use ASTBuildHelper;
+use lib "$FindBin::Bin";
+use ParserCommon qw(
+ XLEN
+);
+
+use ASTType qw(
+ ROSE_OP_SIGN_EXTEND
+ ROSE_OP_ZERO_EXTEND
+ ROSE_OP_READ_REG
+ ROSE_OP_WRITE_REG
+ ROSE_OP_NUMBER
+ ROSE_OP_BOOL
+ ROSE_OP_ADD
+ ROSE_OP_SUB
+ ROSE_OP_SMUL
+ ROSE_OP_SDIV
+ ROSE_OP_SREM
+ ROSE_OP_NEG
+ ROSE_OP_EXTRACT
+ ROSE_OP_SHIFT_LEFT
+ ROSE_OP_SHIFT_RIGHT
+ ROSE_OP_SHIFT_RIGHT_ARITH
+ ROSE_OP_ROTATE_LEFT
+ ROSE_OP_ROTATE_RIGHT
+ ROSE_OP_BAND
+ ROSE_OP_BOR
+ ROSE_OP_BXOR
+ ROSE_OP_BNOT
+ ROSE_OP_EQ
+ ROSE_OP_NEQ
+ ROSE_OP_SIGNED_LT
+ ROSE_OP_SIGNED_GT
+ ROSE_OP_SIGNED_LEQ
+ ROSE_OP_SIGNED_GEQ
+ ROSE_OP_UNSIGNED_GT
+ ROSE_OP_CONCAT
+ ROSE_OP_GET_PC
+ ROSE_OP_GET_NEXT_PC
+ ROSE_OP_JUMP
+ ROSE_OP_WRITE_MEM_VALUE
+ ROSE_OP_WRITE_MEM_EA
+ ROSE_OP_CLZ
+ ROSE_OP_CTZ
+ ROSE_OP_CMUL
+ ROSE_OP_CMULR
+ ROSE_OP_POPC
+ ROSE_OP_REV8
+ ROSE_OP_BREV8
+ ROSE_OP_LOG2
+);
+
+our @EXPORT_OK = qw(
+ @FN_DISPATCH
+ @ERR_DISPATCH
+);
+
+sub unary_op_tmpl {
+ my ( $self, $rose_func, $exps_ast, $curr_set ) = @_;
+ my @exp_nodes = map { $self->do_exp( $_, $curr_set ) } @$exps_ast;
+ my $unary_op_node = ASTNode->new_func_node( $rose_func, \@exp_nodes );
+ $unary_op_node->add_attribute( "unary_op", 1 );
+ $unary_op_node->add_attribute( "is_const_foldable", 1 );
+ return $unary_op_node;
+}
+
+sub binary_op_tmpl {
+ my ( $self, $rose_func, $exps_ast, $curr_set ) = @_;
+ my @exp_nodes = map { $self->do_exp( $_, $curr_set ) } @$exps_ast;
+ my $binary_op_node = ASTNode->new_func_node( $rose_func, \@exp_nodes );
+ $binary_op_node->add_attribute( "binary_op", 1 );
+ $binary_op_node->add_attribute( "is_const_foldable", 1 );
+ return $binary_op_node;
+}
+
+sub unary_op {
+ my ($rose_func) = @_;
+ return sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return unary_op_tmpl( $self, $rose_func, $exps_ast, $curr_set );
+ };
+}
+
+sub binary_op {
+ my ($rose_func) = @_;
+ return sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return binary_op_tmpl( $self, $rose_func, $exps_ast, $curr_set );
+ };
+}
+
+our @FN_DISPATCH = (
+
+ # Unary Operator
+ [ qr/^not_(bit(s)?|vec|atom)$/, unary_op(ROSE_OP_BNOT) ],
+ [ qr/^negate_(bit(s)?|vec|atom)$/, unary_op(ROSE_OP_NEG) ],
+
+ # Binary Operator
+ [ qr/^add_(bit(s)?|vec|atom)$/, binary_op(ROSE_OP_ADD) ],
+ [ qr/^sub_(bit(s)?|vec|atom)$/, binary_op(ROSE_OP_SUB) ],
+ [ qr/^mult_atom$/, binary_op(ROSE_OP_SMUL) ],
+ [ qr/^(quot(_positive)?_round_zero)|(ediv_int)$/, binary_op(ROSE_OP_SDIV) ],
+ [ qr/^rem(_positive)?_round_zero$/, binary_op(ROSE_OP_SREM) ],
+ [ qr/^shift(l|_bits_left)$/, binary_op(ROSE_OP_SHIFT_LEFT) ],
+ [ qr/^shift(r|_bits_right)$/, binary_op(ROSE_OP_SHIFT_RIGHT) ],
+ [ qr/^shift(_bits)?_right_arith$/, binary_op(ROSE_OP_SHIFT_RIGHT_ARITH) ],
+ [ qr/^rotate(l|_bits_left)$/, binary_op(ROSE_OP_ROTATE_LEFT) ],
+ [ qr/^rotate(r|_bits_right)$/, binary_op(ROSE_OP_ROTATE_RIGHT) ],
+ [ qr/^and_vec$/, binary_op(ROSE_OP_BAND) ],
+ [ qr/^or_vec$/, binary_op(ROSE_OP_BOR) ],
+ [ qr/^xor_vec$/, binary_op(ROSE_OP_BXOR) ],
+ [ qr/^eq_(bit(s)?|int|anything)$/, binary_op(ROSE_OP_EQ) ],
+ [ qr/^neq_(bit(s)?|int|anything)$/, binary_op(ROSE_OP_NEQ) ],
+ [ qr/^gt_int$/, binary_op(ROSE_OP_SIGNED_GT) ],
+ [ qr/^lt_int$/, binary_op(ROSE_OP_SIGNED_LT) ],
+ [ qr/^gteq_int$/, binary_op(ROSE_OP_SIGNED_GEQ) ],
+ [ qr/^lteq_int$/, binary_op(ROSE_OP_SIGNED_LEQ) ],
+
+ # Identity / constants
+
+ [
+ qr/^__id$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return $self->do_exp( $exps_ast->[0], $curr_set );
+ }
+ ],
+
+ [
+ qr/^zeros$/,
+ sub {
+ return ASTNode->new_num_node(0);
+ }
+ ],
+
+ [
+ qr/^ones$/,
+ sub {
+ return ASTNode->new_num_node(1);
+ }
+ ],
+
+ # Other arithmetic operations
+
+ [
+ qr/^pow2$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_SHIFT_LEFT,
+ [
+ ASTNode->new_num_node(1),
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ ]
+ );
+ }
+ ],
+
+ [
+ qr/^log2$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_LOG2,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^min_int$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my $exp1_node = $self->do_exp( $exps_ast->[0], $curr_set );
+ my $exp2_node = $self->do_exp( $exps_ast->[1], $curr_set );
+ return ASTNode->new_ite_node(
+ ASTNode->new_func_node(
+ ROSE_OP_SIGNED_LT, [ $exp1_node, $exp2_node ]
+ ),
+ $exp1_node,
+ $exp2_node
+ );
+ }
+ ],
+
+ [
+ qr/^max_int$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my $exp1_node = $self->do_exp( $exps_ast->[0], $curr_set );
+ my $exp2_node = $self->do_exp( $exps_ast->[1], $curr_set );
+ return ASTNode->new_ite_node(
+ ASTNode->new_func_node(
+ ROSE_OP_SIGNED_GT, [ $exp1_node, $exp2_node ]
+ ),
+ $exp1_node,
+ $exp2_node
+ );
+ }
+ ],
+
+ # Signedness annotations
+
+ [
+ qr/^signed$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my $n = $self->do_exp( $exps_ast->[0], $curr_set );
+ $n->add_attribute( "signedness", 1 );
+ return $n;
+ }
+ ],
+
+ [
+ qr/^unsigned$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my $n = $self->do_exp( $exps_ast->[0], $curr_set );
+ $n->add_attribute( "signedness", 0 );
+ return $n;
+ }
+ ],
+
+ # Extensions
+
+ [
+ qr/^sign_extend$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_SIGN_EXTEND,
+ [
+ $self->do_exp( $exps_ast->[1], $curr_set ),
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ ]
+ );
+ }
+ ],
+
+ [
+ qr/^zero_extend$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_ZERO_EXTEND,
+ [
+ $self->do_exp( $exps_ast->[1], $curr_set ),
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ ]
+ );
+ }
+ ],
+
+ # Boolean ops
+
+ [
+ qr/^not(_bool)?$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTBuildHelper::build_boolean_not(
+ $self->do_exp( $exps_ast->[0], $curr_set ) );
+ }
+ ],
+
+ [
+ qr/^and(_bool)?$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTBuildHelper::build_boolean_and(
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ $self->do_exp( $exps_ast->[1], $curr_set ),
+ );
+ }
+ ],
+
+ [
+ qr/^or(_bool)?$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTBuildHelper::build_boolean_or(
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ $self->do_exp( $exps_ast->[1], $curr_set ),
+ );
+ }
+ ],
+
+ # Bit operations
+
+ [
+ qr/^rev8$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_REV8,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^brev8$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_BREV8,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^count_ones$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_POPC,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^count_leading_zeros$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_CLZ,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^count_trailing_zeros$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_CTZ,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^carryless_mul$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_CMUL,
+ [
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ $self->do_exp( $exps_ast->[1], $curr_set )
+ ]
+ );
+ }
+ ],
+
+ [
+ qr/^carryless_mulr$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_CMULR,
+ [
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ $self->do_exp( $exps_ast->[1], $curr_set )
+ ]
+ );
+ }
+ ],
+
+ [
+ qr/^extend_value$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my $id = $self->do_exp( $exps_ast->[0], $curr_set );
+ my $exp = $self->do_exp( $exps_ast->[1], $curr_set );
+ return ASTNode->new_ite_node(
+ $id,
+ ASTNode->new_func_node(
+ ROSE_OP_SIGN_EXTEND, [ $exp, ASTNode->new_num_node(XLEN) ]
+ ),
+ ASTNode->new_func_node(
+ ROSE_OP_ZERO_EXTEND, [ $exp, ASTNode->new_num_node(XLEN) ]
+ ),
+ );
+ }
+ ],
+
+ # Conversions
+
+ [
+ qr/^to_bits$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return $self->do_exp( $exps_ast->[1], $curr_set );
+ }
+ ],
+
+ [
+ qr/^(to_bits_truncate|trunc)$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $self->do_exp( $exps_ast->[1], $curr_set ),
+ ASTNode->new_num_node(0),
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ ]
+ );
+ }
+ ],
+
+ [
+ qr/^bool_to_bit(s)?$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_NUMBER,
+ [
+ ASTNode->new_num_node(XLEN),
+ $self->do_exp( $exps_ast->[0], $curr_set )
+ ]
+ );
+ }
+ ],
+
+ [
+ qr/^bit_to_bool$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_BOOL,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^bits_of_virtaddr$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my ($id_ast) = @{$exps_ast};
+ return $self->do_exp( $id_ast, $curr_set );
+ }
+ ],
+
+ [
+ qr/^subrange_bits$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my ( $value_ast, $high_bit_ast, $low_bit_ast ) = @{$exps_ast};
+ my $value_node = $self->do_exp( $value_ast, $curr_set );
+ my $high_bit_node = $self->do_exp( $high_bit_ast, $curr_set );
+ my $low_bit_node = $self->do_exp( $low_bit_ast, $curr_set );
+ return ASTNode->new_func_node( ROSE_OP_EXTRACT,
+ [ $value_node, $low_bit_node, $high_bit_node ] );
+
+ }
+ ],
+ [
+ qr/bitvector_concat/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my ( $concat_id_ast, $concat_bit_ast ) = @{$exps_ast};
+ my $concat_id_node = $self->do_exp( $concat_id_ast, $curr_set );
+ my $concat_bit_hex_node =
+ $self->do_exp( $concat_bit_ast, $curr_set );
+ my $concat_bit_hex = $concat_bit_hex_node->get_value();
+ my $concat_bit_len = length($concat_bit_hex) * 4;
+ my $concat_bit_num = sprintf( "%x", $concat_bit_hex );
+
+ # Get the bit length of value
+ my $concat_bit_len_node = ASTNode->new_num_node($concat_bit_len);
+ my $shift_left_node = ASTNode->new_func_node( ROSE_OP_SHIFT_LEFT,
+ [ $concat_id_node, $concat_bit_len_node ] );
+ return $concat_bit_num
+ ? ASTNode->new_func_node( ROSE_OP_ADD,
+ [ $shift_left_node, ASTNode->new_num_node($concat_bit_num) ] )
+ : $shift_left_node;
+
+ }
+ ],
+ [
+ qr/^bitvector_access$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ my $value_node = $self->do_exp( $exps_ast->[0], $curr_set );
+ my $bit_node = $self->do_exp( $exps_ast->[1], $curr_set );
+
+ return ASTNode->new_func_node( ROSE_OP_EXTRACT,
+ [ $value_node, $bit_node, $bit_node ] );
+ }
+ ],
+
+ [
+ qr/^bitvector_update$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+
+ my $value_node = $self->do_exp( $exps_ast->[0], $curr_set );
+ my $bit_node = $self->do_exp( $exps_ast->[1], $curr_set );
+ my $bit = $bit_node->get_value();
+
+ if ( $bit == 0 ) {
+ return ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $value_node,
+ ASTNode->new_num_node(1),
+ ASTNode->new_num_node( XLEN - 1 ),
+ ]
+ ),
+ $bit_node
+ ]
+ );
+ }
+ elsif ( $bit == XLEN - 1 ) {
+ return ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ $bit_node,
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $value_node,
+ ASTNode->new_num_node(0),
+ ASTNode->new_num_node( XLEN - 2 ),
+ ]
+ )
+ ]
+ );
+ }
+ else {
+ return ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $value_node,
+ ASTNode->new_num_node( $bit + 1 ),
+ ASTNode->new_num_node( XLEN - 1 ),
+ ]
+ ),
+ ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ $bit_node,
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $value_node,
+ ASTNode->new_num_node(0),
+ ASTNode->new_num_node( $bit - 1 ),
+ ]
+ )
+ ]
+ )
+ ]
+ );
+ }
+ }
+ ],
+
+ [
+ qr/^signed_saturation$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+
+ my $len_node = $self->do_exp( $exps_ast->[0], $curr_set );
+ my $exp_node = $self->do_exp( $exps_ast->[1], $curr_set );
+
+ my $min_value_node = ASTNode->new_func_node(
+ ROSE_OP_NEG,
+ [
+ ASTNode->new_func_node(
+ ROSE_OP_SHIFT_LEFT,
+ [
+ ASTNode->new_num_node(1),
+ ASTNode->new_func_node(
+ ROSE_OP_SUB,
+ [ $len_node, ASTNode->new_num_node(1) ]
+ )
+ ]
+ ),
+ ASTNode->new_num_node(1)
+ ]
+ );
+
+ my $max_value_node = ASTNode->new_func_node(
+ ROSE_OP_SUB,
+ [
+ ASTNode->new_func_node(
+ ROSE_OP_SHIFT_LEFT,
+ [
+ ASTNode->new_num_node(1),
+ ASTNode->new_func_node(
+ ROSE_OP_SUB,
+ [ $len_node, ASTNode->new_num_node(1) ]
+ )
+ ]
+ ),
+ ASTNode->new_num_node(1)
+ ]
+ );
+
+ return ASTNode->new_ite_node(
+ ASTNode->new_func_node(
+ ROSE_OP_SIGNED_GT, [ $exp_node, $max_value_node ]
+ ),
+ $max_value_node,
+ ASTNode->new_ite_node(
+ ASTNode->new_func_node(
+ ROSE_OP_SIGNED_LT, [ $exp_node, $min_value_node ]
+ ),
+ $min_value_node,
+ $exp_node
+ )
+ );
+ }
+ ],
+
+ [
+ qr/^unsigned_saturation$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+
+ my $len_node = $self->do_exp( $exps_ast->[0], $curr_set );
+ my $exp_node = $self->do_exp( $exps_ast->[1], $curr_set );
+
+ my $max_value_node = ASTNode->new_func_node(
+ ROSE_OP_SUB,
+ [
+ ASTNode->new_func_node(
+ ROSE_OP_SHIFT_LEFT,
+ [ ASTNode->new_num_node(1), $len_node ]
+ ),
+ ASTNode->new_num_node(1)
+ ]
+ );
+
+ return ASTNode->new_ite_node(
+ ASTNode->new_func_node(
+ ROSE_OP_UNSIGNED_GT, [ $exp_node, $max_value_node ]
+ ),
+ $max_value_node,
+ $exp_node
+ );
+ }
+ ],
+
+ # PC / control flow
+
+ [ qr/^get_arch_pc$/, sub { ASTNode->new_func_node(ROSE_OP_GET_PC) } ],
+ [ qr/^get_next_pc$/, sub { ASTNode->new_func_node(ROSE_OP_GET_NEXT_PC) } ],
+
+ [
+ qr/^(set_next_pc|jump_to)$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_JUMP,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ # Registers
+
+ [
+ qr/^rX(_pair)?_(S|bits)$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node( ROSE_OP_READ_REG,
+ [ $self->do_exp( $exps_ast->[0], $curr_set ) ] );
+ }
+ ],
+
+ [
+ qr/^wX(_pair)?_(S|bits)$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_WRITE_REG,
+ [
+ $self->do_exp( $exps_ast->[0], $curr_set ),
+ $self->do_exp( $exps_ast->[1], $curr_set ),
+ ]
+ );
+ }
+ ],
+
+ # Memory
+
+ [
+ qr/^mem_write_value$/,
+ sub {
+ return ASTNode->new_func_node(ROSE_OP_WRITE_MEM_VALUE);
+ }
+ ],
+
+ [
+ qr/^mem_write_ea$/,
+ sub {
+ return ASTNode->new_func_node(ROSE_OP_WRITE_MEM_EA);
+ }
+ ],
+
+ # Misc
+
+ [
+ qr/^execute$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+
+ my ($exp) = @$exps_ast;
+
+ my $conv_type = $exp->{E_app}[0]{Id};
+ my $new_insn_index = $ParserConfig::C_INSN_NEW_INSN{$curr_set};
+
+ my $tuple_elems = $exp->{E_app}[1][0]{E_tuple};
+
+ my $conv_insn =
+ $new_insn_index != -1
+ ? $tuple_elems->[0][$new_insn_index]{E_id}[0]{Id}
+ : $conv_type;
+
+ $conv_insn =~ s/^RISCV_//;
+ $conv_insn = lc($conv_insn) =~ tr/./_/r;
+
+ return ASTNode->new_convert_node( $conv_insn, $conv_type );
+ }
+ ],
+
+ [
+ qr/^currentlyEnabled$/,
+ sub {
+ my ( $self, $exps_ast, $curr_set ) = @_;
+
+ my ($id_ast) = @$exps_ast;
+ my $id_node = $self->do_exp( $id_ast, $curr_set );
+ my $id = $id_node->get_value();
+
+ if ( grep( /^$id$/, @ParserConfig::supported_riscv_exts ) ) {
+ return ASTNode->new_bool_node(1);
+ }
+ return ASTNode->new_bool_node(0);
+ }
+ ],
+
+ # Functions already handled in E_match
+
+ [ qr/^(v?)mem_(read|write)$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^ext_control_check_pc$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^ext_data_get_addr$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^is_aligned_(p|v)addr$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^translateAddr$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^creg2reg_idx$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^Some$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^None$/, sub { ASTNode->new_null_node() } ],
+
+ # Unintersting functions
+
+ [ qr/^print$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^update_elp_state|reset_elp$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^bool_bits_forward$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^cancel_reservation$/, sub { ASTNode->new_null_node() } ],
+ [ qr/^Retire_Success$/, sub { ASTNode->new_null_node() } ],
+
+ # Exceptions
+
+ [ qr/^internal_error$/, sub { ASTNode->new_exception_node() } ],
+ [ qr/^Illegal_Instruction$/, sub { ASTNode->new_exception_node() } ],
+ [ qr/^(.*)_Exception$/, sub { ASTNode->new_exception_node() } ],
+ [ qr/^E_SAMO_(.*)$/, sub { ASTNode->new_exception_node() } ],
+ [ qr/^Ext_DataAddr_Check_Failure$/, sub { ASTNode->new_exception_node() } ],
+
+);
+
+our @ERR_DISPATCH = (
+
+ # Floating Points
+ [
+ qr/^(r|w)F(_or_X)?(_(D|H|S)|_bits|_BF16)?$/,
+ sub {
+ my ($fn_id) = @_;
+ die
+ "Error: Floating points register read/write function $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^riscv_f(16|32|64).*$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^accrue_fflags$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^riscv_(u?i(32|64)ToF(16|32|64))$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^f_is_((Q|S)?NAN|(pos|neg)_(inf|norm|subnorm|zero))_(D|H|S)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^(fp_(add|class|div|eq|ge|gt|le|lt|max|min|mul|muladd|mulsub|nmuladd|nmulsub|sub|widen))$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^(fle|fmake|fsplit|negate)_(BF16|D|H|S)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^select_instr_or_fcsr_rm$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^encdec_rounding_mode_forwards$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^get_scalar(_fp)?$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^bf16_to_f32(_set_flags)?$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^fcvtmod_helper$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^cfregidx_to_fregidx$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Floating points operation $fn_id not supported in ROSE C++";
+ },
+ ],
+ [
+ qr/^nan_box|canonical_NaN_(D|H|S)$/,
+ sub {
+ my ($fn_id) = @_;
+ die
+ "Error: Floating points Nan operation $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ # Vectors
+ [
+ qr/^((read|write)_vreg(_seg)?)|((r|w)V(_bits)?)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector registers read/write function $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^plain_vector_(access|update)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^vector_(init|length)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^recip7$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^fixed_rounding_incr$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^init_masked_(result(_cmp|_carry)?|source)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^(read|write)_vmask(_carry)?$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^illegal_fp_(normal|variable|width|vd_masked|vd_unmasked)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^illegal_(load|normal|reduction|store|variable_width)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^illegal_(vd_masked|vd_unmasked|widening_reduction)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^(set|assert)_vstart$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^get_(sew|sew_pow|sew_bytes|lmul_pow|num_elem)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^get_(slice_int|shift_amount|vtype_vta)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^get_((start|end)_element)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^(get|write)_velem_(oct_vec|quad|quad_vec)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^vlewidth_pow_forwards$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^_get_Vtype_(reserved|vill|vlmul|vma|vsew|vta)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^to_bits_unsafe$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^Mk_Vtype$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^handle_illegal_vtype$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^execute_vsetvl_type$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^process_(rfvv_single|clean_inval|rfvv_widening_reduction)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^process_((vl|vs)(re|seg|segff|sseg|xseg)|vm)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^(read|write)_single_element$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^valid_reg_overlap$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ },
+ ],
+
+ [
+ qr/^fixed_rounding_incr$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ }
+ ],
+ [
+ qr/^vtype_vta$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector operations $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ # Vector Cryptography
+
+ [
+ qr/^zvk(.*)|vrev8$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Vector K extension operation $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ # System
+ [
+ qr/^E_(U|S|M)_EnvCall$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Ecall functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^Trap$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Trap functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^_get_Mstatus_(TSR|TVM|TW)|(read|do)CSR|_get_Fcsr_FRM$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Control status functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^effective_fence_set|is_fiom_activ|sail_barrier$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Fence function $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^Enter_Wait$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Wait for interruption functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^CLT_(M|S)RET|Ext_XRET_Priv_Failure|ext_check_xret_priv$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Return from trap functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^make_landing_pad_exception$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Landing pad functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^(add_to|flush|lookup|match|reset)_TLB(_Entry)?|translate_TLB_(hit|miss)$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: TLB functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^(trap)(_callback|Cause_bits_forwards|Cause_is_interrupt|Cause_to_str|_handler|VectorMode_of_bits)|Trap$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Trap functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^exception_handler$/,
+ sub {
+ my ($fn_id) = @_;
+ die
+ "Error: Exception handler functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^E_breakpoint$/,
+ sub {
+ my ($fn_id) = @_;
+ die "Error: Breakpoint functions $fn_id not supported in ROSE C++";
+ }
+ ],
+
+ [
+ qr/^cbo_clean_flush_enabled|cbop_priv_check|cbo_zero_enabled|process_clean_inval$/,
+ sub {
+ my ($fn_id) = @_;
+ die
+ "Error: Cache-Block management functions $fn_id not supported in ROSE C++";
+ }
+ ]
+);
+
+1;
diff --git a/json-to-rose/ASTBuildHelper.pm b/json-to-rose/ASTBuildHelper.pm
new file mode 100644
index 0000000..3e0aa9d
--- /dev/null
+++ b/json-to-rose/ASTBuildHelper.pm
@@ -0,0 +1,158 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ASTBuildHelper;
+
+use strict;
+use warnings;
+
+use Exporter 'import';
+use lib "$FindBin::Bin";
+use ASTType qw(
+ ROSE_OP_ADD
+ ROSE_OP_SUB
+ ROSE_OP_BOOL
+ ROSE_OP_CONCAT
+ ROSE_OP_EXTRACT
+ ROSE_OP_BAND
+ ROSE_OP_BOR
+ ROSE_OP_BNOT
+);
+use ParserCommon qw(
+ XLEN
+);
+
+our @EXPORT_OK = qw(
+ build_boolean_not
+ build_boolean_and
+ build_boolean_or
+ build_bitvec_index_assign
+ build_bitvec_range_assign
+);
+
+sub build_boolean_not {
+ my ($exp_node) = @_;
+ return ASTNode->new_func_node( ROSE_OP_BNOT,
+ [ ASTNode->new_func_node( ROSE_OP_BOOL, [$exp_node] ), ] );
+}
+
+sub build_boolean_and {
+ my ( $exp1_node, $exp2_node ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_BAND,
+ [
+ ASTNode->new_func_node( ROSE_OP_BOOL, [$exp1_node] ),
+ ASTNode->new_func_node( ROSE_OP_BOOL, [$exp2_node] ),
+ ]
+ );
+}
+
+sub build_boolean_or {
+ my ( $exp1_node, $exp2_node ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_BOR,
+ [
+ ASTNode->new_func_node( ROSE_OP_BOOL, [$exp1_node] ),
+ ASTNode->new_func_node( ROSE_OP_BOOL, [$exp2_node] ),
+ ]
+ );
+}
+
+sub build_bitvec_index_assign {
+ my ( $bitvec_node, $idx_node, $value_node ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $bitvec_node,
+ ASTNode->new_num_node(0),
+ ASTNode->new_func_node(
+ ROSE_OP_SUB, [ $idx_node, ASTNode->new_num_node(1) ]
+ )
+ ]
+ ),
+ ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ $value_node,
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $bitvec_node,
+ ASTNode->new_func_node(
+ ROSE_OP_ADD,
+ [ $idx_node, ASTNode->new_num_node(1) ]
+ ),
+ ASTNode->new_num_node(XLEN)
+ ]
+ )
+ ]
+ )
+ ]
+ );
+}
+
+sub build_bitvec_range_assign {
+ my ( $bitvec_node, $beg_node, $end_node, $value_node ) = @_;
+ return ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $bitvec_node,
+ ASTNode->new_num_node(0),
+ ASTNode->new_func_node(
+ ROSE_OP_SUB, [ $beg_node, ASTNode->new_num_node(1) ]
+ )
+ ]
+ ),
+ ASTNode->new_func_node(
+ ROSE_OP_CONCAT,
+ [
+ $value_node,
+ ASTNode->new_func_node(
+ ROSE_OP_EXTRACT,
+ [
+ $bitvec_node,
+ ASTNode->new_func_node(
+ ROSE_OP_ADD,
+ [ $end_node, ASTNode->new_num_node(1) ]
+ ),
+ ASTNode->new_num_node(XLEN)
+ ]
+ )
+ ]
+ )
+ ]
+ );
+}
+
+1;
diff --git a/json-to-rose/ASTNode.pm b/json-to-rose/ASTNode.pm
new file mode 100644
index 0000000..969b303
--- /dev/null
+++ b/json-to-rose/ASTNode.pm
@@ -0,0 +1,528 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ASTNode;
+
+use strict;
+use warnings;
+
+use Exporter 'import';
+use FindBin;
+use lib "$FindBin::Bin";
+
+our @EXPORT_OK = qw(new);
+
+sub new {
+ my ( $class, %args ) = @_;
+ my $self = {
+ type => $args{type} // ASTType::LIT_NULL,
+ value => $args{value} // undef,
+ attributes => $args{attributes} // {},
+ children => $args{children} // [],
+ siblings => $args{siblings} // [],
+ };
+ return bless $self, $class;
+}
+
+sub new_null_node {
+ my ($class) = @_;
+ return $class->new( type => ASTType::LIT_NULL );
+}
+
+sub new_num_node {
+ my ( $class, $value ) = @_;
+ return $class->new( type => ASTType::LIT_NUM, value => $value );
+}
+
+sub new_var_node {
+ my ( $class, $id ) = @_;
+ return $class->new( type => ASTType::LIT_VAR, value => $id );
+}
+
+sub new_id_node {
+ my ( $class, $id ) = @_;
+ return $class->new( type => ASTType::LIT_ID, value => $id );
+}
+
+sub new_hex_node {
+ my ( $class, $hex ) = @_;
+ return $class->new( type => ASTType::LIT_HEX, value => $hex );
+}
+
+sub new_bin_node {
+ my ( $class, $bin ) = @_;
+ return $class->new( type => ASTType::LIT_BIN, value => $bin );
+}
+
+sub new_str_node {
+ my ( $class, $value ) = @_;
+ return $class->new( type => ASTType::LIT_STR, value => $value );
+}
+
+sub new_bool_node {
+ my ( $class, $bool ) = @_;
+ return $class->new( type => ASTType::LIT_BOOL, value => $bool );
+}
+
+sub new_unit_node {
+ my ($class) = @_;
+ return $class->new( type => ASTType::LIT_UNIT );
+}
+
+sub new_vec_node {
+ my ( $class, $value ) = @_;
+ return $class->new( type => ASTType::LIT_VEC, value => $value );
+}
+
+sub new_list_node {
+ my ( $class, $value ) = @_;
+ return $class->new( type => ASTType::LIT_LIST, value => $value );
+}
+
+sub new_lit_node {
+ my ( $class, $value ) = @_;
+ return $class->new( type => ASTType::EXP_LIT, value => $value );
+}
+
+sub new_func_node {
+ my ( $class, $id, $args ) = @_;
+ return $class->new(
+ type => ASTType::EXP_FUNC,
+ value => $id,
+ children => $args
+ );
+}
+
+sub new_tuple_node {
+ my ( $class, $tuple_elem ) = @_;
+ return ASTNode->new( type => ASTType::EXP_TUPLE, children => $tuple_elem );
+}
+
+sub new_wild_node {
+ return ASTNode->new( type => ASTType::EXP_WILD );
+}
+
+sub new_block_node {
+ my ( $class, $asts ) = @_;
+ return $class->new( type => ASTType::EXP_BLOCK, children => $asts );
+}
+
+sub new_for_node {
+ my ( $class, $i, $init, $fini, $step, $ord, $block ) = @_;
+ return $class->new(
+ type => ASTType::EXP_FOR,
+ value => $i,
+ children => [ $init, $fini, $step, $block ],
+ attributes => { ord => $ord }
+ );
+}
+
+sub new_while_node {
+ my ( $class, $cond, $block ) = @_;
+ return $class->new(
+ type => ASTType::EXP_WHILE,
+ children => [ $cond, $block ]
+ );
+}
+
+sub new_assign_node {
+ my ( $class, $id, $exp ) = @_;
+ return $class->new(
+ type => ASTType::EXP_ASSIGN,
+ value => $id,
+ children => [$exp]
+ );
+}
+
+sub new_match_node {
+ my ( $class, $id, $match_list_node ) = @_;
+ return ASTNode->new(
+ type => ASTType::EXP_MATCH,
+ value => $id,
+ children => $match_list_node
+ );
+}
+
+sub new_match_op_node {
+ my ( $class, $key, $value ) = @_;
+ return ASTNode->new(
+ type => ASTType::EXP_MATCH_OP,
+ value => $key,
+ children => [$value]
+ );
+}
+
+sub new_app_node {
+ my ( $class, $id, $args ) = @_;
+ return ASTNode->new(
+ type => ASTType::EXP_APP,
+ value => $id,
+ children => $args
+ );
+}
+
+sub new_return_node {
+ my ($class) = @_;
+ return $class->new( type => ASTType::EXP_RETURN );
+}
+
+sub new_field_node {
+ my ( $class, $var, $field ) = @_;
+ return $class->new(
+ type => ASTType::EXP_FIELD,
+ value => { var => $var, field => $field }
+ );
+}
+
+sub new_convert_node {
+ my ( $class, $conv_insn, $conv_type ) = @_;
+ return $class->new(
+ type => ASTType::EXP_CONVERT,
+ value => { insn => $conv_insn, type => $conv_type }
+ );
+}
+
+sub new_exception_node {
+ my ($class) = @_;
+ return $class->new( type => ASTType::EXP_EXCEPTION );
+}
+
+sub new_ite_node {
+ my ( $class, $cond, $if, $else ) = @_;
+ return $class->new(
+ type => ASTType::EXP_FUNC,
+ value => ASTType::ROSE_OP_ITE,
+ children => [ $cond, $if, $else ]
+ );
+}
+
+sub new_vec_index_node {
+ my ( $class, $vector, $index ) = @_;
+ return $class->new(
+ type => ASTType::LIT_VEC_INDEX,
+ value => $vector,
+ children => [$index]
+ );
+}
+
+sub new_vec_range_node {
+ my ( $class, $vector, $start, $end ) = @_;
+ return $class->new(
+ type => ASTType::LIT_VEC_RANGE,
+ value => $vector,
+ children => [ $start, $end ]
+ );
+}
+
+sub new_vec_concat_node {
+ my ( $class, $vector, $concat ) = @_;
+ return $class->new(
+ type => ASTType::LIT_VEC_CONCAT,
+ value => $vector,
+ children => [$concat]
+ );
+}
+
+sub is_null_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_NULL;
+}
+
+sub is_id_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_ID;
+}
+
+sub is_var_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_VAR;
+}
+
+sub is_num_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_NUM;
+}
+
+sub is_bin_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_BIN;
+}
+
+sub is_str_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_STR;
+}
+
+sub is_hex_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_HEX;
+}
+
+sub is_bool_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_BOOL;
+}
+
+sub is_unit_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_UNIT;
+}
+
+sub is_vec_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_VEC;
+}
+
+sub is_list_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_LIST;
+}
+
+sub is_func_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_FUNC;
+}
+
+sub is_tuple_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_TUPLE;
+}
+
+sub is_wild_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_WILD;
+}
+
+sub is_block_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_BLOCK;
+}
+
+sub is_for_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_FOR;
+}
+
+sub is_while_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_WHILE;
+}
+
+sub is_assign_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_ASSIGN;
+}
+
+sub is_match_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_MATCH;
+}
+
+sub is_match_op_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_MATCH_OP;
+}
+
+sub is_app_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_APP;
+}
+
+sub is_return_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_RETURN;
+}
+
+sub is_field_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_FIELD;
+}
+
+sub is_convert_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_CONVERT;
+}
+
+sub is_exception_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_EXCEPTION;
+}
+
+sub is_ite_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_FUNC
+ && $self->{value} eq ASTType::ROSE_OP_ITE;
+}
+
+sub is_lit_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::EXP_LIT;
+}
+
+sub is_vec_index_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_VEC_INDEX;
+}
+
+sub is_vec_range_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_VEC_RANGE;
+}
+
+sub is_vec_concat_node {
+ my ($self) = @_;
+ return $self->{type} eq ASTType::LIT_VEC_CONCAT;
+}
+
+sub attribute_exists {
+ my ( $self, $attr_key ) = @_;
+ return exists $self->{attribute}->{$attr_key};
+}
+
+sub append_child {
+ my ( $self, $child ) = @_;
+ push @{ $self->{children} }, $child;
+}
+
+sub append_sibling {
+ my ( $self, $sibling ) = @_;
+ push @{ $self->{siblings} }, $sibling;
+}
+
+sub has_attribute {
+ my ( $self, $attr_key, $attr_value ) = @_;
+ return exists $self->{attributes}{$attr_key};
+}
+
+sub add_attribute {
+ my ( $self, $attr_key, $attr_value ) = @_;
+ $self->{attributes}{$attr_key} = $attr_value;
+}
+
+sub get_attribute {
+ my ( $self, $attr_key ) = @_;
+ die "Unexpected error: Unknown attribute $attr_key"
+ unless exists $self->{attributes}{$attr_key};
+ return $self->{attributes}{$attr_key};
+}
+
+sub get_attributes {
+ my ( $self ) = @_;
+ return $self->{attributes};
+}
+
+sub get_type {
+ my ($self) = @_;
+ return $self->{type};
+}
+
+sub get_value {
+ my ($self) = @_;
+ return $self->{value};
+}
+
+sub get_children {
+ my ($self) = @_;
+ return $self->{children};
+}
+
+sub get_nth_child {
+ my ( $self, $index ) = @_;
+ die "Unexpected Error: Invalid index $index"
+ unless $index >= 0 && $index < scalar @{ $self->{children} };
+ return $self->{children}[$index];
+}
+
+sub get_siblings {
+ my ($self) = @_;
+ return $self->{siblings};
+}
+
+sub get_nth_sibling {
+ my ( $self, $index ) = @_;
+ die "Unexpected Error: Invalid index $index"
+ unless $index >= 0 && $index < scalar @{ $self->{siblings} };
+ return $self->{siblings}[$index];
+}
+
+sub set_type {
+ my ( $self, $type ) = @_;
+ $self->{type} = $type;
+}
+
+sub set_value {
+ my ( $self, $value ) = @_;
+ $self->{value} = $value;
+}
+
+sub set_attributes {
+ my ( $self, $attrs ) = @_;
+ $self->{attributes} = $attrs;
+}
+
+sub set_children {
+ my ( $self, $children ) = @_;
+ $self->{children} = $children;
+}
+
+sub set_nth_child {
+ my ( $self, $index, $child ) = @_;
+ $self->{children}[$index] = $child;
+}
+
+sub set_siblings {
+ my ($self, $siblings) = @_;
+ $self->{siblings} = $siblings;
+}
+
+sub set_nth_sibling {
+ my ( $self, $index, $sibling ) = @_;
+ $self->{siblings}[$index] = $sibling;
+}
+
+sub is_type {
+ my ( $self, $type ) = @_;
+ return $self->{type} eq $type;
+}
+
+sub is_op {
+ my ( $self, $op ) = @_;
+ die "Unexpected Error: Not a function node" unless $self->is_func_node();
+ return $self->get_value() eq $op;
+}
+
+sub set_node {
+ my ( $self, $to_copy ) = @_;
+ $self->set_value($to_copy->get_value());
+ $self->set_type($to_copy->get_type());
+ $self->set_attributes($to_copy->get_attributes());
+ $self->set_children($to_copy->get_children());
+ $self->set_siblings($to_copy->get_siblings());
+}
+
+1;
diff --git a/json-to-rose/ASTType.pm b/json-to-rose/ASTType.pm
new file mode 100644
index 0000000..0e91611
--- /dev/null
+++ b/json-to-rose/ASTType.pm
@@ -0,0 +1,227 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ASTType;
+
+use strict;
+use warnings;
+
+use Exporter 'import';
+
+our @EXPORT_OK = qw(
+ EXP_APP
+ EXP_ASSIGN
+ EXP_BLOCK
+ EXP_CONVERT
+ EXP_EXCEPTION
+ EXP_FIELD
+ EXP_FOR
+ EXP_FUNC
+ EXP_LIT
+ EXP_MATCH
+ EXP_MATCH_OP
+ EXP_RETURN
+ EXP_TUPLE
+ EXP_VAR
+ EXP_WHILE
+ EXP_WILD
+ LIT_BIN
+ LIT_BOOL
+ LIT_CONS
+ LIT_HEX
+ LIT_ID
+ LIT_LIST
+ LIT_NULL
+ LIT_NUM
+ LIT_STR
+ LIT_STR_APPEND
+ LIT_UNIT
+ LIT_VAR
+ LIT_VEC
+ LIT_VEC_CONCAT
+ LIT_VEC_INDEX
+ LIT_VEC_RANGE
+ ROSE_OP_ADD
+ ROSE_OP_BAND
+ ROSE_OP_BNOT
+ ROSE_OP_BOR
+ ROSE_OP_BXOR
+ ROSE_OP_BOOL
+ ROSE_OP_BREV8
+ ROSE_OP_CLZ
+ ROSE_OP_CMUL
+ ROSE_OP_CMULR
+ ROSE_OP_CONCAT
+ ROSE_OP_CTZ
+ ROSE_OP_EADDR
+ ROSE_OP_EXTRACT
+ ROSE_OP_GET_NEXT_PC
+ ROSE_OP_GET_PC
+ ROSE_OP_IDENT
+ ROSE_OP_ITE
+ ROSE_OP_EQ
+ ROSE_OP_NEQ
+ ROSE_OP_SIGNED_GT
+ ROSE_OP_SIGNED_GEQ
+ ROSE_OP_SIGNED_LT
+ ROSE_OP_SIGNED_LEQ
+ ROSE_OP_UNSIGNED_GT
+ ROSE_OP_UNSIGNED_GEQ
+ ROSE_OP_UNSIGNED_LT
+ ROSE_OP_UNSIGNED_LEQ
+ ROSE_OP_IS_ZERO
+ ROSE_OP_JUMP
+ ROSE_OP_LOG2
+ ROSE_OP_READ_MEM
+ ROSE_OP_WRITE_MEM
+ ROSE_OP_WRITE_MEM_EA
+ ROSE_OP_WRITE_MEM_VALUE
+ ROSE_OP_NEG
+ ROSE_OP_NOOP
+ ROSE_OP_NUMBER
+ ROSE_OP_POPC
+ ROSE_OP_READ
+ ROSE_OP_READ_IMM
+ ROSE_OP_READ_REG
+ ROSE_OP_REV8
+ ROSE_OP_ROTATE_LEFT
+ ROSE_OP_ROTATE_RIGHT
+ ROSE_OP_SDIV
+ ROSE_OP_SHIFT_LEFT
+ ROSE_OP_SHIFT_RIGHT
+ ROSE_OP_SHIFT_RIGHT_ARITH
+ ROSE_OP_SIGN_EXTEND
+ ROSE_OP_SMUL
+ ROSE_OP_SREM
+ ROSE_OP_SUB
+ ROSE_OP_UDIV
+ ROSE_OP_UREM
+ ROSE_OP_WRITE_REG
+ ROSE_OP_ZERO_EXTEND
+);
+
+use constant {
+ LIT_NULL => 'Null',
+ LIT_VAR => 'Variable',
+ LIT_ID => 'Identity',
+ LIT_NUM => 'Decimal Number',
+ LIT_HEX => 'Hex Number',
+ LIT_BIN => 'Binary Number',
+ LIT_STR => 'String',
+ LIT_BOOL => 'Boolean',
+ LIT_UNIT => 'Unit',
+ LIT_VEC => 'Vector',
+ LIT_VEC_INDEX => 'Vector Index',
+ LIT_VEC_RANGE => 'Vector Range',
+ LIT_VEC_CONCAT => 'Vector Range',
+ LIT_LIST => 'List',
+ LIT_CONS => 'Construct',
+ LIT_STR_APPEND => 'String Append'
+};
+
+use constant {
+ EXP_VAR => 'Variable',
+ EXP_LIT => 'Literal',
+ EXP_FUNC => 'Function',
+ EXP_TUPLE => 'Tuple',
+ EXP_WILD => 'Wildcard',
+ EXP_BLOCK => 'Block',
+ EXP_FOR => 'For Loop',
+ EXP_WHILE => 'While Loop',
+ EXP_ASSIGN => 'Assignment',
+ EXP_MATCH => 'Match',
+ EXP_MATCH_OP => 'Match Operation',
+ EXP_APP => 'Application',
+ EXP_RETURN => 'Return',
+ EXP_FIELD => 'Field Access',
+ EXP_CONVERT => 'Convert',
+ EXP_EXCEPTION => 'Exception',
+};
+
+use constant {
+ ROSE_OP_NOOP => 'No Operation',
+ ROSE_OP_IDENT => 'Identity Function',
+ ROSE_OP_SIGN_EXTEND => 'Sign Extend',
+ ROSE_OP_ZERO_EXTEND => 'Zero Extend',
+ ROSE_OP_READ_REG => 'Read Register',
+ ROSE_OP_READ_IMM => 'Read Immediate',
+ ROSE_OP_WRITE_REG => 'Write Register',
+ ROSE_OP_NUMBER => 'To Number',
+ ROSE_OP_BOOL => 'To Boolean',
+ ROSE_OP_ADD => 'Add',
+ ROSE_OP_SUB => 'Subtract',
+ ROSE_OP_SMUL => 'Multiply',
+ ROSE_OP_UMUL => 'Unsigned Multiply',
+ ROSE_OP_SUMUL => 'Signed Unsigned Multiply',
+ ROSE_OP_SDIV => 'Signed Divide',
+ ROSE_OP_UDIV => 'Unsigned Divide',
+ ROSE_OP_SREM => 'Signed Modulo',
+ ROSE_OP_UREM => 'Unsigned Modulo',
+ ROSE_OP_NEG => 'Negate',
+ ROSE_OP_ITE => 'If Then Else',
+ ROSE_OP_EXTRACT => 'Extract Bits',
+ ROSE_OP_SHIFT_LEFT => 'Shift Left',
+ ROSE_OP_SHIFT_RIGHT => 'Shift Right',
+ ROSE_OP_SHIFT_RIGHT_ARITH => 'Shift Right Arithmetic',
+ ROSE_OP_ROTATE_LEFT => 'Rotate Left',
+ ROSE_OP_ROTATE_RIGHT => 'Rotate Right',
+ ROSE_OP_BAND => 'Bitwise And',
+ ROSE_OP_BOR => 'Bitwise Or',
+ ROSE_OP_BXOR => 'Bitwise Xor',
+ ROSE_OP_BNOT => 'Bitwise Not',
+ ROSE_OP_EQ => 'Is Equal',
+ ROSE_OP_NEQ => 'Is Not Equal',
+ ROSE_OP_SIGNED_LT => 'Is Signed Less Than',
+ ROSE_OP_SIGNED_GT => 'Is Signed Greater Than',
+ ROSE_OP_SIGNED_LEQ => 'Is Signed Less Than Equal',
+ ROSE_OP_SIGNED_GEQ => 'Is Signed Greater Than Equal',
+ ROSE_OP_UNSIGNED_LT => 'Is Unsigned Less Than',
+ ROSE_OP_UNSIGNED_GT => 'Is Unsigned Greater Than',
+ ROSE_OP_UNSIGNED_LEQ => 'Is Unsigned Less Than Equal',
+ ROSE_OP_UNSIGNED_GEQ => 'Is Unsigned Greater Than Equal',
+ ROSE_OP_IS_ZERO => 'Is Zero',
+ ROSE_OP_CONCAT => 'Concatenate',
+ ROSE_OP_GET_PC => 'Get Program Counter',
+ ROSE_OP_GET_NEXT_PC => 'Get Next Program Counter',
+ ROSE_OP_JUMP => 'Jump',
+ ROSE_OP_EADDR => 'Get Effective Address',
+ ROSE_OP_READ_MEM => 'Read Memory',
+ ROSE_OP_WRITE_MEM => 'Write Memory',
+ ROSE_OP_WRITE_MEM_VALUE => 'Write Memory Value',
+ ROSE_OP_WRITE_MEM_EA => 'Write Memory Effective Address',
+ ROSE_OP_CLZ => 'Count Leading Zero',
+ ROSE_OP_CTZ => 'Count Trailing Zero',
+ ROSE_OP_CMUL => 'Carryless Multiplication',
+ ROSE_OP_CMULR => 'Carryless Multiplication Reverse',
+ ROSE_OP_POPC => 'Popcount',
+ ROSE_OP_REV8 => 'Reverse Bytes Wise',
+ ROSE_OP_BREV8 => 'Reverse Bits In Bytes',
+ ROSE_OP_LOG2 => 'Log2',
+};
+
+1;
diff --git a/json-to-rose/ParserCommon.pm b/json-to-rose/ParserCommon.pm
new file mode 100644
index 0000000..e13f1ad
--- /dev/null
+++ b/json-to-rose/ParserCommon.pm
@@ -0,0 +1,67 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ParserCommon;
+
+use strict;
+use warnings;
+
+use Exporter 'import';
+our @EXPORT_OK = qw(
+ rename_invalid_id
+ rename_op_var
+ INDENT
+ XLEN
+ LOG2_XLEN
+ TEMP_VAR
+ WIDTH_BYTES_VAR
+ ITE_SIGNEDNESS
+);
+
+use constant {
+ INDENT => 4,
+ XLEN => 64,
+ LOG2_XLEN => 6,
+ TEMP_VAR => "tmp",
+ WIDTH_BYTES_VAR => "width",
+ ITE_SIGNEDNESS => -1,
+};
+
+sub rename_invalid_id {
+ my ($id) = @_;
+ $id =~ tr/'/_/;
+ $id =~ tr/./_/;
+ return $id;
+}
+
+sub rename_op_var {
+ my ($id) = @_;
+ return rename_invalid_id("rose_riscv64_op_\L$id");
+}
+
+1;
diff --git a/json-to-rose/ParserConfig.pm b/json-to-rose/ParserConfig.pm
new file mode 100644
index 0000000..d7ae8ea
--- /dev/null
+++ b/json-to-rose/ParserConfig.pm
@@ -0,0 +1,669 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package ParserConfig;
+
+use strict;
+use warnings;
+
+use Tie::IxHash;
+
+use Exporter 'import';
+use lib "$FindBin::Bin";
+
+use ParserCommon qw(XLEN);
+
+use PrintROSE qw(
+ print_indent
+ print_load_init_code
+ print_store_init_code
+ print_mul_init_code
+ print_div_init_code
+ print_rem_init_code
+);
+
+our @EXPORT_OK = qw(
+ $supported_riscv_subsets
+ $supported_riscv_exts
+ %ARGS_PER_SUBSET
+ %GLOBAL_VARS
+ %C_INSN_NEW_INSN
+);
+
+# Instruction subsets supported currently
+our @supported_riscv_subsets = (
+ "UTYPE", "BTYPE", "ITYPE", "JAL",
+ "JALR", "SHIFTIOP", "RTYPE", "LOAD",
+ "STORE", "ADDIW", "RTYPEW", "SHIFTIWOP",
+ "LOADRES", "STORECON", "AMO", "MUL",
+ "DIV", "REM", "MULW", "DIVW",
+ "REMW", "C_NOP", "C_ADDI4SPN", "C_LW",
+ "C_LD", "C_SW", "C_SD", "C_ADDI",
+ "C_JAL", "C_ADDIW", "C_LI", "C_ADDI16SP",
+ "C_LUI", "C_SRLI", "C_SRAI", "C_ANDI",
+ "C_SUB", "C_XOR", "C_OR", "C_AND",
+ "C_SUBW", "C_ADDW", "C_J", "C_BEQZ",
+ "C_BNEZ", "C_SLLI", "C_LWSP", "C_LDSP",
+ "C_SWSP", "C_SDSP", "C_JR", "C_JALR",
+ "C_MV", "C_ADD",
+);
+
+# Extensions supported currently
+our @supported_riscv_exts = (
+ "Ext_M", "Ext_A", "Ext_F", "Ext_D", "Ext_Zca", "Ext_Zcf",
+ "Ext_Zcd",
+);
+
+sub ordered_hash {
+ my @kv = @_;
+ my %h;
+ tie %h, 'Tie::IxHash';
+ %h = @kv;
+ return \%h;
+}
+
+our %ARGS_PER_SUBSET = %{
+ ordered_hash(
+
+ UTYPE => ordered_hash(
+ imm => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr imm = d->read(args[1], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ ),
+
+ BTYPE => ordered_hash(
+ imm => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr imm = d->read(args[2], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[1];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[0];\n", 2 );
+ },
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ ),
+
+ ITYPE => ordered_hash(
+ imm => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr imm = d->read(args[2], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ ),
+
+ JAL => ordered_hash(
+ imm => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr imm = d->read(args[1], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ ),
+
+ JALR => ordered_hash(
+ imm => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr imm = d->read(args[2], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rd = args[0];\n", 2 );
+ },
+ },
+ ),
+
+ SHIFTIOP => ordered_hash(
+ shamt => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr shamt = d->read(args[2], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ ),
+
+ RTYPE => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ ),
+
+ LOAD => ordered_hash(
+ imm => { init_code => sub { } },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ is_unsigned => {
+ init_code => sub { print_indent( "int is_unsigned;\n", 2 ); },
+ need_number => 1,
+ },
+ width => {
+ init_code => sub {
+ print_indent( "size_t width;\n", 2 );
+ print_load_init_code(2);
+ },
+ need_number => 1,
+ },
+ ),
+
+ STORE => ordered_hash(
+ imm => { init_code => sub { } },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[0];\n", 2 );
+ },
+ },
+ width => {
+ init_code => sub {
+ print_indent( "size_t width;\n", 2 );
+ print_store_init_code(2);
+ },
+ need_number => 1,
+ },
+ ),
+
+ LOADRES => ordered_hash(
+ aq => { init_code => sub { } },
+ rl => { init_code => sub { } },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ width => {
+ init_code => sub {
+ print_indent( "size_t width = lrsc_width_str(insn);\n", 2 );
+ },
+ need_number => 1,
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ ),
+
+ STORECON => ordered_hash(
+ aq => { init_code => sub { } },
+ rl => { init_code => sub { } },
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ width => {
+ init_code => sub {
+ print_indent( "size_t width = lrsc_width_str(insn);\n", 2 );
+ },
+ need_number => 1,
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ ),
+
+ ADDIW => ordered_hash(
+ imm => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr imm = d->read(args[2], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ ),
+
+ RTYPEW => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ ),
+
+ SHIFTIWOP => ordered_hash(
+ shamt => {
+ init_code => sub {
+ print_indent( "BaseSemantics::SValuePtr shamt = d->read(args[2], @{[XLEN]}, 0);\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ ),
+
+ AMO => ordered_hash(
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ aq => { init_code => sub { } },
+ rl => { init_code => sub { } },
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[1];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[2];\n", 2 );
+ },
+ },
+ width => {
+ init_code => sub {
+ print_indent( "size_t width = lrsc_width_str(insn);\n", 2 );
+ },
+ need_number => 1,
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ ),
+
+ MUL => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ op => {
+ init_code => sub {
+ print_indent(
+ "enum Riscv64InstructionKind op = insn->get_kind();\n",
+ 2
+ );
+ },
+ },
+ mul_op_signed_rs1 => {
+ init_code =>
+ sub { print_indent( "bool mul_op_signed_rs1;\n", 2 ); },
+ need_number => 1,
+ },
+ mul_op_signed_rs2 => {
+ init_code =>
+ sub { print_indent( "bool mul_op_signed_rs2;\n", 2 ); },
+ need_number => 1,
+ },
+ mul_op_high => {
+ init_code => sub {
+ print_indent( "bool mul_op_high;\n", 2 );
+ print_mul_init_code(2);
+ },
+ need_number => 1,
+ },
+ ),
+
+ DIV => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ is_unsigned => {
+ init_code => sub {
+ print_indent( "bool is_unsigned;\n", 2 );
+ print_div_init_code(2);
+ },
+ need_number => 1,
+ },
+ ),
+
+ REM => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ is_unsigned => {
+ init_code => sub {
+ print_indent( "bool is_unsigned;\n", 2 );
+ print_rem_init_code(2);
+ },
+ need_number => 1,
+ },
+ ),
+
+ MULW => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ ),
+
+ DIVW => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ is_unsigned => {
+ init_code => sub {
+ print_indent( "bool is_unsigned;\n", 2 );
+ print_div_init_code(2);
+ },
+ need_number => 1,
+ },
+ ),
+
+ REMW => ordered_hash(
+ rs2 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs2 = args[2];\n", 2 );
+ },
+ },
+ rs1 => {
+ init_code => sub {
+ print_indent( "SgAsmExpression *rs1 = args[1];\n", 2 );
+ },
+ },
+ rd => {
+ init_code =>
+ sub { print_indent( "SgAsmExpression *rd = args[0];\n", 2 ); }
+ ,
+ },
+ is_unsigned => {
+ init_code => sub {
+ print_indent( "bool is_unsigned;\n", 2 );
+ print_rem_init_code(2);
+ },
+ need_number => 1,
+ },
+ ),
+
+ )
+};
+
+our %GLOBAL_VARS = (
+ xlen => {
+ value => 64
+ },
+ xlen_bytes => {
+ value => 8
+ },
+ log2_xlen => {
+ value => 6
+ },
+);
+
+# Capstone C-Extension index to Sail C-Extension index
+use constant {
+ CS_SAIL_IDX => 'index',
+ CS_SAIL_FIXED => 'fixed',
+ REG_ZERO => 0,
+ REG_RA => 1,
+ REG_SP => 2,
+};
+
+# Compressed instruction index to base instruction index
+# -1 means that the instruction is mapped to a single instruction group
+our %C_INSN_NEW_INSN = (
+ C_NOP => -1,
+ C_ADDI4SPN => 3,
+ C_LW => -1,
+ C_LD => -1,
+ C_SW => -1,
+ C_SD => -1,
+ C_ADDI => 3,
+ C_JAL => -1,
+ C_ADDIW => -1,
+ C_LI => 3,
+ C_ADDI16SP => 3,
+ C_LUI => 2,
+ C_SRLI => 3,
+ C_SRAI => 3,
+ C_ANDI => 3,
+ C_SUB => 3,
+ C_XOR => 3,
+ C_OR => 3,
+ C_AND => 3,
+ C_SUBW => 3,
+ C_ADDW => 3,
+ C_J => -1,
+ C_BEQZ => 3,
+ C_BNEZ => 3,
+ C_SLLI => 3,
+ C_LWSP => -1,
+ C_LDSP => -1,
+ C_SWSP => -1,
+ C_SDSP => -1,
+ C_JR => -1,
+ C_JALR => -1,
+ C_MV => 3,
+ C_ADD => 3,
+);
+
+1;
diff --git a/json-to-rose/PrintROSE.pm b/json-to-rose/PrintROSE.pm
new file mode 100644
index 0000000..3178220
--- /dev/null
+++ b/json-to-rose/PrintROSE.pm
@@ -0,0 +1,667 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+package PrintROSE;
+
+use strict;
+use warnings;
+
+use Exporter 'import';
+use lib "$FindBin::Bin";
+use ASTBuild;
+use ASTNode;
+use ASTAdjust;
+use ParserCommon qw(INDENT XLEN);
+
+use Data::Dumper;
+
+our @EXPORT_OK = qw(
+ print_indent
+ print_load_init_code
+ print_store_init_code
+ print_mul_init_code
+ print_div_init_code
+ print_rem_init_code
+);
+
+sub print_rose_code {
+ my ( $self, $body, $args, $curr_set ) = @_;
+
+ # Parse function body
+ # Generate ROSE C++ code
+
+ my %lookup = ();
+ my $body_node = ASTBuild->parse_ast( $body, $curr_set );
+ ASTAdjust::change_field_to_id( $body_node, $curr_set, {} );
+ ASTAdjust::change_op_var( $body_node, $curr_set, {} );
+ ASTAdjust::adjust_bitvec_assign( $body_node, $curr_set );
+ ASTAdjust::adjust_match( $body_node, $curr_set );
+ ASTAdjust::adjust_const_fold( $body_node, $curr_set );
+ ASTAdjust::adjust_signedness( $body_node, $curr_set );
+ ASTAdjust::adjust_mul_div_rem_signedness( $body_node, $curr_set, {} );
+ ASTAdjust::adjust_func_operands( $body_node, $curr_set );
+ ASTAdjust::adjust_next_node( $body_node, $curr_set );
+
+ print_indent( "struct IP_$curr_set : P {\n", 0 );
+ print_indent( "void p(D d, Ops ops, I insn, A args, B raw) {\n", 1 );
+
+ if ( my $vars = $ParserConfig::ARGS_PER_SUBSET{$curr_set} ) {
+ for my $var ( keys %$vars ) {
+ $vars->{$var}{init_code}();
+ $lookup{$var} = { "is_arg_var" => 1 };
+ }
+ }
+ else {
+ die "Error: $curr_set does not contain ROSE args to SAIL args mapping. Consider adding the mapping to ParserConfig.pm.";
+ }
+ print("\n");
+
+ print_all_declare( $body_node, $curr_set, \%lookup );
+ print_indent( "", 2 );
+ print_ast( $body_node, $curr_set, \%lookup, 2 );
+ print(";\n");
+ print_indent( "return;\n", 2 );
+ print_indent( "}\n", 1 );
+ print_indent( "};\n\n", 0 );
+}
+
+sub print_func {
+ my ( $func_name, $func_args, $curr_set, $lookup, $indent_lvl ) = @_;
+ print($func_name);
+ print("(");
+ for my $i ( 0 .. $#$func_args ) {
+ print_ast( $func_args->[$i], $curr_set, $lookup, $indent_lvl );
+ print ", " if $i != $#$func_args;
+ }
+ print(")");
+}
+
+sub print_indent {
+ my ( $code, $indent_lvl ) = @_;
+ print( " " x ( INDENT * $indent_lvl ) . $code );
+}
+
+sub print_declare {
+ my ( $var_name, $indent_lvl ) = @_;
+ print_indent( "BaseSemantics::SValuePtr $var_name;\n", $indent_lvl );
+}
+
+sub print_declare_if_undeclared {
+ my ( $var_name, $lookup, $indent_lvl ) = @_;
+
+ if ( !exists $lookup->{$var_name} ) {
+ print_declare( $var_name, $indent_lvl );
+ }
+}
+
+sub print_assign {
+ my ( $lhs_node, $rhs_node, $curr_set, $lookup, $indent_lvl ) = @_;
+ my ( @lhs_nodes, @rhs_nodes );
+ if ( $lhs_node->is_tuple_node() && $rhs_node->is_tuple_node() ) {
+ @lhs_nodes = @{ $lhs_node->get_children() };
+ @rhs_nodes = @{ $rhs_node->get_children() };
+ }
+ else {
+ @lhs_nodes = ($lhs_node);
+ @rhs_nodes = ($rhs_node);
+ }
+ for my $i ( 0 .. $#lhs_nodes ) {
+ my $var_node = $lhs_nodes[$i];
+ my $value_node = $rhs_nodes[$i];
+ my $var = $var_node->get_value();
+ print("$var = ");
+ print_ast( $value_node, $curr_set, $lookup, $indent_lvl );
+ $lookup->{$var} = { "var" => $var_node, "ref" => $value_node };
+ if ($i != $#lhs_nodes) {
+ print(";\n");
+ print_indent("", $indent_lvl);
+ }
+ }
+}
+
+sub print_switch {
+ my ( $match_node, $match_exprs, $curr_set, $lookup, $indent_lvl ) = @_;
+ my $match_var = $match_node->get_value();
+ print("switch (");
+ print_ast( $match_node, $curr_set, $lookup, $indent_lvl );
+ print(") {\n");
+ for my $i ( 0 .. $#$match_exprs ) {
+ my $child_node = $match_exprs->[$i];
+ if ( $child_node->is_match_op_node() ) {
+ my $key_node = $child_node->get_value();
+ my $value_node = $child_node->get_nth_child(0);
+ if ( $match_node->is_var_node()
+ && $match_node->get_value() eq "op" )
+ {
+ # change op to riscv64_rose_..._op
+ my $key = $key_node->get_value();
+ if ( $curr_set eq "AMO" ) {
+
+ # In Capstone, AQ and RL are treated as separate instructions
+ # Thus, we need to add all these cases back
+ print_indent( "case ${key}_w:\n", $indent_lvl + 1 );
+ print_indent( "case ${key}_w_aq:\n", $indent_lvl + 1 );
+ print_indent( "case ${key}_w_aq_rl:\n", $indent_lvl + 1 );
+ print_indent( "case ${key}_w_rl:\n", $indent_lvl + 1 );
+ print_indent( "case ${key}_d:\n", $indent_lvl + 1 );
+ print_indent( "case ${key}_d_aq:\n", $indent_lvl + 1 );
+ print_indent( "case ${key}_d_aq_rl:\n", $indent_lvl + 1 );
+ print_indent( "case ${key}_d_rl: {\n", $indent_lvl + 1 );
+ }
+ else {
+ print_indent( "case $key: {\n", $indent_lvl + 1 );
+ }
+ }
+ else {
+ print_indent( "case ", $indent_lvl + 1 );
+ print_ast( $key_node, $curr_set, $lookup, $indent_lvl );
+ print(": {\n");
+ }
+ if ( $value_node->is_block_node() ) {
+ print_ast( $value_node, $curr_set, $lookup, $indent_lvl + 2 );
+ print("\n");
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl + 1 );
+ }
+ else {
+ print_indent( "", $indent_lvl + 2 );
+ print_ast( $value_node, $curr_set, $lookup, $indent_lvl + 2 );
+ print(";\n");
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl + 1 );
+ }
+ }
+ }
+ print_indent( "default: {\n", $indent_lvl + 1 );
+ print_indent( "assert(0);\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl + 1 );
+ print_indent( "}", $indent_lvl );
+}
+
+sub build_expr {
+ my ( $curr_node, $parent_prec, $is_right ) = @_;
+ my %CPP_OP_PREC = (
+ ASTType::ROSE_OP_BOR => 3,
+ ASTType::ROSE_OP_BXOR => 4,
+ ASTType::ROSE_OP_BAND => 5,
+ ASTType::ROSE_OP_SHIFT_LEFT => 8,
+ ASTType::ROSE_OP_SHIFT_RIGHT => 8,
+ ASTType::ROSE_OP_ADD => 9,
+ ASTType::ROSE_OP_SUB => 9,
+ ASTType::ROSE_OP_SMUL => 10,
+ ASTType::ROSE_OP_SDIV => 10,
+ ASTType::ROSE_OP_SREM => 10,
+ ASTType::ROSE_OP_BNOT => 11,
+ );
+ my %CPP_OP_STR = (
+ ASTType::ROSE_OP_BOR => "|",
+ ASTType::ROSE_OP_BXOR => "^",
+ ASTType::ROSE_OP_BAND => "&",
+ ASTType::ROSE_OP_SHIFT_LEFT => "<<",
+ ASTType::ROSE_OP_SHIFT_RIGHT => ">>",
+ ASTType::ROSE_OP_ADD => "+",
+ ASTType::ROSE_OP_SUB => "-",
+ ASTType::ROSE_OP_SMUL => "*",
+ ASTType::ROSE_OP_SDIV => "/",
+ ASTType::ROSE_OP_SREM => "%",
+ ASTType::ROSE_OP_BNOT => "~",
+ );
+ my %NON_ASSOC = map { $_ => 1 } qw(- / % << >>);
+ if ( !$curr_node->is_func_node() ) {
+ return $curr_node->get_value();
+ }
+ else {
+ my $const_fold_result = ASTAdjust::try_const_fold($curr_node);
+ if ( $const_fold_result->{ok} ) {
+ return $const_fold_result->{value};
+ }
+ my $func_op = $curr_node->get_value();
+ my $func_args = $curr_node->get_children();
+ my $prec = $CPP_OP_PREC{$func_op};
+
+ # Unary operator
+ if ( scalar @$func_args == 1 ) {
+ my $child_str = build_expr( $func_args->[0], $prec, 0 );
+ my $need_paren = $prec < $parent_prec;
+ return $CPP_OP_STR{$func_op}
+ . ( $need_paren ? "($child_str)" : $child_str );
+ }
+
+ # Binary operator
+ elsif ( scalar @$func_args == 2 ) {
+ my $lhs_str = build_expr( $func_args->[0], $prec, 0 );
+ my $rhs_str = build_expr( $func_args->[1], $prec, 1 );
+ my $need_paren = ( $prec < $parent_prec )
+ || ( $is_right && $NON_ASSOC{$func_op} && $prec == $parent_prec );
+
+ my $child_str = "$lhs_str $CPP_OP_STR{$func_op} $rhs_str";
+ return $need_paren ? "($child_str)" : $child_str;
+ }
+ }
+}
+
+sub print_raw {
+ my ( $curr_node, $parent_prec, $is_right ) = @_;
+ print( build_expr( $curr_node, 0, 0 ) );
+}
+
+sub print_all_declare {
+ my ( $node, $curr_set, $lookup ) = @_;
+ for my $child ( @{ $node->get_children() } ) {
+ print_all_declare( $child, $curr_set, $lookup );
+ }
+ if ( $node->is_assign_node() ) {
+ my $var_node = $node->get_value();
+ my $value_node = $node->get_nth_child(0);
+ my $var_name = $var_node->get_value();
+ print_declare_if_undeclared( $var_name, $lookup, 2 );
+ $lookup->{$var_name} = { "var" => $var_node, "ref" => $value_node };
+ }
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ print_all_declare( $sibling, $curr_set, $lookup );
+ }
+}
+
+sub print_ast {
+ my ( $node, $curr_set, $lookup, $indent_lvl ) = @_;
+ if ( $node->is_null_node() ) {
+ return;
+ }
+ elsif ( $node->is_id_node() ) {
+ print( $node->get_value() );
+ }
+ elsif ( $node->is_num_node() ) {
+ my $value = $node->get_value();
+ print("ops->number_(@{[XLEN]}, $value)");
+ }
+ elsif ( $node->is_bool_node() ) {
+ my $value = $node->get_value();
+ print("ops->boolean_($value)");
+ }
+ elsif ( $node->is_var_node() ) {
+ my $value = $node->get_value();
+
+ # For plain C++ variables, we need to wrap it in ops->number_() to change it into SValuePtr
+ if (
+ (
+ exists $ParserConfig::ARGS_PER_SUBSET{$curr_set}->{$value}
+ && $ParserConfig::ARGS_PER_SUBSET{$curr_set}
+ ->{$value}{need_number}
+ )
+ || ( exists $lookup->{$value}
+ && exists $lookup->{$value}{is_cpp_var}
+ && $lookup->{$value}{is_cpp_var} )
+ )
+ {
+ print("ops->number_(@{[XLEN]}, $value)");
+ }
+ else {
+ print($value);
+ }
+ }
+ elsif ( $node->is_func_node() ) {
+ my $func_op = $node->get_value();
+ my $func_args = $node->get_children();
+ my %func_dispatch = (
+ ASTType::ROSE_OP_ADD => 'ops->add',
+ ASTType::ROSE_OP_BAND => 'ops->and_',
+ ASTType::ROSE_OP_BNOT => 'ops->invert',
+ ASTType::ROSE_OP_BOR => 'ops->or_',
+ ASTType::ROSE_OP_BXOR => 'ops->xor_',
+ ASTType::ROSE_OP_BOOL => 'ops->boolean_',
+ ASTType::ROSE_OP_BREV8 => 'd->Brev8',
+ ASTType::ROSE_OP_CLZ => 'd->CountLeadingZeroBits',
+ ASTType::ROSE_OP_CMUL => 'd->CarrylessMultiply',
+ ASTType::ROSE_OP_CMULR => 'd->CarrylessMultiplyReverse',
+ ASTType::ROSE_OP_CONCAT => 'ops->concat',
+ ASTType::ROSE_OP_CTZ => 'd->CountTrailingZeroBits',
+ ASTType::ROSE_OP_EADDR => 'd->effectiveAddress',
+ ASTType::ROSE_OP_EXTRACT => 'ops->extract',
+ ASTType::ROSE_OP_ITE => 'ops->ite',
+ ASTType::ROSE_OP_EQ => 'ops->isEqual',
+ ASTType::ROSE_OP_NEQ => 'ops->isNotEqual',
+ ASTType::ROSE_OP_SIGNED_GEQ => 'ops->isSignedGreaterThanOrEqual',
+ ASTType::ROSE_OP_SIGNED_GT => 'ops->isSignedGreaterThan',
+ ASTType::ROSE_OP_SIGNED_LEQ => 'ops->isSignedLessThanOrEqual',
+ ASTType::ROSE_OP_SIGNED_LT => 'ops->isSignedLessThan',
+ ASTType::ROSE_OP_UNSIGNED_GEQ => 'ops->isUnsignedGreaterThanOrEqual',
+ ASTType::ROSE_OP_UNSIGNED_GT => 'ops->isUnsignedGreaterThan',
+ ASTType::ROSE_OP_UNSIGNED_LEQ => 'ops->isUnsignedLessThanOrEqual',
+ ASTType::ROSE_OP_UNSIGNED_LT => 'ops->isUnsignedLessThan',
+ ASTType::ROSE_OP_IS_ZERO => 'd->CountLeadingZeroBits',
+ ASTType::ROSE_OP_READ_MEM => 'd->readMemory',
+ ASTType::ROSE_OP_WRITE_MEM => 'd->writeMemory',
+ ASTType::ROSE_OP_NEG => 'ops->negate',
+ ASTType::ROSE_OP_NUMBER => 'ops->number_',
+ ASTType::ROSE_OP_POPC => 'd->PopCount',
+ ASTType::ROSE_OP_READ_IMM => 'd->read',
+ ASTType::ROSE_OP_READ_REG => 'd->read',
+ ASTType::ROSE_OP_REV8 => 'd->Rev8',
+ ASTType::ROSE_OP_ROTATE_LEFT => 'ops->rotateLeft',
+ ASTType::ROSE_OP_ROTATE_RIGHT => 'ops->rotateRight',
+ ASTType::ROSE_OP_SDIV => 'ops->signedDivide',
+ ASTType::ROSE_OP_SHIFT_LEFT => 'ops->shiftLeft',
+ ASTType::ROSE_OP_SHIFT_RIGHT_ARITH => 'ops->shiftRightArithmetic',
+ ASTType::ROSE_OP_SHIFT_RIGHT => 'ops->shiftRight',
+ ASTType::ROSE_OP_SIGN_EXTEND => 'd->SignExtend',
+ ASTType::ROSE_OP_SMUL => 'ops->signedMultiply',
+ ASTType::ROSE_OP_SREM => 'ops->signedModulo',
+ ASTType::ROSE_OP_SUB => 'ops->subtract',
+ ASTType::ROSE_OP_SUMUL => 'd->signedUnsignedMultiply',
+ ASTType::ROSE_OP_UDIV => 'ops->unsignedDivide',
+ ASTType::ROSE_OP_UMUL => 'ops->unsignedMultiply',
+ ASTType::ROSE_OP_UREM => 'ops->unsignedModulo',
+ ASTType::ROSE_OP_WRITE_REG => 'd->write',
+ ASTType::ROSE_OP_ZERO_EXTEND => 'd->ZeroExtend',
+ );
+
+ if ( my $func_name = $func_dispatch{$func_op} ) {
+ print_func( $func_name, $func_args, $curr_set, $lookup,
+ $indent_lvl );
+ }
+
+ # Handle special functions
+ # Print the function all at once
+ elsif ( $node->is_op(ASTType::ROSE_OP_GET_PC) ) {
+ print("PC");
+ }
+ elsif ( $node->is_op(ASTType::ROSE_OP_GET_NEXT_PC) ) {
+ print("ops->add(PC, ops->number_(@{[XLEN]}, insn->get_size()))");
+ }
+ elsif ( $node->is_op(ASTType::ROSE_OP_JUMP) ) {
+ print_func( "d->BranchTo", $func_args, $curr_set, $lookup,
+ $indent_lvl );
+ }
+ }
+ elsif ( $node->is_block_node() ) {
+ my $children_node = $node->get_children();
+ for my $i ( 0 .. $#$children_node ) {
+ my $child_node = $children_node->[$i];
+ print_ast( $child_node, $curr_set, $lookup, $indent_lvl );
+ }
+ }
+ elsif ( $node->is_match_node() ) {
+ my $key = $node->get_value();
+ my $match_cases = $node->get_children();
+ print_switch( $key, $match_cases, $curr_set, $lookup, $indent_lvl );
+ }
+ elsif ( $node->is_assign_node() ) {
+ my $id_node = $node->get_value();
+ my $children_node = $node->get_children();
+
+ print_assign( $id_node, $children_node->[0], $curr_set, $lookup,
+ $indent_lvl );
+ }
+ elsif ( $node->is_hex_node() ) {
+ my $hex_str = $node->get_value();
+ my $hex_value = "0x$hex_str";
+ my $len = length($hex_str) * 4;
+ print("ops->number_($len, $hex_value)");
+ }
+ elsif ( $node->is_bin_node() ) {
+ my $bin_str = $node->get_value();
+ my $hex_value = sprintf( "%x", oct("0b$bin_str") );
+ my $len = length($bin_str);
+ print("ops->number_($len, $hex_value)");
+ }
+ elsif ( $node->is_return_node() ) {
+ print("return;\n");
+ }
+ elsif ( $node->is_convert_node() ) {
+ my $conv_insn = $node->get_value()->{insn};
+ my $conv_type = $node->get_value()->{type};
+ if ( $conv_insn =~ /^LOAD$/ ) {
+ my $is_unsigned =
+ ( $ArgsXlat::conv_args_tuple->[0]->[3]->{E_lit}->[0] ) eq
+ "L_true";
+ my $width_bytes =
+ $ArgsXlat::conv_args_tuple->[0]->[4]->{E_lit}->[0]->{L_num};
+ if ( !$is_unsigned ) {
+ if ( $width_bytes eq "1" ) {
+ $conv_insn = "LB";
+ }
+ elsif ( $width_bytes eq "2" ) {
+ $conv_insn = "LH";
+ }
+ elsif ( $width_bytes eq "4" ) {
+ $conv_insn = "LW";
+ }
+ elsif ( $width_bytes eq "8" ) {
+ $conv_insn = "LD";
+ }
+ }
+ else {
+ if ( $width_bytes eq "1" ) {
+ $conv_insn = "LBU";
+ }
+ elsif ( $width_bytes eq "2" ) {
+ $conv_insn = "LHU";
+ }
+ elsif ( $width_bytes eq "4" ) {
+ $conv_insn = "LWU";
+ }
+ }
+ }
+ elsif ( $conv_insn =~ /STORE/ ) {
+ my $width_bytes =
+ $ParserConfig::conv_args_tuple->[0]->[3]->{E_lit}->[0]->{L_num};
+ if ( $width_bytes eq "1" ) {
+ $conv_insn = "SB";
+ }
+ elsif ( $width_bytes eq "2" ) {
+ $conv_insn = "SH";
+ }
+ elsif ( $width_bytes eq "4" ) {
+ $conv_insn = "SW";
+ }
+ elsif ( $width_bytes eq "8" ) {
+ $conv_insn = "SD";
+ }
+ }
+ my $orig_insn_mnemonic = "\"$conv_insn\"";
+ my $orig_rose_insn = "rose_riscv64_op_$conv_insn";
+
+ print( "SgAsmRiscv64Instruction new_insn{0, $orig_insn_mnemonic, $orig_rose_insn};\n" );
+ print_indent( "auto conv = Riscv64::IP_$conv_type\{\};\n", 2 );
+ print_indent( "conv.p(d, ops, &new_insn, new_args, raw)", 2 );
+ }
+ elsif ( $node->is_for_node() ) {
+ my $i = $node->get_value()->get_value();
+ $lookup->{$i} = { is_cpp_var => 1 };
+ my $ord = $node->get_attribute("ord");
+ my ( $init_node, $fini_node, $step_node, $block_node ) =
+ @{ $node->get_children() };
+ if ( $ord eq "Ord_inc" ) {
+ print("for ($i = ");
+ print_raw($init_node);
+ print("; $i <= ");
+ print_raw($fini_node);
+ print("; $i += ");
+ print_raw($step_node);
+ print(") {\n");
+ print_indent( "", $indent_lvl + 1 );
+ print_ast( $block_node, $curr_set, $lookup, $indent_lvl + 1 );
+ print(";\n");
+ print_indent( "};\n", $indent_lvl );
+ print_indent( "", $indent_lvl );
+ }
+ elsif ( $ord eq "Ord_dec" ) {
+ print("for ($i = ");
+ print_raw($init_node);
+ print("; $i >= ");
+ print_raw($fini_node);
+ print("; $i -= ");
+ print_raw($step_node);
+ print(") {\n");
+ print_indent( "", $indent_lvl + 1 );
+ print_ast( $block_node, $curr_set, $lookup, $indent_lvl + 1 );
+ print(";\n");
+ print_indent( "};\n", $indent_lvl );
+ print_indent( "", $indent_lvl );
+ }
+ }
+ elsif ( $node->is_while_node() ) {
+ my ( $cond_node, $block_node ) = @{ $node->get_children() };
+ print("while (");
+ print_ast( $cond_node, $curr_set, $lookup, $indent_lvl );
+ print(") {\n");
+ print_indent( "", $indent_lvl + 1 );
+ print_ast( $block_node, $curr_set, $lookup, $indent_lvl + 1 );
+ print(";\n");
+ print_indent( "}\n", $indent_lvl );
+
+ }
+ elsif ( $node->is_field_node() ) {
+ print( $node->get_value()->{var} );
+ print("_");
+ print( $node->get_value()->{field} );
+ }
+
+ # Finally, handle all sibling nodes
+ for my $sibling ( @{ $node->get_siblings() } ) {
+ print(";\n");
+ print_indent( "", $indent_lvl );
+ print_ast( $sibling, $curr_set, $lookup, $indent_lvl );
+ }
+}
+
+sub print_load_init_code {
+ my ($indent_lvl) = @_;
+ print_indent( "switch (insn->get_kind()) {\n", $indent_lvl );
+ print_indent( "case rose_riscv64_op_lb:\n", $indent_lvl + 1 );
+ print_indent( "width = 1;\n", $indent_lvl + 2 );
+ print_indent( "is_unsigned = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_lbu:\n", $indent_lvl + 1 );
+ print_indent( "width = 1;\n", $indent_lvl + 2 );
+ print_indent( "is_unsigned = 0;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_lh:\n", $indent_lvl + 1 );
+ print_indent( "width = 2;\n", $indent_lvl + 2 );
+ print_indent( "is_unsigned = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_lhu:\n", $indent_lvl + 1 );
+ print_indent( "width = 2;\n", $indent_lvl + 2 );
+ print_indent( "is_unsigned = 0;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_lw:\n", $indent_lvl + 1 );
+ print_indent( "width = 4;\n", $indent_lvl + 2 );
+ print_indent( "is_unsigned = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_lwu:\n", $indent_lvl + 1 );
+ print_indent( "width = 4;\n", $indent_lvl + 2 );
+ print_indent( "is_unsigned = 0;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_ld:\n", $indent_lvl + 1 );
+ print_indent( "width = 8;\n", $indent_lvl + 2 );
+ print_indent( "is_unsigned = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "default:\n", $indent_lvl + 1 );
+ print_indent( "assert(0);\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl );
+}
+
+sub print_store_init_code {
+ my ($indent_lvl) = @_;
+ print_indent( "switch (insn->get_kind()) {\n", $indent_lvl );
+ print_indent( "case rose_riscv64_op_sb:\n", $indent_lvl + 1 );
+ print_indent( "width = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_sh:\n", $indent_lvl + 1 );
+ print_indent( "width = 2;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_sw:\n", $indent_lvl + 1 );
+ print_indent( "width = 4;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_sd:\n", $indent_lvl + 1 );
+ print_indent( "width = 8;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "default:\n", $indent_lvl + 1 );
+ print_indent( "assert(0);\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl );
+}
+
+sub print_mul_init_code {
+ my ($indent_lvl) = @_;
+ print_indent( "switch (insn->get_kind()) {\n", $indent_lvl );
+ print_indent( "case rose_riscv64_op_mul:\n", $indent_lvl + 1 );
+ print_indent( "mul_op_signed_rs1 = 1;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_signed_rs2 = 1;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_high = 0;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_mulh:\n", $indent_lvl + 1 );
+ print_indent( "mul_op_signed_rs1 = 1;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_signed_rs2 = 1;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_high = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_mulhsu:\n", $indent_lvl + 1 );
+ print_indent( "mul_op_signed_rs1 = 1;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_signed_rs2 = 0;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_high = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_mulhu:\n", $indent_lvl + 1 );
+ print_indent( "mul_op_signed_rs1 = 0;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_signed_rs2 = 0;\n", $indent_lvl + 2 );
+ print_indent( "mul_op_high = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "default:\n", $indent_lvl + 1 );
+ print_indent( "assert(0);\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl );
+}
+
+sub print_div_init_code {
+ my ($indent_lvl) = @_;
+ print_indent( "switch (insn->get_kind()) {\n", $indent_lvl );
+ print_indent( "case rose_riscv64_op_div:\n", $indent_lvl + 1 );
+ print_indent( "is_unsigned = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_divu:\n", $indent_lvl + 1 );
+ print_indent( "is_unsigned = 0;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "default:\n", $indent_lvl + 1 );
+ print_indent( "assert(0);\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl );
+}
+
+sub print_rem_init_code {
+ my ($indent_lvl) = @_;
+ print_indent( "switch (insn->get_kind()) {\n", $indent_lvl );
+ print_indent( "case rose_riscv64_op_rem:\n", $indent_lvl + 1 );
+ print_indent( "is_unsigned = 1;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "case rose_riscv64_op_remu:\n", $indent_lvl + 1 );
+ print_indent( "is_unsigned = 0;\n", $indent_lvl + 2 );
+ print_indent( "break;\n", $indent_lvl + 2 );
+ print_indent( "default:\n", $indent_lvl + 1 );
+ print_indent( "assert(0);\n", $indent_lvl + 2 );
+ print_indent( "}\n", $indent_lvl );
+}
+
+1;
diff --git a/json-to-rose/config/rv64gc.json b/json-to-rose/config/rv64gc.json
new file mode 100644
index 0000000..538f435
--- /dev/null
+++ b/json-to-rose/config/rv64gc.json
@@ -0,0 +1,373 @@
+{
+ "base": {
+ "xlen": 64,
+ "E": false,
+ "writable_misa": true,
+ "writable_fiom": true,
+ "writable_hpm_counters": {
+ "len": 32,
+ "value": "0xFFFF_FFFF"
+ },
+ "xtval_nonzero": {
+ "illegal_instruction": true,
+ "breakpoint": true,
+ "load_address_misaligned": true,
+ "load_access_fault": true,
+ "samo_address_misaligned": true,
+ "samo_access_fault": true,
+ "fetch_address_misaligned": true,
+ "fetch_access_fault": true
+ }
+ },
+ "memory": {
+ "pmp": {
+ "grain": 0,
+ "count": 16,
+ "tor_supported": true,
+ "na4_supported": true,
+ "napot_supported": true
+ },
+ "misaligned": {
+ "supported": true,
+ "byte_by_byte": false,
+ "order_decreasing": false,
+ "allowed_within_exp": 0
+ },
+ "translation": {
+ "dirty_update": false
+ },
+ "dtb_address": {
+ "len": 64,
+ "value": "0x1000"
+ },
+ "regions": [
+ {
+ "base": {
+ "len": 64,
+ "value": "0x1000"
+ },
+ "size": {
+ "len": 64,
+ "value": "0x1000"
+ },
+ "attributes": {
+ "cacheable": true,
+ "coherent": true,
+ "executable": false,
+ "readable": true,
+ "writable": false,
+ "read_idempotent": true,
+ "write_idempotent": true,
+ "misaligned_fault": "NoFault",
+ "reservability": "RsrvNone",
+ "supports_cbo_zero": false
+ },
+ "include_in_device_tree": false
+ },
+ {
+ "base": {
+ "len": 64,
+ "value": "0x2000000"
+ },
+ "size": {
+ "len": 64,
+ "value": "0x2000000"
+ },
+ "attributes": {
+ "cacheable": false,
+ "coherent": true,
+ "executable": false,
+ "readable": true,
+ "writable": true,
+ "read_idempotent": false,
+ "write_idempotent": false,
+ "misaligned_fault": "AlignmentFault",
+ "reservability": "RsrvNone",
+ "supports_cbo_zero": false
+ },
+ "include_in_device_tree": false
+ },
+ {
+ "base": {
+ "len": 64,
+ "value": "0x80000000"
+ },
+ "size": {
+ "len": 64,
+ "value": "0x80000000"
+ },
+ "attributes": {
+ "cacheable": true,
+ "coherent": true,
+ "executable": true,
+ "readable": true,
+ "writable": true,
+ "read_idempotent": true,
+ "write_idempotent": true,
+ "misaligned_fault": "NoFault",
+ "reservability": "RsrvEventual",
+ "supports_cbo_zero": true
+ },
+ "include_in_device_tree": true
+ }
+ ]
+ },
+ "platform": {
+ "vendorid": 0,
+ "archid": 0,
+ "impid": 0,
+ "hartid": 0,
+ "cache_block_size_exp": 6,
+ "clint": {
+ "base": 33554432,
+ "size": 786432
+ },
+ "clock_frequency": 1000000000,
+ "instructions_per_tick": 2,
+ "wfi_is_nop": true
+ },
+ "extensions": {
+ "M": {
+ "supported": true
+ },
+ "A": {
+ "supported": true
+ },
+ "F": {
+ "supported": true
+ },
+ "D": {
+ "supported": true
+ },
+ "Zca": {
+ "supported": true
+ },
+ "V": {
+ "support_level": "Disabled",
+ "vlen_exp": 7,
+ "elen_exp": 5,
+ "vl_use_ceil": false
+ },
+ "B": {
+ "supported": false
+ },
+ "S": {
+ "supported": false
+ },
+ "U": {
+ "supported": false
+ },
+ "Zicbom": {
+ "supported": false
+ },
+ "Zicbop": {
+ "supported": false
+ },
+ "Zicboz": {
+ "supported": false
+ },
+ "Zicfilp": {
+ "supported": false
+ },
+ "Zicond": {
+ "supported": false
+ },
+ "Zicntr": {
+ "supported": false
+ },
+ "Zicsr": {
+ "supported": false
+ },
+ "Zifencei": {
+ "supported": true
+ },
+ "Zihintntl": {
+ "supported": true
+ },
+ "Zihintpause": {
+ "supported": false
+ },
+ "Zihpm": {
+ "supported": false
+ },
+ "Zimop": {
+ "supported": false
+ },
+ "Zmmul": {
+ "supported": false
+ },
+ "Zaamo": {
+ "supported": false
+ },
+ "Zabha": {
+ "supported": false
+ },
+ "Zacas": {
+ "supported": false
+ },
+ "Zalrsc": {
+ "supported": false
+ },
+ "Zawrs": {
+ "supported": false,
+ "nto": {
+ "is_nop": false
+ },
+ "sto": {
+ "is_nop": false
+ }
+ },
+ "Zfa": {
+ "supported": false
+ },
+ "Zfbfmin": {
+ "supported": false
+ },
+ "Zfh": {
+ "supported": false
+ },
+ "Zfhmin": {
+ "supported": false
+ },
+ "Zfinx": {
+ "supported": false
+ },
+ "Zcf": {
+ "supported": false
+ },
+ "Zcd": {
+ "supported": false
+ },
+ "Zcb": {
+ "supported": false
+ },
+ "Zcmop": {
+ "supported": false
+ },
+ "Zba": {
+ "supported": false
+ },
+ "Zbb": {
+ "supported": false
+ },
+ "Zbs": {
+ "supported": false
+ },
+ "Zbc": {
+ "supported": false
+ },
+ "Zbkb": {
+ "supported": false
+ },
+ "Zbkc": {
+ "supported": false
+ },
+ "Zbkx": {
+ "supported": false
+ },
+ "Zknd": {
+ "supported": false
+ },
+ "Zkne": {
+ "supported": false
+ },
+ "Zknh": {
+ "supported": false
+ },
+ "Zkr": {
+ "supported": false,
+ "sseed_reset_value": false,
+ "useed_reset_value": false,
+ "sseed_read_only_zero": false,
+ "useed_read_only_zero": false
+ },
+ "Zksed": {
+ "supported": false
+ },
+ "Zksh": {
+ "supported": false
+ },
+ "Zkt": {
+ "supported": false
+ },
+ "Zhinx": {
+ "supported": false
+ },
+ "Zhinxmin": {
+ "supported": false
+ },
+ "Zvfbfmin": {
+ "supported": false
+ },
+ "Zvfbfwma": {
+ "supported": false
+ },
+ "Zvfh": {
+ "supported": false
+ },
+ "Zvfhmin": {
+ "supported": false
+ },
+ "Zvbb": {
+ "supported": false
+ },
+ "Zvbc": {
+ "supported": false
+ },
+ "Zvkb": {
+ "supported": false
+ },
+ "Zvkg": {
+ "supported": false
+ },
+ "Zvkned": {
+ "supported": false
+ },
+ "Zvknha": {
+ "supported": false
+ },
+ "Zvknhb": {
+ "supported": false
+ },
+ "Zvksed": {
+ "supported": false
+ },
+ "Zvksh": {
+ "supported": false
+ },
+ "Zvkt": {
+ "supported": false
+ },
+ "Sscofpmf": {
+ "supported": false
+ },
+ "Smcntrpmf": {
+ "supported": false
+ },
+ "Sstc": {
+ "supported": false
+ },
+ "Svinval": {
+ "supported": false
+ },
+ "Svrsw60t59b": {
+ "supported": false
+ },
+ "Svbare": {
+ "supported": false,
+ "sfence_vma_illegal_if_svbare_only": true
+ },
+ "Sv32": {
+ "supported": false
+ },
+ "Sv39": {
+ "supported": false
+ },
+ "Sv48": {
+ "supported": false
+ },
+ "Sv57": {
+ "supported": false
+ }
+ }
+}
diff --git a/json-to-rose/json_to_rose.pl b/json-to-rose/json_to_rose.pl
new file mode 100644
index 0000000..cb041a5
--- /dev/null
+++ b/json-to-rose/json_to_rose.pl
@@ -0,0 +1,153 @@
+# See the dyninst/COPYRIGHT file for copyright information.
+#
+# We provide the Paradyn Tools (below described as "Paradyn")
+# on an AS IS basis, and do not warrant its validity or performance.
+# We reserve the right to update, modify, or discontinue this
+# software at any time. We shall have no obligation to supply such
+# updates or modifications or any other form of support to you.
+#
+# By your use of Paradyn, you understand and agree that we (or any
+# other person or entity with proprietary rights in Paradyn) are
+# under no obligation to provide either maintenance services,
+# update services, notices of latent defects, or correction of
+# defects for Paradyn.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use FindBin;
+use Getopt::Long qw(GetOptions);
+use JSON qw(decode_json);
+use Pod::Usage;
+
+use lib "$FindBin::Bin";
+use ParserConfig;
+use PrintROSE;
+
+sub read_file {
+ my ($file) = @_;
+ open my $FH, "<", $file or die "Cannot locate file $file";
+ local $/;
+ my $content = <$FH>;
+ close $FH;
+ return $content;
+}
+
+sub load_json_ast {
+ my ($file) = @_;
+ -f $file or die "Error: JSON file '$file' not found\n";
+ my $json_str = read_file($file);
+ my $json = decode_json($json_str);
+ return $json->{"ast"} // die "Error: 'ast' field missing in JSON\n";
+}
+
+sub find_execute_for_set {
+ my ($ast, $insn_set) = @_;
+
+ foreach my $def (@$ast) {
+ next unless exists $def->{DEF_fundef};
+
+ my $functions = $def->{DEF_fundef}->{FD_function}->[2];
+ foreach my $function (@$functions) {
+ my $clause = $function->{"FCL_funcl"} or next;
+
+ my $name = $clause->[0]->{"Id"} // "";
+ next unless $name eq "execute";
+
+ my $pat_exp = $clause->[1]->{Pat_exp};
+ my ($head, $body) = @$pat_exp;
+
+ my $fun_name = $head->{P_app}[0]->{Id} // "";
+ next unless $fun_name eq $insn_set;
+
+ my $args = $head->{P_app}[1]->[0]->{P_tuple}->[0];
+ return ($body, $args);
+ }
+ }
+ die "Error: instruction set '$insn_set' not found or unsupported\n";
+}
+
+sub main {
+
+ my $insn_set;
+ my $json_file = "sail_semantics.json";
+
+ GetOptions(
+ "insn-set=s" => \$insn_set,
+ "json-file=s" => \$json_file,
+ "help" => sub { pod2usage(1) },
+ "man" => sub { pod2usage(-verbose => 2) },
+ ) or pod2usage(2);
+
+ pod2usage(2) unless $insn_set;
+
+ my $ast = load_json_ast($json_file);
+ my ($body, $args) = find_execute_for_set($ast, $insn_set);
+
+ PrintROSE->print_rose_code($body, $args, $insn_set);
+
+ exit 0;
+}
+
+main();
+
+__END__
+
+=head1 NAME
+
+json_to_rose.pl - Convert Sail semantics JSON into ROSE code
+
+=head1 SYNOPSIS
+
+json_to_rose.pl --insn-set= [--json-file=]
+
+=head1 DESCRIPTION
+
+This script reads a Sail semantics JSON file (default: F),
+searches for the C function inside the specified instruction set,
+and prints the corresponding ROSE code.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--insn-set>=I
+
+Required. The instruction set name to extract (e.g., C).
+
+=item B<--json-file>=I
+
+Optional. Path to the Sail JSON file. Defaults to F.
+
+=item B<--help>
+
+Print this help message.
+
+=item B<--man>
+
+Show full documentation.
+
+=back
+
+=head1 AUTHOR
+
+Angus He
+
+=cut
+
diff --git a/json-to-rose/riscv.sail_project b/json-to-rose/riscv.sail_project
new file mode 100644
index 0000000..f1c1dab
--- /dev/null
+++ b/json-to-rose/riscv.sail_project
@@ -0,0 +1,163 @@
+variable TERMINATION_FILE = false
+variable RMEM = false
+
+core {
+ files
+ model/core/prelude.sail,
+ model/core/errors.sail,
+ model/core/xlen.sail,
+ model/core/flen.sail,
+ model/core/vlen.sail,
+ model/core/prelude_mem_addrtype.sail,
+ model/core/prelude_mem_metadata.sail,
+ model/core/prelude_mem.sail,
+ model/core/arithmetic.sail,
+ model/core/range_util.sail,
+ model/core/rvfi_dii.sail,
+ model/core/rvfi_dii_v1.sail,
+ model/core/rvfi_dii_v2.sail,
+ model/core/extensions.sail,
+ model/core/types_common.sail,
+ model/core/types_ext.sail,
+ model/core/types.sail,
+ model/core/vmem_types.sail,
+ model/core/vext_types.sail,
+ model/core/csr_begin.sail,
+ model/core/callbacks.sail,
+ model/core/reg_type.sail,
+ model/core/regs.sail,
+ model/core/pc_access.sail,
+ model/core/sys_regs.sail,
+ model/core/ext_regs.sail,
+ model/core/addr_checks_common.sail,
+ model/core/addr_checks.sail,
+ model/core/misa_ext.sail,
+ model/core/softfloat_interface.sail,
+}
+
+exceptions {
+ requires core
+
+ files
+ model/exceptions/sys_exceptions.sail,
+ model/exceptions/sync_exception.sail,
+}
+
+pmp {
+ requires core
+
+ files
+ model/pmp/pmp_regs.sail,
+ model/pmp/pmp_control.sail,
+}
+
+sys {
+ requires core, exceptions, pmp, A_types
+
+ files
+ model/extensions/cfi/zicfilp_regs.sail,
+ model/extensions/Smcntrpmf/smcntrpmf.sail,
+ model/extensions/V/vreg_type.sail,
+ model/extensions/V/vext_regs.sail,
+ model/extensions/V/vext_control.sail,
+ model/sys/sys_reservation.sail,
+ model/sys/sys_control.sail,
+ model/sys/platform.sail,
+ model/sys/pma.sail,
+ model/sys/mem.sail,
+ model/sys/inst_retire.sail,
+ model/sys/vmem_pte.sail,
+ model/sys/vmem_ptw.sail,
+ model/sys/vmem_tlb.sail,
+ model/sys/vmem.sail,
+ model/sys/vmem_utils.sail,
+ model/sys/insts_begin.sail,
+}
+
+extensions {
+ requires core
+
+ I {
+ I_types {
+ before sys
+ files model/extensions/I/base_types.sail
+ }
+ I_insts {
+ requires exceptions, sys, I_types
+
+ files
+ model/extensions/I/base_insts.sail,
+ model/extensions/I/reserved_fence_insts.sail,
+ if $RMEM then
+ model/extensions/I/jalr_rmem.sail
+ else
+ model/extensions/I/jalr_seq.sail
+ }
+ }
+
+ Zicsr {
+ Zicsr_types {
+ before sys
+ files model/extensions/Zicsr/zicsr_types.sail
+ }
+ Zicsr_insts {
+ requires sys, exceptions, pmp, Zicsr_types
+ files model/extensions/Zicsr/zicsr_insts.sail
+ }
+ }
+
+ Zifenci {
+ requires sys
+ files model/extensions/Zifenci/zifencei_insts.sail
+ }
+
+ A {
+ A_types {
+ before sys
+ files model/extensions/A/aext_types.sail
+ }
+ Zaamo {
+ requires sys, A_types
+ files model/extensions/A/zaamo_insts.sail
+ }
+ }
+
+ M {
+ M_types {
+ before sys
+ files model/extensions/M/mext_types.sail
+ }
+ M_insts {
+ requires sys, I, M_types
+ files model/extensions/M/mext_insts.sail
+ }
+ }
+
+ C {
+ Zca {
+ requires exceptions, sys, I
+ files model/extensions/C/zca_insts.sail
+ }
+ }
+
+ FD {
+ FD_core {
+ before sys
+ files
+ model/extensions/FD/freg_type.sail,
+ model/extensions/FD/fdext_regs.sail,
+ model/extensions/FD/fdext_control.sail,
+ }
+
+ FD_instructions {
+ requires sys, I, FD_core
+ files
+ model/extensions/FD/fext_insts.sail,
+ model/extensions/FD/zcf_insts.sail,
+ model/extensions/FD/dext_insts.sail,
+ model/extensions/FD/zcd_insts.sail,
+ model/extensions/FD/zfh_insts.sail,
+ model/extensions/FD/zfa_insts.sail,
+ }
+ }
+}
diff --git a/json-to-rose/sail_semantics.json b/json-to-rose/sail_semantics.json
new file mode 100644
index 0000000..6bd2e2f
--- /dev/null
+++ b/json-to-rose/sail_semantics.json
@@ -0,0 +1 @@
+{"ast":[{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_var":[{"Var":"'a"}]}]}]},{"Id":"internal_pick"},{"pure":false,"bindings":[["_","internal_pick"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"undefined_bool"},{"pure":false,"bindings":[["_","undefined_bool"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bit"}]}]}]},{"Id":"undefined_bit"},{"pure":false,"bindings":[["_","undefined_bit"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"undefined_int"},{"pure":false,"bindings":[["_","undefined_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"nat"}]}]}]},{"Id":"undefined_nat"},{"pure":false,"bindings":[["_","undefined_nat"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"real"}]}]}]},{"Id":"undefined_real"},{"pure":false,"bindings":[["_","undefined_real"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"undefined_string"},{"pure":false,"bindings":[["_","undefined_string"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]}],{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}]}]},{"Id":"undefined_list"},{"pure":false,"bindings":[["_","undefined_list"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"undefined_range"},{"pure":false,"bindings":[["_","undefined_range"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_var":[{"Var":"'a"}]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}]}]},{"Id":"undefined_vector"},{"pure":false,"bindings":[["_","undefined_vector"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"undefined_bitvector"},{"pure":false,"bindings":[["_","undefined_bitvector"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"undefined_unit"},{"pure":false,"bindings":[["_","undefined_unit"]]}]}},{"DEF_pragma":["file_start","core/prelude.sail"]},{"DEF_default":{"DT_order":"Ord_dec"}},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/smt.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_app":[{"Id":"div"},[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]]}]}]]}]}]},{"Id":"ediv_int"},{"pure":true,"bindings":[["ocaml","quotient"],["interpreter","quotient"],["lem","integerDiv"],["coq","ZEuclid.div"],["lean","Int.ediv"],["_","ediv_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_app":[{"Id":"mod"},[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]]}]}]]}]}]},{"Id":"emod_int"},{"pure":true,"bindings":[["ocaml","modulus"],["interpreter","modulus"],["lem","integerMod"],["coq","ZEuclid.modulo"],["lean","Int.emod"],["_","emod_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_app":[{"Id":"abs"},[{"Nexp_var":[{"Var":"'n"}]}]]}]}]]}]}]},{"Id":"abs_int_atom"},{"pure":true,"bindings":[["ocaml","abs_int"],["interpreter","abs_int"],["lem","integerAbs"],["coq","Z.abs"],["lean","Int.natAbs"],["_","abs_int"]]}]}},{"DEF_overload":[{"Id":"abs_int"},[{"Id":"abs_int_atom"}]]},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/smt.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/option.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_type":{"TD_variant":[{"Id":"option"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},[{"Tu_ty_id":[{"Typ_var":[{"Var":"'a"}]},{"Id":"Some"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"None"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_none"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_none"},{"Pat_exp":[{"P_id":[{"Id":"opt"}]},{"E_match":[{"E_id":[{"Id":"opt"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_wild":[]}]]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_some"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_some"},{"Pat_exp":[{"P_id":[{"Id":"opt"}]},{"E_match":[{"E_id":[{"Id":"opt"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/option.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/arith.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/flow.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":["NC_true"]}]]}]}]},{"Id":"eq_unit"},{"pure":true,"bindings":[["lean","_lean_beq"],["_","eq_unit"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"eq_unit"},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bit"}]},{"Typ_id":[{"Id":"bit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"eq_bit"},{"pure":true,"bindings":[["lem","eq"],["lean","_lean_beq"],["_","eq_bit"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_bool",{"Var":"'p"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'p"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_app":[{"Id":"not"},[{"A_bool":[{"NC_var":[{"Var":"'p"}]}]}]]}]}]]}]}]},{"Id":"not_bool"},{"pure":true,"bindings":[["coq","negb"],["lean","_lean_not"],["_","not"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_bool",{"Var":"'p"}]}]},{"QI_id":[{"KOpt_kind":["K_bool",{"Var":"'q"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'p"}]}]}]]},{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'q"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_and":[{"NC_var":[{"Var":"'p"}]},{"NC_var":[{"Var":"'q"}]}]}]}]]}]}]},["And_Bool"],{"pure":true,"bindings":[["coq","andb"],["lean","_lean_and"],["_","and_bool"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"and_bool_no_flow"},{"pure":true,"bindings":[["coq","andb"],["lean","_lean_and"],["_","and_bool"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_bool",{"Var":"'p"}]}]},{"QI_id":[{"KOpt_kind":["K_bool",{"Var":"'q"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'p"}]}]}]]},{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'q"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_or":[{"NC_var":[{"Var":"'p"}]},{"NC_var":[{"Var":"'q"}]}]}]}]]}]}]},["Or_Bool"],{"pure":true,"bindings":[["coq","orb"],["lean","_lean_or"],["_","or_bool"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]}]}]]}]}]},{"Id":"eq_int"},{"pure":true,"bindings":[["ocaml","eq_int"],["interpreter","eq_int"],["lem","eq"],["coq","Z.eqb"],["lean","_lean_beq"],["_","eq_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"eq_bool"},{"pure":true,"bindings":[["ocaml","eq_bool"],["interpreter","eq_bool"],["lem","eq"],["coq","Bool.eqb"],["lean","_lean_beq"],["_","eq_bool"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_not_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]}]}]]}]}]},{"Id":"neq_int"},{"pure":true,"bindings":[["lem","neq"],["lean","_lean_bne"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"neq_int"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"not_bool"},[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"neq_bool"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"neq_bool"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"not_bool"},[{"E_app":[{"Id":"eq_bool"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"lteq_int"},{"pure":true,"bindings":[["coq","Z.leb"],["lean","_lean_le"],["_","lteq"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"gteq_int"},{"pure":true,"bindings":[["coq","Z.geb"],["lean","_lean_ge"],["_","gteq"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_lt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"lt_int"},{"pure":true,"bindings":[["coq","Z.ltb"],["lean","_lean_lt"],["_","lt"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"gt_int"},{"pure":true,"bindings":[["coq","Z.gtb"],["lean","_lean_gt"],["_","gt"]]}]}},{"DEF_overload":[{"Operator":"=="},[{"Id":"eq_int"},{"Id":"eq_bit"},{"Id":"eq_bool"},{"Id":"eq_unit"}]]},{"DEF_overload":[{"Operator":"!="},[{"Id":"neq_int"},{"Id":"neq_bool"}]]},{"DEF_overload":[{"Operator":"|"},[["Or_Bool"]]]},{"DEF_overload":[{"Operator":"&"},[["And_Bool"]]]},{"DEF_overload":[{"Operator":"<="},[{"Id":"lteq_int"}]]},{"DEF_overload":[{"Operator":"<"},[{"Id":"lt_int"}]]},{"DEF_overload":[{"Operator":">="},[{"Id":"gteq_int"}]]},{"DEF_overload":[{"Operator":">"},[{"Id":"gt_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"__id"},{"pure":true,"bindings":[["systemverilog","id"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"__id"},{"Pat_exp":[{"P_id":[{"Id":"x"}]},{"E_id":[{"Id":"x"}]}]}]}]]}},{"DEF_overload":[{"Id":"__size"},[{"Id":"__id"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_var":[{"Var":"'a"}]}]}]},{"Id":"__deref"},{"pure":false,"bindings":[["_","reg_deref"]]}]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/flow.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"add_atom"},{"pure":true,"bindings":[["ocaml","add_int"],["interpreter","add_int"],["lem","integerAdd"],["coq","Z.add"],["lean","_lean_addi"],["_","add_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"add_int"},{"pure":true,"bindings":[["ocaml","add_int"],["interpreter","add_int"],["lem","integerAdd"],["coq","Z.add"],["lean","_lean_addi"],["_","add_int"]]}]}},{"DEF_overload":[{"Operator":"+"},[{"Id":"add_atom"},{"Id":"add_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"sub_atom"},{"pure":true,"bindings":[["ocaml","sub_int"],["interpreter","sub_int"],["lem","integerMinus"],["coq","Z.sub"],["lean","_lean_subi"],["_","sub_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"sub_int"},{"pure":true,"bindings":[["ocaml","sub_int"],["interpreter","sub_int"],["lem","integerMinus"],["coq","Z.sub"],["lean","_lean_subi"],["_","sub_int"]]}]}},{"DEF_overload":[{"Operator":"-"},[{"Id":"sub_atom"},{"Id":"sub_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"nat"}]}]}]},{"Id":"sub_nat"},{"pure":true,"bindings":[["ocaml","(fun (x,y) -> let n = sub_int (x,y) in if Big_int.less_equal n Big_int.zero then Big_int.zero else n)"],["lem","integerMinus"],["coq","Z.sub"],["lean","_lean_subi"],["_","sub_nat"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]},{"Id":"negate_atom"},{"pure":true,"bindings":[["ocaml","negate"],["interpreter","negate"],["lem","integerNegate"],["coq","Z.opp"],["lean","Neg.neg"],["_","neg_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"negate_int"},{"pure":true,"bindings":[["ocaml","negate"],["interpreter","negate"],["lem","integerNegate"],["coq","Z.opp"],["lean","Neg.neg"],["_","neg_int"]]}]}},{"DEF_overload":[{"Id":"negate"},[{"Id":"negate_atom"},{"Id":"negate_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"mult_atom"},{"pure":true,"bindings":[["ocaml","mult"],["interpreter","mult"],["lem","integerMult"],["coq","Z.mul"],["lean","_lean_muli"],["_","mult_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"mult_int"},{"pure":true,"bindings":[["ocaml","mult"],["interpreter","mult"],["lem","integerMult"],["coq","Z.mul"],["lean","_lean_muli"],["_","mult_int"]]}]}},{"DEF_overload":[{"Operator":"*"},[{"Id":"mult_atom"},{"Id":"mult_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_int"},{"pure":true,"bindings":[["_","print_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"prerr_int"},{"pure":true,"bindings":[["_","prerr_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_exp":[{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]},{"Id":"pow2"},{"pure":true,"bindings":[["lean","_lean_pow2i"],["_","pow2"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'m"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]},{"Id":"_shl8"},{"pure":true,"bindings":[["c","shl_mach_int"],["cpp","shl_mach_int"],["lean","Int.shiftl"],["_","shl_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[0,1]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'m"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]},{"Id":"_shl32"},{"pure":true,"bindings":[["c","shl_mach_int"],["cpp","shl_mach_int"],["lean","Int.shiftl"],["_","shl_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'m"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]},{"Id":"_shl1"},{"pure":true,"bindings":[["c","shl_mach_int"],["cpp","shl_mach_int"],["lean","Int.shiftl"],["_","shl_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"_shl_int"},{"pure":true,"bindings":[["lean","Int.shiftl"],["_","shl_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[31]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'m"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[15]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]},{"Id":"_shr32"},{"pure":true,"bindings":[["c","shr_mach_int"],["cpp","shr_mach_int"],["lean","Int.shiftl"],["_","shr_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"_shr_int"},{"pure":true,"bindings":[["lean","Int.shiftr"],["_","shr_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"_shl_int_general"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_shl_int_general"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"n"}]}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"_shl_int"},[{"E_id":[{"Id":"m"}]},{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"_shr_int"},[{"E_id":[{"Id":"m"}]},{"E_app":[{"Id":"negate_atom"},[{"E_id":[{"Id":"n"}]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"_shr_int_general"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_shr_int_general"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"n"}]}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"_shr_int"},[{"E_id":[{"Id":"m"}]},{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"_shl_int"},[{"E_id":[{"Id":"m"}]},{"E_app":[{"Id":"negate_atom"},[{"E_id":[{"Id":"n"}]}]]}]]}]}]}]}]]}},{"DEF_overload":[{"Id":"shl_int"},[{"Id":"_shl1"},{"Id":"_shl8"},{"Id":"_shl32"},{"Id":"_shl_int"},{"Id":"_shl_int_general"}]]},{"DEF_overload":[{"Id":"shr_int"},[{"Id":"_shr32"},{"Id":"_shr_int"},{"Id":"_shr_int_general"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"tdiv_int"},{"pure":true,"bindings":[["coq","Z.quot"],["lean","Int.tdiv"],["_","tdiv_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"_tmod_int"},{"pure":true,"bindings":[["coq","Z.rem"],["lean","Int.tmod"],["_","tmod_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"nat"}]}]}]},{"Id":"_tmod_int_positive"},{"pure":true,"bindings":[["ocaml","tmod_int"],["interpreter","tmod_int"],["lem","tmod_int"],["coq","Z.rem"],["lean","Int.tmod"],["_","tmod_int"]]}]}},{"DEF_overload":[{"Id":"tmod_int"},[{"Id":"_tmod_int_positive"},{"Id":"_tmod_int"}]]},{"DEF_pragma":["c_reserved","fdiv_int"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"fdiv_int"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fdiv_int"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"n"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"m"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"m"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"tdiv_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"m"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"tdiv_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"tdiv_int"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"m"}]}]]}]]}]}]}]]}]}]}]]}},{"DEF_pragma":["c_reserved","fmod_int"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"fmod_int"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fmod_int"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"n"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"m"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"m"}]},{"E_app":[{"Id":"fdiv_int"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"m"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"abs_int_plain"},{"pure":true,"bindings":[["smt","abs"],["ocaml","abs_int"],["interpreter","abs_int"],["lem","integerAbs"],["coq","Z.abs"],["lean","Sail.Int.intAbs"],["_","abs_int"]]}]}},{"DEF_overload":[{"Id":"abs_int"},[{"Id":"abs_int_plain"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'x"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'y"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'x"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'y"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'z"}]}],{"NC_or":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'x"}]},{"Nexp_var":[{"Var":"'y"}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'z"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'x"}]}]}]}]},{"NC_and":[{"NC_lt":[{"Nexp_var":[{"Var":"'x"}]},{"Nexp_var":[{"Var":"'y"}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'z"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'y"}]}]}]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'z"}]}]}]]}]}]}]},{"Id":"max_int"},{"pure":true,"bindings":[["lem","integerMax"],["coq","Z.max"],["lean","Max.max"],["_","max_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'x"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'y"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'x"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'y"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'z"}]}],{"NC_or":[{"NC_and":[{"NC_lt":[{"Nexp_var":[{"Var":"'x"}]},{"Nexp_var":[{"Var":"'y"}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'z"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'x"}]}]}]}]},{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'x"}]},{"Nexp_var":[{"Var":"'y"}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'z"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'y"}]}]}]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'z"}]}]}]]}]}]}]},{"Id":"min_int"},{"pure":true,"bindings":[["lem","integerMin"],["coq","Z.min"],["lean","Min.min"],["_","min_int"]]}]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/arith.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/string.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"eq_string"},{"pure":true,"bindings":[["lem","eq"],["coq","generic_eq"],["lean","_lean_beq"],["_","eq_string"]]}]}},{"DEF_overload":[{"Operator":"=="},[{"Id":"eq_string"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"concat_str"},{"pure":true,"bindings":[["coq","String.append"],["lem","stringAppend"],["lean","HAppend.hAppend"],["_","concat_str"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_str"},{"pure":true,"bindings":[["lean","Int.repr"],["_","dec_str"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_str"},{"pure":true,"bindings":[["lean","Int.toHex"],["_","hex_str"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_str_upper"},{"pure":true,"bindings":[["lean","Int.toHexUpper"],["_","hex_str_upper"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"bits_str"},{"pure":true,"bindings":[["lean","BitVec.toFormatted"],["_","string_of_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"concat_str_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"concat_str_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"str"}]},{"P_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_id":[{"Id":"str"}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"x"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"concat_str_dec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"concat_str_dec"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"str"}]},{"P_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_id":[{"Id":"str"}]},{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"x"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_endline"},{"pure":true,"bindings":[["_","print_endline"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"prerr_endline"},{"pure":true,"bindings":[["_","prerr_endline"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print"},{"pure":true,"bindings":[["_","print"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"prerr"},{"pure":true,"bindings":[["_","prerr"]]}]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/string.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/mapping.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"string_take"},{"pure":true,"bindings":[["lean","String.take"],["_","string_take"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"string_drop"},{"pure":true,"bindings":[["lean","String.drop"],["_","string_drop"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"nat"}]}]}]},{"Id":"string_length"},{"pure":true,"bindings":[["lean","String.length"],["_","string_length"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"string_append"},{"pure":true,"bindings":[["coq","String.append"],["lean","String.append"],["c","concat_str"],["cpp","concat_str"],["_","string_append"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"string_startswith"},{"pure":true,"bindings":[["lean","String.startsWith"],["_","string_startswith"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"nat"}]}]}]},{"Id":"n_leading_spaces"},{"pure":true,"bindings":[["coq","n_leading_spaces_Z"],["lean","String.leadingSpaces"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"n_leading_spaces"},{"Pat_exp":[{"P_id":[{"Id":"s"}]},{"E_match":[{"E_id":[{"Id":"s"}]},[{"Pat_exp":[{"P_lit":[{"L_string":""}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_wild":[]},{"E_match":[{"E_app":[{"Id":"string_take"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":1}]}]]},[{"Pat_exp":[{"P_lit":[{"L_string":" "}]},{"E_app":[{"Id":"add_atom"},[{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"n_leading_spaces"},[{"E_app":[{"Id":"string_drop"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":[{"L_num":0}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"spc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"spc_forwards"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_string":" "}]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"spc_forwards_matches"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"spc_backwards"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"spc_backwards_matches"},{"Pat_exp":[{"P_id":[{"Id":"s"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"len"}]},{"E_app":[{"Id":"string_length"},[{"E_id":[{"Id":"s"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"n_leading_spaces"},[{"E_id":[{"Id":"s"}]}]]},{"E_id":[{"Id":"len"}]}]]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"len"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"opt_spc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"opt_spc_forwards"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_string":""}]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"opt_spc_forwards_matches"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"opt_spc_backwards"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"opt_spc_backwards_matches"},{"Pat_exp":[{"P_id":[{"Id":"s"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"n_leading_spaces"},[{"E_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"string_length"},[{"E_id":[{"Id":"s"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"def_spc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"def_spc_forwards"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_string":" "}]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"def_spc_forwards_matches"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"def_spc_backwards"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"def_spc_backwards_matches"},{"Pat_exp":[{"P_id":[{"Id":"s"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"n_leading_spaces"},[{"E_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"string_length"},[{"E_id":[{"Id":"s"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"sep"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"sep"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_unit"]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":","}]},{"MP_app":[{"Id":"def_spc"},[{"MP_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/mapping.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/vector_dec.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/vector.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"bits"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"eq_bits"},{"pure":true,"bindings":[["ocaml","eq_list"],["interpreter","eq_list"],["lem","eq_vec"],["coq","eq_vec"],["lean","_lean_beq"],["_","eq_bits"]]}]}},{"DEF_overload":[{"Operator":"=="},[{"Id":"eq_bit"},{"Id":"eq_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"neq_bits"},{"pure":true,"bindings":[["lem","neq_vec"],["coq","neq_vec"],["c","neq_bits"],["cpp","neq_bits"],["lean","_lean_bne"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"neq_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"not_bool"},[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Operator":"!="},[{"Id":"neq_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"bitvector_length"},{"pure":true,"bindings":[["coq","length_mword"],["lean","Sail.BitVec.length"],["_","length"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"vector_length"},{"pure":true,"bindings":[["ocaml","length"],["interpreter","length"],["lem","length_list"],["coq","vec_length"],["lean","Vector.length"],["_","length"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_var":[{"Var":"'a"}]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}]}]},{"Id":"vector_init"},{"pure":true,"bindings":[["lean","vectorInit"],["_","vector_init"]]}]}},{"DEF_overload":[{"Id":"length"},[{"Id":"bitvector_length"},{"Id":"vector_length"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'N"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'N"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'N"}]},{"Nexp_constant":[1]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'N"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'N"}]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"count_leading_zeros"},{"pure":true,"bindings":[["lean","BitVec.countLeadingZeros"],["_","count_leading_zeros"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'N"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'N"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'N"}]},{"Nexp_constant":[1]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'N"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'N"}]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"count_trailing_zeros"},{"pure":true,"bindings":[["lean","BitVec.countTrailingZeros"],["_","count_trailing_zeros"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_bits"},{"pure":true,"bindings":[["_","print_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"prerr_bits"},{"pure":true,"bindings":[["_","prerr_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"sail_sign_extend"},{"pure":true,"bindings":[["lean","Sail.BitVec.signExtend"],["_","sign_extend"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"sail_zero_extend"},{"pure":true,"bindings":[["lean","Sail.BitVec.zeroExtend"],["_","zero_extend"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"truncate"},{"pure":true,"bindings":[["ocaml","vector_truncate"],["interpreter","vector_truncate"],["lem","vector_truncate"],["coq","vector_truncate"],["lean","Sail.BitVec.truncate"],["_","sail_truncate"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"truncateLSB"},{"pure":true,"bindings":[["ocaml","vector_truncateLSB"],["interpreter","vector_truncateLSB"],["lem","vector_truncateLSB"],["coq","vector_truncateLSB"],["lean","Sail.BitVec.truncateLsb"],["_","sail_truncateLSB"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'len"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'len"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'len"}]},{"Nexp_constant":[0]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'len"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'len"}]}]}]]}]}]},{"Id":"sail_mask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_mask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"len"}]},{"P_id":[{"Id":"v"}]}]]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"len"}]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_app":[{"Id":"truncate"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"len"}]}]]},{"E_app":[{"Id":"sail_zero_extend"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"len"}]}]]}]}]}]}]]}},{"DEF_overload":[{"Operator":"^"},[{"Id":"sail_mask"}]]},{"DEF_fixity":["Infix",8,{"Id":"=^"}]},{"DEF_overload":[{"Operator":"=^"},[{"Id":"sail_mask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"bitvector_concat"},{"pure":true,"bindings":[["ocaml","append"],["interpreter","append"],["lem","concat_vec"],["coq","concat_vec"],["lean","_lean_app"],["_","append"]]}]}},{"DEF_overload":[{"Id":"append"},[{"Id":"bitvector_concat"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[64]}]}]}]]}]}]},{"Id":"append_64"},{"pure":true,"bindings":[["_","append_64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bit"}]}]}]},{"Id":"bitvector_access"},{"pure":true,"bindings":[["ocaml","access"],["interpreter","access"],["lem","access_vec_dec"],["coq","access_vec_dec"],["lean","BitVec.access"],["_","vector_access"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_var":[{"Var":"'a"}]}]}]},{"Id":"plain_vector_access"},{"pure":true,"bindings":[["ocaml","access"],["interpreter","access"],["lem","access_list_dec"],["coq","vec_access_dec"],["lean","GetElem?.getElem!"],["_","vector_access"]]}]}},{"DEF_overload":[{"Id":"vector_access"},[{"Id":"bitvector_access"},{"Id":"plain_vector_access"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_id":[{"Id":"bit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"bitvector_update"},{"pure":true,"bindings":[["ocaml","update"],["interpreter","update"],["lem","update_vec_dec"],["coq","update_vec_dec"],["lean","BitVec.update"],["_","vector_update"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_var":[{"Var":"'a"}]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}]}]},{"Id":"plain_vector_update"},{"pure":true,"bindings":[["ocaml","update"],["interpreter","update"],["lem","update_list_dec"],["coq","vec_update_dec"],["lean","vectorUpdate"],["_","vector_update"]]}]}},{"DEF_overload":[{"Id":"vector_update"},[{"Id":"bitvector_update"},{"Id":"plain_vector_update"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"add_bits"},{"pure":true,"bindings":[["ocaml","add_vec"],["interpreter","add_vec"],["lem","add_vec"],["coq","add_vec"],["lean","_lean_add"],["_","add_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"add_bits_int"},{"pure":true,"bindings":[["ocaml","add_vec_int"],["interpreter","add_vec_int"],["lem","add_vec_int"],["coq","add_vec_int"],["lean","BitVec.addInt"],["_","add_bits_int"]]}]}},{"DEF_overload":[{"Operator":"+"},[{"Id":"add_bits"},{"Id":"add_bits_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sub_bits"},{"pure":true,"bindings":[["ocaml","sub_vec"],["interpreter","sub_vec"],["lem","sub_vec"],["coq","sub_vec"],["lean","_lean_sub"],["_","sub_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"not_vec"},{"pure":true,"bindings":[["ocaml","not_vec"],["lem","not_vec"],["coq","not_vec"],["interpreter","not_vec"],["lean","Complement.complement"],["_","not_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"and_vec"},{"pure":true,"bindings":[["lem","and_vec"],["coq","and_vec"],["ocaml","and_vec"],["interpreter","and_vec"],["lean","_lean_bvand"],["_","and_bits"]]}]}},{"DEF_overload":[{"Operator":"&"},[{"Id":"and_vec"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"or_vec"},{"pure":true,"bindings":[["lem","or_vec"],["coq","or_vec"],["ocaml","or_vec"],["interpreter","or_vec"],["lean","_lean_bvor"],["_","or_bits"]]}]}},{"DEF_overload":[{"Operator":"|"},[{"Id":"or_vec"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"xor_vec"},{"pure":true,"bindings":[["lem","xor_vec"],["coq","xor_vec"],["ocaml","xor_vec"],["interpreter","xor_vec"],["lean","_lean_bvxor"],["_","xor_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'o"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'o"}]}]},{"NC_and":[{"NC_le":[{"Nexp_var":[{"Var":"'o"}]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'o"}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"subrange_bits"},{"pure":true,"bindings":[["ocaml","subrange"],["interpreter","subrange"],["lem","subrange_vec_dec"],["coq","subrange_vec_dec"],["lean","Sail.BitVec.extractLsb"],["_","vector_subrange"]]}]}},{"DEF_overload":[{"Id":"vector_subrange"},[{"Id":"subrange_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'o"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'o"}]}]},{"NC_and":[{"NC_le":[{"Nexp_var":[{"Var":"'o"}]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_minus":[{"Nexp_var":[{"Var":"'o"}]},{"Nexp_constant":[1]}]}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"update_subrange_bits"},{"pure":true,"bindings":[["ocaml","update_subrange"],["interpreter","update_subrange"],["lem","update_subrange_vec_dec"],["coq","update_subrange_vec_dec"],["lean","Sail.BitVec.updateSubrange"],["_","vector_update_subrange"]]}]}},{"DEF_overload":[{"Id":"vector_update_subrange"},[{"Id":"update_subrange_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sail_shiftleft"},{"pure":true,"bindings":[["lean","_lean_shiftl"],["_","shiftl"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sail_shiftright"},{"pure":true,"bindings":[["lean","_lean_shiftr"],["_","shiftr"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sail_arith_shiftright"},{"pure":true,"bindings":[["lean","BitVec.rotateRight"],["_","arith_shiftr"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sail_zeros"},{"pure":true,"bindings":[["lean","BitVec.zero"],["_","zeros"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sail_ones"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_ones"},{"Pat_exp":[{"P_id":[{"Id":"n"}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"sail_zeros"},[{"E_id":[{"Id":"n"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'o"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"slice"},{"pure":true,"bindings":[["lean","BitVec.slice"],["_","slice"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"replicate_bits"},{"pure":true,"bindings":[["lean","BitVec.replicateBits"],["_","replicate_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"slice_mask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"slice_mask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"i"}]},{"P_id":[{"Id":"l"}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"l"}]},{"E_id":[{"Id":"n"}]}]]},{"E_block":[[{"E_app":[{"Id":"sail_shiftleft"},[{"E_app":[{"Id":"sail_ones"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"one"}]}]},{"E_app":[{"Id":"sail_mask"},[{"E_id":[{"Id":"n"}]},{"E_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"E_vector":[[{"E_lit":["L_one"]}]]}]}]]}]},{"E_app":[{"Id":"sail_shiftleft"},[{"E_app":[{"Id":"sub_bits"},[{"E_app":[{"Id":"sail_shiftleft"},[{"E_id":[{"Id":"one"}]},{"E_id":[{"Id":"l"}]}]]},{"E_id":[{"Id":"one"}]}]]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'w"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'w"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'w"}]}]}]]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'w"}]}]}]]}]}]},{"Id":"get_slice_int"},{"pure":true,"bindings":[["_","get_slice_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'w"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'w"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'w"}]}]}]]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'w"}]}]}]]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"set_slice_int"},{"pure":true,"bindings":[["_","set_slice_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"set_slice_bits"},{"pure":true,"bindings":[["_","set_slice"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_exp":[{"Nexp_var":[{"Var":"'n"}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"unsigned"},{"pure":true,"bindings":[["ocaml","uint"],["lem","uint"],["interpreter","uint"],["coq","uint"],["lean","BitVec.toNat"],["_","sail_unsigned"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_exp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_exp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"signed"},{"pure":true,"bindings":[["ocaml","sint"],["lem","sint"],["interpreter","sint"],["coq","sint"],["lean","BitVec.toInt"],["_","sail_signed"]]}]}},{"DEF_overload":[{"Id":"__size"},[{"Id":"__id"},{"Id":"bitvector_length"},{"Id":"vector_length"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]}]}]},{"Id":"to_bytes_le"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"to_bytes_le"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"b"}]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"res"}]},{"E_app":[{"Id":"vector_init"},[{"E_id":[{"Id":"n"}]},{"E_app":[{"Id":"sail_zeros"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"res"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"b"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_id":[{"Id":"res"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]},{"Id":"from_bytes_le"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"from_bytes_le"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"res"}]},{"E_app":[{"Id":"sail_zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"n"}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"res"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_id":[{"Id":"res"}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/vector.sail"]},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/vector_dec.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/generic_equality.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_var":[{"Var":"'a"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"eq_anything"},{"pure":true,"bindings":[["ocaml","(fun (x, y) -> x = y)"],["lem","eq"],["coq","generic_eq"],["lean","_lean_beq"],["_","eq_anything"]]}]}},{"DEF_overload":[{"Operator":"=="},[{"Id":"eq_anything"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_var":[{"Var":"'a"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"neq_anything"},{"pure":true,"bindings":[["lem","neq"],["lean","bne"],["coq","generic_neq"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"neq_anything"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"not_bool"},[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"y"}]},{"E_id":[{"Id":"x"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Operator":"!="},[{"Id":"neq_anything"}]]},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/generic_equality.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/hex_bits.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"string"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"parse_hex_bits"},{"pure":true,"bindings":[["_","parse_hex_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_hex_bits"},{"pure":true,"bindings":[["_","valid_hex_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_tuple":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"string"}]}]]}]}]},{"Id":"hex_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_forwards"},{"Pat_exp":[{"P_id":[{"Id":"bv"}]},{"E_tuple":[[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"bv"}]}]]},{"E_app":[{"Id":"hex_str"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"bv"}]}]]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_forwards_matches"},{"Pat_exp":[{"P_id":[{"Id":"bv"}]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_backwards"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"str"}]}]]},{"E_app":[{"Id":"parse_hex_bits"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"str"}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_backwards_matches"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"str"}]}]]},{"E_app":[{"Id":"valid_hex_bits"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"str"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":1}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_2"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_2"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":2}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_3"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_3"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":3}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_4"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_4"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":4}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_5"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_5"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":5}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":6}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_7"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_7"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":7}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_8"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_8"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":8}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[9]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_9"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_9"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":9}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_10"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_10"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":10}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_11"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_11"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":11}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_12"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_12"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":12}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[13]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_13"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_13"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":13}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[14]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_14"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_14"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":14}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[15]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_15"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_15"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":15}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_16"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_16"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":16}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[17]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_17"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_17"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":17}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[18]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_18"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_18"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":18}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[19]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_19"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_19"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":19}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[20]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_20"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_20"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":20}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[21]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_21"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_21"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":21}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[22]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_22"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_22"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":22}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[23]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_23"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_23"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":23}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[24]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_24"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_24"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":24}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[25]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_25"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_25"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":25}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[26]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_26"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_26"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":26}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[27]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_27"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_27"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":27}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[28]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_28"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_28"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":28}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_29"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_29"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":29}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[30]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_30"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_30"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":30}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_31"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_31"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":31}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_32"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_32"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":32}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[33]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_33"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_33"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":33}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[34]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_34"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_34"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":34}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[35]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_35"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_35"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":35}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[36]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_36"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_36"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":36}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[37]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_37"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_37"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":37}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[38]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_38"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_38"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":38}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[39]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_39"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_39"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":39}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[40]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_40"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_40"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":40}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[41]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_41"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_41"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":41}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[42]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_42"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_42"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":42}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[43]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_43"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_43"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":43}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[44]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_44"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_44"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":44}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[45]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_45"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_45"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":45}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[46]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_46"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_46"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":46}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[47]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_47"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_47"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":47}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[48]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_48"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_48"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":48}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[49]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_49"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_49"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":49}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[50]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_50"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_50"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":50}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[51]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_51"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_51"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":51}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[52]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_52"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_52"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":52}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[53]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_53"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_53"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":53}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[54]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_54"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_54"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":54}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[55]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_55"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_55"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":55}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[56]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_56"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_56"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":56}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[57]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_57"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_57"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":57}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[58]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_58"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_58"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":58}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[59]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_59"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_59"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":59}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[60]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_60"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_60"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":60}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[61]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_61"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_61"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":61}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[62]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_62"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_62"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":62}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_63"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_63"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":63}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_64"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_64"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":64}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/hex_bits.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/hex_bits_signed.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_tuple":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"string"}]}]]}]}]},{"Id":"hex_bits_signed"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_signed_forwards"},{"Pat_exp":[{"P_id":[{"Id":"bv"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"len"}]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"bv"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"s"}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"bv"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"len"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"-"}]},{"E_app":[{"Id":"hex_str"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"bv"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"hex_str"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"bv"}]}]]}]]}]]}]}]},{"E_block":[[{"E_tuple":[[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"bv"}]}]]},{"E_id":[{"Id":"s"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_signed_forwards_matches"},{"Pat_exp":[{"P_id":[{"Id":"bv"}]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_signed_backwards"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"str"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_string"},[{"E_app":[{"Id":"string_take"},[{"E_id":[{"Id":"str"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_string":"-"}]}]]},{"E_block":[[{"E_app":[{"Id":"sub_bits"},[{"E_app":[{"Id":"sail_zeros"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"parse_hex_bits"},[{"E_id":[{"Id":"n"}]},{"E_app":[{"Id":"string_drop"},[{"E_id":[{"Id":"str"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"parsed"}]},{"E_app":[{"Id":"parse_hex_bits"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"str"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"parsed"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":["L_zero"]}]]},{"E_block":[[{"E_id":[{"Id":"parsed"}]}]]},{"E_block":[[{"E_app":[{"Id":"sail_zeros"},[{"E_id":[{"Id":"n"}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_signed_backwards_matches"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"str"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_string"},[{"E_app":[{"Id":"string_take"},[{"E_id":[{"Id":"str"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_string":"-"}]}]]},{"E_block":[[{"E_app":[{"Id":"valid_hex_bits"},[{"E_id":[{"Id":"n"}]},{"E_app":[{"Id":"string_drop"},[{"E_id":[{"Id":"str"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"valid_hex_bits"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"str"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"parsed"}]},{"E_app":[{"Id":"parse_hex_bits"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"str"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"parsed"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":["L_zero"]}]]}]]}]}]]},{"E_block":[[{"E_lit":["L_false"]}]]}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":1}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_2"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_2"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":2}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_3"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_3"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":3}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_4"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_4"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":4}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_5"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_5"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":5}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":6}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_7"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_7"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":7}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_8"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_8"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":8}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[9]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_9"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_9"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":9}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_10"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_10"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":10}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_11"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_11"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":11}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_12"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_12"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":12}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[13]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_13"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_13"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":13}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[14]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_14"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_14"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":14}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[15]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_15"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_15"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":15}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_16"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_16"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":16}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[17]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_17"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_17"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":17}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[18]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_18"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_18"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":18}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[19]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_19"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_19"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":19}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[20]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_20"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_20"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":20}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[21]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_21"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_21"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":21}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[22]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_22"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_22"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":22}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[23]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_23"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_23"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":23}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[24]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_24"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_24"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":24}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[25]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_25"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_25"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":25}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[26]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_26"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_26"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":26}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[27]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_27"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_27"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":27}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[28]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_28"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_28"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":28}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_29"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_29"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":29}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[30]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_30"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_30"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":30}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_31"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_31"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":31}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_32"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_32"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":32}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[33]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_33"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_33"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":33}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[34]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_34"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_34"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":34}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[35]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_35"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_35"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":35}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[36]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_36"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_36"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":36}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[37]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_37"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_37"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":37}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[38]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_38"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_38"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":38}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[39]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_39"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_39"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":39}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[40]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_40"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_40"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":40}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[41]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_41"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_41"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":41}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[42]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_42"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_42"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":42}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[43]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_43"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_43"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":43}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[44]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_44"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_44"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":44}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[45]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_45"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_45"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":45}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[46]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_46"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_46"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":46}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[47]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_47"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_47"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":47}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[48]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_48"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_48"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":48}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[49]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_49"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_49"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":49}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[50]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_50"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_50"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":50}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[51]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_51"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_51"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":51}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[52]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_52"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_52"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":52}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[53]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_53"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_53"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":53}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[54]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_54"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_54"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":54}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[55]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_55"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_55"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":55}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[56]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_56"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_56"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":56}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[57]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_57"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_57"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":57}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[58]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_58"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_58"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":58}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[59]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_59"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_59"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":59}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[60]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_60"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_60"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":60}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[61]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_61"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_61"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":61}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[62]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_62"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_62"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":62}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_63"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_63"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":63}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_signed_64"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"hex_bits_signed_64"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_signed"},[{"MP_tuple":[[{"MP_lit":[{"L_num":64}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/hex_bits_signed.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/dec_bits.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"string"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"parse_dec_bits"},{"pure":true,"bindings":[["_","parse_dec_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_dec_bits"},{"pure":true,"bindings":[["_","valid_dec_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_tuple":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"string"}]}]]}]}]},{"Id":"dec_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dec_bits_forwards"},{"Pat_exp":[{"P_id":[{"Id":"bv"}]},{"E_tuple":[[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"bv"}]}]]},{"E_app":[{"Id":"dec_str"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"bv"}]}]]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dec_bits_forwards_matches"},{"Pat_exp":[{"P_id":[{"Id":"bv"}]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dec_bits_backwards"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"str"}]}]]},{"E_app":[{"Id":"parse_dec_bits"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"str"}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dec_bits_backwards_matches"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"str"}]}]]},{"E_app":[{"Id":"valid_dec_bits"},[{"E_id":[{"Id":"n"}]},{"E_id":[{"Id":"str"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":1}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_2"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_2"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":2}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_3"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_3"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":3}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_4"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_4"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":4}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_5"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_5"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":5}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":6}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_7"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_7"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":7}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_8"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_8"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":8}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[9]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_9"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_9"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":9}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_10"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_10"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":10}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"dec_bits_32"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"dec_bits_32"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"dec_bits"},[{"MP_tuple":[[{"MP_lit":[{"L_num":32}]},{"MP_id":[{"Id":"s"}]}]]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/dec_bits.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bit"}]}],{"Typ_id":[{"Id":"bit"}]}]}]},{"Id":"not_bit"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"not_bit"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"bit"}]},{"P_id":[{"Id":"b"}]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_id":[{"Id":"b"}]},{"E_lit":["L_one"]}]]},{"E_lit":["L_zero"]},{"E_lit":["L_one"]}]}]}]}]]}},{"DEF_overload":[{"Id":"~"},[{"Id":"not_bool"},{"Id":"not_vec"},{"Id":"not_bit"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_bool",{"Var":"'p"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'p"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_app":[{"Id":"not"},[{"A_bool":[{"NC_var":[{"Var":"'p"}]}]}]]}]}]]}]}]},{"Id":"not"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"not"},{"Pat_exp":[{"P_id":[{"Id":"b"}]},{"E_app":[{"Id":"not_bool"},[{"E_id":[{"Id":"b"}]}]]}]}]}]]}},{"DEF_overload":[{"Operator":"&"},[{"Id":"and_vec"}]]},{"DEF_overload":[{"Operator":"|"},[{"Id":"or_vec"}]]},{"DEF_overload":[{"Operator":"^"},[{"Id":"xor_vec"},{"Id":"concat_str"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sub_vec"},{"pure":true,"bindings":[["c","sub_bits"],["lean","_lean_sub"],["_","sub_vec"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"sub_vec_int"},{"pure":true,"bindings":[["c","sub_bits_int"],["lean","BitVec.subInt"],["_","sub_vec_int"]]}]}},{"DEF_overload":[{"Operator":"-"},[{"Id":"sub_vec"},{"Id":"sub_vec_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_app":[{"Id":"div"},[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]]}]}]]}]}]},{"Id":"quot_positive_round_zero"},{"pure":true,"bindings":[["interpreter","quot_round_zero"],["lem","hardware_quot"],["lean","Int.tdiv"],["c","tdiv_int"],["coq","Z.quot"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_not_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"quot_round_zero"},{"pure":true,"bindings":[["interpreter","quot_round_zero"],["lem","hardware_quot"],["c","tdiv_int"],["coq","Z.quot"],["lean","Int.tdiv"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_app":[{"Id":"mod"},[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]]}]}]]}]}]},{"Id":"rem_positive_round_zero"},{"pure":true,"bindings":[["interpreter","rem_round_zero"],["lem","hardware_mod"],["c","tmod_int"],["coq","Z.rem"],["lean","Int.tmod"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_not_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"rem_round_zero"},{"pure":true,"bindings":[["interpreter","rem_round_zero"],["lem","hardware_mod"],["c","tmod_int"],["coq","Z.rem"],["lean","Int.tmod"]]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"nat1"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]}},{"DEF_overload":[{"Id":"min"},[{"Id":"min_int"}]]},{"DEF_overload":[{"Id":"max"},[{"Id":"max_int"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_string"},{"pure":true,"bindings":[["_","print_string"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_log"},{"pure":true,"bindings":[["interpreter","print_endline"],["c","print_log"],["lem","print_dbg"],["_","print_endline"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_log_instr"},{"pure":true,"bindings":[["c","print_log_instr"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"print_log_instr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"message"}]},{"P_id":[{"Id":"pc"}]}]]},{"E_app":[{"Id":"print_log"},[{"E_id":[{"Id":"message"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_step"},{"pure":true,"bindings":[["c","print_step"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"print_step"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"get_config_print_instr"},{"pure":true,"bindings":[["c","get_config_print_instr"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"get_config_print_platform"},{"pure":true,"bindings":[["c","get_config_print_platform"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"get_config_rvfi"},{"pure":true,"bindings":[["c","get_config_rvfi"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"get_config_use_abi_names"},{"pure":true,"bindings":[["c","get_config_use_abi_names"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_config_print_instr"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_false"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_config_print_platform"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_false"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_config_rvfi"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_false"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_config_use_abi_names"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_false"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"sign_extend"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"zero_extend"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sign_extend"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"m"}]},{"P_id":[{"Id":"v"}]}]]},{"E_app":[{"Id":"sail_sign_extend"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"m"}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zero_extend"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"m"}]},{"P_id":[{"Id":"v"}]}]]},{"E_app":[{"Id":"sail_zero_extend"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"m"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"zeros"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zeros"},{"Pat_exp":[{"P_id":[{"Id":"n"}]},{"E_app":[{"Id":"sail_zeros"},[{"E_id":[{"Id":"n"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"ones"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ones"},{"Pat_exp":[{"P_id":[{"Id":"n"}]},{"E_app":[{"Id":"sail_ones"},[{"E_id":[{"Id":"n"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"trunc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"trunc"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"m"}]},{"P_id":[{"Id":"v"}]}]]},{"E_app":[{"Id":"truncate"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"m"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bit"}]}]}]},{"Id":"bool_bit"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"bool_bit"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_true"]}]},{"MPat_pat":[{"MP_lit":["L_one"]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_false"]}]},{"MPat_pat":[{"MP_lit":["L_zero"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"bool_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"bool_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_true"]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_false"]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bit"}]}]}]},{"Id":"bool_to_bit"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bool_to_bit"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bool_bit_forwards"},[{"E_id":[{"Id":"x"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"bit_to_bool"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bit_to_bool"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"bit"}]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bool_bit_backwards"},[{"E_id":[{"Id":"x"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"bool_to_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bool_to_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bool_bits_forwards"},[{"E_id":[{"Id":"x"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"bits_to_bool"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bits_to_bool"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bool_bits_backwards"},[{"E_id":[{"Id":"x"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"bit_to_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bit_to_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"bit"}]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bool_bits_forwards"},[{"E_app":[{"Id":"bit_to_bool"},[{"E_id":[{"Id":"x"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"bit"}]}]}]},{"Id":"bits_to_bit"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bits_to_bit"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_app":[{"Id":"bits_to_bool"},[{"E_id":[{"Id":"x"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'l"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'x"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]},{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'x"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'x"}]},{"Nexp_exp":[{"Nexp_var":[{"Var":"'l"}]}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'x"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]}]}]},{"Id":"to_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"to_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"l"}]},{"P_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"l"}]},{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'l"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]}]}]},{"Id":"to_bits_checked"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"to_bits_checked"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"l"}]},{"P_id":[{"Id":"n"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"bv"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"l"}]},{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"bv"}]}]]},{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Couldn't convert integer "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" to "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"l"}]}]]},{"E_lit":[{"L_string":" bits without overflow."}]}]]}]]}]]}]]}]},{"E_id":[{"Id":"bv"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'l"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]}]}]},{"Id":"to_bits_truncate"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"to_bits_truncate"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"l"}]},{"P_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"l"}]},{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'l"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'l"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'l"}]}]}]]}]}]},{"Id":"to_bits_unsafe"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"to_bits_unsafe"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"l"}]},{"P_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"l"}]},{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_fixity":["Infix",4,{"Id":"<_s"}]},{"DEF_fixity":["Infix",4,{"Id":">_s"}]},{"DEF_fixity":["Infix",4,{"Id":"<=_s"}]},{"DEF_fixity":["Infix",4,{"Id":">=_s"}]},{"DEF_fixity":["Infix",4,{"Id":"<_u"}]},{"DEF_fixity":["Infix",4,{"Id":">_u"}]},{"DEF_fixity":["Infix",4,{"Id":"<=_u"}]},{"DEF_fixity":["Infix",4,{"Id":">=_u"}]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":"<_s"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":">_s"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":"<=_s"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":">=_s"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":"<_u"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":">_u"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":"<=_u"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":">=_u"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":"<_s"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":">_s"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":"<=_s"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":">=_s"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":"<_u"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":">_u"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":"<=_u"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":">=_u"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"y"}]}]]}]]}]}]}]]}},{"DEF_fixity":["Infix",1,{"Id":"==>"}]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Operator":"==>"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Operator":"==>"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"x"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"y"}]}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"x"}]}]]},{"E_id":[{"Id":"y"}]}]]}]}]}]]}},{"DEF_fixity":["Infix",7,{"Id":">>"}]},{"DEF_fixity":["Infix",7,{"Id":"<<"}]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"shift_bits_right"},{"pure":true,"bindings":[["_","shift_bits_right"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"shift_bits_left"},{"pure":true,"bindings":[["_","shift_bits_left"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"shiftl"},{"pure":true,"bindings":[["_","shiftl"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"shiftr"},{"pure":true,"bindings":[["_","shiftr"]]}]}},{"DEF_overload":[{"Operator":">>"},[{"Id":"shift_bits_right"},{"Id":"shiftr"}]]},{"DEF_overload":[{"Operator":"<<"},[{"Id":"shift_bits_left"},{"Id":"shiftl"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"shift_right_arith"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"shift_right_arith"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"value"}]}]]},{"E_id":[{"Id":"shift"}]}]]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"value"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"shift"}]}]]},{"E_id":[{"Id":"shift"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"shift_bits_right_arith"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"shift_bits_right_arith"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"shift_right_arith"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"shift"}]}]]}]]}]}]}]]}},{"DEF_fixity":["Infix",7,{"Id":">>>"}]},{"DEF_fixity":["Infix",7,{"Id":"<<<"}]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"rotater"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rotater"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"value"}]},{"E_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"value"}]}]]},{"E_id":[{"Id":"shift"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"rotatel"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rotatel"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"value"}]},{"E_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"value"}]}]]},{"E_id":[{"Id":"shift"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_exp":[{"Nexp_var":[{"Var":"'n"}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"rotate_bits_right"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rotate_bits_right"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"shift"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_exp":[{"Nexp_var":[{"Var":"'n"}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"rotate_bits_left"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rotate_bits_left"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"shift"}]}]]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"shift"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Operator":">>>"},[{"Id":"rotate_bits_right"},{"Id":"rotater"}]]},{"DEF_overload":[{"Operator":"<<<"},[{"Id":"rotate_bits_left"},{"Id":"rotatel"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"reverse_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reverse_bits"},{"Pat_exp":[{"P_id":[{"Id":"xs"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"ys"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xs"}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"ys"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"ys"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"xs"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"ys"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]}]},{"E_id":[{"Id":"ys"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Operator":"*"},[{"Id":"mult_atom"},{"Id":"mult_int"}]]},{"DEF_overload":[{"Operator":"/"},[{"Id":"quot_positive_round_zero"}]]},{"DEF_overload":[{"Operator":"%"},[{"Id":"rem_positive_round_zero"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8,16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"log2"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"log2"},{"Pat_exp":[{"P_id":[{"Id":"n"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"n"}]},[{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":[{"L_num":6}]}]}]]}]},{"E_block":[[{"E_id":[{"Id":"result"}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"max_mem_access"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_constant":[4096]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"mem_access_width"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[1]}]},{"A_nexp":[{"Nexp_id":[{"Id":"max_mem_access"}]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"sys_enable_experimental_extensions"},{"pure":true,"bindings":[["_","sys_enable_experimental_extensions"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"hex_bits_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hex_bits_str"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":3}]},{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]}]]},{"E_id":[{"Id":"x"}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/prelude.sail"]},{"DEF_pragma":["file_start","core/errors.sail"]},{"DEF_type":{"TD_variant":[{"Id":"exception"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"string"}]},{"Id":"Error_not_implemented"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"Error_internal_error"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_var":[{"Var":"'a"}]}]}]},{"Id":"not_implemented"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"not_implemented"},{"Pat_exp":[{"P_id":[{"Id":"message"}]},{"E_throw":[{"E_app":[{"Id":"Error_not_implemented"},[{"E_id":[{"Id":"message"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"string"}]}],{"Typ_var":[{"Var":"'a"}]}]}]},{"Id":"internal_error"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"internal_error"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"file"}]},{"P_id":[{"Id":"line"}]},{"P_id":[{"Id":"s"}]}]]},{"E_block":[[{"E_assert":[{"E_lit":["L_false"]},{"E_app":[{"Id":"concat_str"},[{"E_id":[{"Id":"file"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":":"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"line"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":": "}]},{"E_id":[{"Id":"s"}]}]]}]]}]]}]]}]},{"E_exit":[{"E_lit":["L_unit"]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/errors.sail"]},{"DEF_pragma":["file_start","core/xlen.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"xlen"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_constant":[64]}]}]}},{"DEF_constraint":{"NC_set":[{"Nexp_id":[{"Id":"xlen"}]},[32,64]]}},{"DEF_type":{"TD_abbrev":[{"Id":"log2_xlen"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[5]},{"Nexp_constant":[6]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"xlen_bytes"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[4]},{"Nexp_constant":[8]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"physaddrbits_len"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"asidlen"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"log2_xlen"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":6}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"xlen_bytes"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":8}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"asidlen"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":16}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"xlenbits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"asidbits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"asidlen"}]}]}]]}]}]}},{"DEF_pragma":["file_end","core/xlen.sail"]},{"DEF_pragma":["file_start","core/flen.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"ext_d_supported"},{"TypQ_no_forall":[]},{"A_bool":["NC_true"]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"flen_bytes"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_if":[{"NC_id":[{"Id":"ext_d_supported"}]},{"Nexp_constant":[8]},{"Nexp_constant":[4]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"flen"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_times":[{"Nexp_id":[{"Id":"flen_bytes"}]},{"Nexp_constant":[8]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"flenbits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"flen"}]}]}]]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"flen_bytes"}]},{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"flen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]}]}},{"DEF_pragma":["file_end","core/flen.sail"]},{"DEF_pragma":["file_start","core/vlen.sail"]},{"DEF_type":{"TD_enum":[{"Id":"vector_support"},[{"Id":"Disabled"},{"Id":"Integer"},{"Id":"Float_single"},{"Id":"Float_double"},{"Id":"Full"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vector_support"}]}]}]},{"Id":"undefined_vector_support"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vector_support"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"Disabled"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vector_support"}]}]}]},{"Id":"vector_support_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vector_support_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"Disabled"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"Integer"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"Float_single"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"Float_double"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"Full"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vector_support"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vector_support"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vector_support"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"Disabled"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"Integer"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"Float_single"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"Float_double"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"Full"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vector_support"}]},{"Typ_id":[{"Id":"nat"}]}]}]},{"Id":"vector_support_level"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vector_support_level"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Disabled"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":0}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Integer"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Float_single"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Float_double"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":3}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Full"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"vector_support_config"}]},{"E_typ":[{"Typ_id":[{"Id":"vector_support"}]},{"E_id":[{"Id":"Float_single"}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"vector_support_config"}]}]]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"vlen_exp"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_constant":[7]}]}]}},{"DEF_constraint":{"NC_and":[{"NC_le":[{"Nexp_constant":[3]},{"Nexp_id":[{"Id":"vlen_exp"}]}]},{"NC_le":[{"Nexp_id":[{"Id":"vlen_exp"}]},{"Nexp_constant":[16]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"elen_exp"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_constant":[5]}]}]}},{"DEF_constraint":{"NC_and":[{"NC_and":[{"NC_le":[{"Nexp_constant":[3]},{"Nexp_id":[{"Id":"elen_exp"}]}]},{"NC_le":[{"Nexp_id":[{"Id":"elen_exp"}]},{"Nexp_constant":[16]}]}]},{"NC_le":[{"Nexp_id":[{"Id":"elen_exp"}]},{"Nexp_id":[{"Id":"vlen_exp"}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"vlen_exp"}]},{"E_lit":[{"L_num":7}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"elen_exp"}]},{"E_lit":[{"L_num":5}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"vlen"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_exp":[{"Nexp_id":[{"Id":"vlen_exp"}]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"elen"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_exp":[{"Nexp_id":[{"Id":"elen_exp"}]}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"vlen"}]},{"E_app":[{"Id":"pow2"},[{"E_lit":[{"L_num":7}]}]]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"elen"}]},{"E_app":[{"Id":"pow2"},[{"E_lit":[{"L_num":5}]}]]}]}},{"DEF_pragma":["file_end","core/vlen.sail"]},{"DEF_pragma":["file_start","core/prelude_mem_addrtype.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"physaddrbits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"physaddrbits_len"}]}]}]]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"physaddrbits_len"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]}]}},{"DEF_type":{"TD_variant":[{"Id":"physaddr"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"physaddrbits"}]},{"Id":"Physaddr"}]}],true]}},{"DEF_type":{"TD_variant":[{"Id":"virtaddr"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"Virtaddr"}]}],true]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]}]}]},{"Id":"bits_of_physaddr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bits_of_physaddr"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"paddr"}]}]]}]},{"E_id":[{"Id":"paddr"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"bits_of_virtaddr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bits_of_virtaddr"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"virtaddr"}]},{"P_app":[{"Id":"Virtaddr"},[{"P_id":[{"Id":"vaddr"}]}]]}]},{"E_id":[{"Id":"vaddr"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"virtaddr"}]}]}]},{"Id":"sub_virtaddr_xlenbits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sub_virtaddr_xlenbits"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"virtaddr"}]},{"P_app":[{"Id":"Virtaddr"},[{"P_id":[{"Id":"addr"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"offset"}]}]}]]},{"E_app":[{"Id":"Virtaddr"},[{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"offset"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Operator":"-"},[{"Id":"sub_virtaddr_xlenbits"}]]},{"DEF_overload":[{"Id":"bits_of"},[{"Id":"bits_of_physaddr"},{"Id":"bits_of_virtaddr"}]]},{"DEF_pragma":["file_end","core/prelude_mem_addrtype.sail"]},{"DEF_pragma":["file_start","core/prelude_mem_metadata.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"mem_meta"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"mem_meta"}]},{"P_id":[{"Id":"default_meta"}]}]},{"E_lit":["L_unit"]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[1]}]},{"A_nexp":[{"Nexp_constant":[4096]}]}]]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"__WriteRAM_Meta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"__WriteRAM_Meta"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"mem_access_width"}]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"mem_meta"}]},{"P_id":[{"Id":"meta"}]}]}]]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[1]}]},{"A_nexp":[{"Nexp_constant":[4096]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"__ReadRAM_Meta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"__ReadRAM_Meta"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"mem_access_width"}]},{"P_id":[{"Id":"width"}]}]}]]},{"E_id":[{"Id":"default_meta"}]}]}]}]]}},{"DEF_pragma":["file_end","core/prelude_mem_metadata.sail"]},{"DEF_pragma":["file_start","core/prelude_mem.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/read_write.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/read_write_v1.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/common.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_pragma":["target_set","emulator_or_isla isla c cpp ocaml interpreter systemverilog"]},{"DEF_pragma":["target_set","emulator c cpp ocaml interpreter systemverilog"]},{"DEF_pragma":["target_set","prover lem coq lean"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/result.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_pragma":["option","-lem_extern_type result"]},{"DEF_pragma":["option","-coq_extern_type result"]},{"DEF_pragma":["option","-lean_extern_type result"]},{"DEF_type":{"TD_variant":[{"Id":"result"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'b"}]}]}]]},[{"Tu_ty_id":[{"Typ_var":[{"Var":"'a"}]},{"Id":"Ok"}]},{"Tu_ty_id":[{"Typ_var":[{"Var":"'b"}]},{"Id":"Err"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'b"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'b"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_ok"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_ok"},{"Pat_exp":[{"P_id":[{"Id":"r"}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_wild":[]}]]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'b"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'b"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_err"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_err"},{"Pat_exp":[{"P_id":[{"Id":"r"}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'b"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'b"}]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}]}]},{"Id":"ok_option"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ok_option"},{"Pat_exp":[{"P_id":[{"Id":"r"}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"x"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_wild":[]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'b"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'b"}]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_var":[{"Var":"'b"}]}]}]]}]}]},{"Id":"err_option"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"err_option"},{"Pat_exp":[{"P_id":[{"Id":"r"}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"err"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"err"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'b"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'b"}]}]}]]},{"Typ_var":[{"Var":"'a"}]}],{"Typ_var":[{"Var":"'a"}]}]}]},{"Id":"unwrap_or"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"unwrap_or"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r"}]},{"P_id":[{"Id":"y"}]}]]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"x"}]}]]},{"E_id":[{"Id":"x"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_wild":[]}]]},{"E_id":[{"Id":"y"}]}]}]]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/result.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/emulator_memory.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]},{"Id":"read_mem#"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]},{"Id":"read_mem_ifetch#"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]},{"Id":"read_mem_exclusive#"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"write_mem#"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]}]]},{"Typ_fn":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"write_mem_exclusive#"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"read_tag#"},{"pure":false,"bindings":[["_","emulator_read_tag"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_tag#"},{"pure":false,"bindings":[["_","emulator_write_tag"]]}]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/emulator_memory.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_instr_announce"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_instr_announce"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_branch_announce"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_branch_announce"},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_end_cycle"},{"pure":false,"bindings":[["_","cycle_count"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"sail_get_cycle_count"},{"pure":false,"bindings":[["_","get_cycle_count"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_reset_registers"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_reset_registers"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_synchronize_registers"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_synchronize_registers"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_mark_register"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_mark_register"},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'b"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]},{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_var":[{"Var":"'b"}]}]}]]},{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_mark_register_pair"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_mark_register_pair"},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_ignore_write_to"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_ignore_write_to"},{"Pat_exp":[{"P_id":[{"Id":"reg"}]},{"E_app":[{"Id":"sail_mark_register"},[{"E_id":[{"Id":"reg"}]},{"E_lit":[{"L_string":"ignore_write"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_pick_dependency"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_pick_dependency"},{"Pat_exp":[{"P_id":[{"Id":"reg"}]},{"E_app":[{"Id":"sail_mark_register"},[{"E_id":[{"Id":"reg"}]},{"E_lit":[{"L_string":"pick"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"__monomorphize"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"__monomorphize_int"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_bool",{"Var":"'b"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'b"}]}]}]]}],{"Typ_app":[{"Id":"atom_bool"},[{"A_bool":[{"NC_var":[{"Var":"'b"}]}]}]]}]}]},{"Id":"__monomorphize_bool"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"__monomorphize"},{"Pat_exp":[{"P_id":[{"Id":"bv"}]},{"E_id":[{"Id":"bv"}]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"__monomorphize_int"},{"Pat_exp":[{"P_id":[{"Id":"n"}]},{"E_id":[{"Id":"n"}]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"__monomorphize_bool"},{"Pat_exp":[{"P_id":[{"Id":"b"}]},{"E_id":[{"Id":"b"}]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/common.sail"]},{"DEF_pragma":["option","-lem_extern_type Access_variety"]},{"DEF_pragma":["option","-coq_extern_type Access_variety"]},{"DEF_pragma":["option","-lean_extern_type Access_variety"]},{"DEF_type":{"TD_enum":[{"Id":"Access_variety"},[{"Id":"AV_plain"},{"Id":"AV_exclusive"},{"Id":"AV_atomic_rmw"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Access_variety"}]}]}]},{"Id":"undefined_Access_variety"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Access_variety"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"AV_plain"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"Access_variety"}]}]}]},{"Id":"Access_variety_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Access_variety_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"AV_plain"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"AV_exclusive"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AV_atomic_rmw"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Access_variety"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_Access_variety"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_Access_variety"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"AV_plain"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"AV_exclusive"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"AV_atomic_rmw"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_pragma":["option","-lem_extern_type Access_strength"]},{"DEF_pragma":["option","-coq_extern_type Access_strength"]},{"DEF_pragma":["option","-lean_extern_type Access_strength"]},{"DEF_type":{"TD_enum":[{"Id":"Access_strength"},[{"Id":"AS_normal"},{"Id":"AS_rel_or_acq"},{"Id":"AS_acq_rcpc"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Access_strength"}]}]}]},{"Id":"undefined_Access_strength"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Access_strength"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"AS_normal"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"Access_strength"}]}]}]},{"Id":"Access_strength_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Access_strength_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"AS_normal"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"AS_rel_or_acq"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AS_acq_rcpc"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Access_strength"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_Access_strength"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_Access_strength"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"AS_normal"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"AS_rel_or_acq"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"AS_acq_rcpc"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_pragma":["option","-lem_extern_type Explicit_access_kind"]},{"DEF_pragma":["option","-coq_extern_type Explicit_access_kind"]},{"DEF_pragma":["option","-lean_extern_type Explicit_access_kind"]},{"DEF_type":{"TD_record":[{"Id":"Explicit_access_kind"},{"TypQ_tq":[[]]},[[{"Typ_id":[{"Id":"Access_variety"}]},{"Id":"variety"}],[{"Typ_id":[{"Id":"Access_strength"}]},{"Id":"strength"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Explicit_access_kind"}]}]}]},{"Id":"undefined_Explicit_access_kind"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Explicit_access_kind"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"strength"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_pragma":["option","-lem_extern_type Access_kind"]},{"DEF_pragma":["option","-coq_extern_type Access_kind"]},{"DEF_pragma":["option","-lean_extern_type Access_kind"]},{"DEF_type":{"TD_variant":[{"Id":"Access_kind"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]}]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"Explicit_access_kind"}]},{"Id":"AK_explicit"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"AK_ifetch"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"AK_ttw"}]},{"Tu_ty_id":[{"Typ_var":[{"Var":"'arch_ak"}]},{"Id":"AK_arch"}]}],false]}},{"DEF_pragma":["option","-lem_extern_type Mem_read_request"]},{"DEF_pragma":["option","-coq_extern_type Mem_read_request"]},{"DEF_pragma":["option","-lean_extern_type Mem_read_request"]},{"DEF_type":{"TD_record":[{"Id":"Mem_read_request"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'vasize"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'pa"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'ts"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'vasize"}]},{"Nexp_constant":[0]}]}]}]}]]},[[{"Typ_app":[{"Id":"Access_kind"},[{"A_typ":[{"Typ_var":[{"Var":"'arch_ak"}]}]}]]},{"Id":"access_kind"}],[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'vasize"}]}]}]]}]}]]},{"Id":"va"}],[{"Typ_var":[{"Var":"'pa"}]},{"Id":"pa"}],[{"Typ_var":[{"Var":"'ts"}]},{"Id":"translation"}],[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"size"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"tag"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'vasize"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'pa"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'translation_summary"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'vasize"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"Mem_read_request"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'vasize"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'pa"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'translation_summary"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'arch_ak"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"mem_read_request_is_exclusive"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_read_request_is_exclusive"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"access_kind"}]},[{"Pat_exp":[{"P_app":[{"Id":"AK_explicit"},[{"P_id":[{"Id":"eak"}]}]]},{"E_match":[{"E_field":[{"E_id":[{"Id":"eak"}]},{"Id":"variety"}]},[{"Pat_exp":[{"P_id":[{"Id":"AV_exclusive"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'vasize"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'pa"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'translation_summary"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'vasize"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"Mem_read_request"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'vasize"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'pa"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'translation_summary"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'arch_ak"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"mem_read_request_is_ifetch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_read_request_is_ifetch"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"access_kind"}]},[{"Pat_exp":[{"P_app":[{"Id":"AK_ifetch"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"__monomorphize_reads"}]}]},{"E_lit":["L_false"]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"__monomorphize_writes"}]}]},{"E_lit":["L_false"]}]}},{"DEF_outcome":[{"OV_outcome":[{"Id":"sail_mem_read"},{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'vasize"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'vasize"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"Mem_read_request"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'vasize"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'pa"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'translation_summary"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'arch_ak"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]}]]}]},{"A_typ":[{"Typ_var":[{"Var":"'abort"}]}]}]]}]}]},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'pa"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'translation_summary"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'abort"}]}]}]]}]},[{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_var":[{"Var":"'pa"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'pasize"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'pasize"}]},[32,64]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'pasize"}]}]}]]}]}]}]},{"Id":"pa_bits"},null]}},{"DEF_impl":{"FCL_funcl":[{"Id":"systemverilog"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_id":[{"Id":"__monomorphize_reads"}]}]]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]},{"P_id":[{"Id":"tag"}]}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"mem_read_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]}]}]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"interpreter"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_id":[{"Id":"__monomorphize_reads"}]}]]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]},{"P_id":[{"Id":"tag"}]}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"mem_read_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]}]}]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"ocaml"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_id":[{"Id":"__monomorphize_reads"}]}]]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]},{"P_id":[{"Id":"tag"}]}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"mem_read_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]}]}]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"cpp"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_id":[{"Id":"__monomorphize_reads"}]}]]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]},{"P_id":[{"Id":"tag"}]}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"mem_read_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]}]}]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"c"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_id":[{"Id":"__monomorphize_reads"}]}]]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]},{"P_id":[{"Id":"tag"}]}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"mem_read_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]}]}]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"isla"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_id":[{"Id":"__monomorphize_reads"}]}]]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]},{"P_id":[{"Id":"tag"}]}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"mem_read_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"mem_read_request_is_ifetch"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem_ifetch#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"read_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]}]]},{"E_id":[{"Id":"tag"}]}]]}]]}]]}]}]]}]}]}]]}]}]]}]}]]}]}]]}]}]}}]]},{"DEF_pragma":["option","-lem_extern_type Mem_write_request"]},{"DEF_pragma":["option","-coq_extern_type Mem_write_request"]},{"DEF_pragma":["option","-lean_extern_type Mem_write_request"]},{"DEF_type":{"TD_record":[{"Id":"Mem_write_request"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'vasize"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'pa"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'ts"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'vasize"}]},{"Nexp_constant":[0]}]}]}]}]]},[[{"Typ_app":[{"Id":"Access_kind"},[{"A_typ":[{"Typ_var":[{"Var":"'arch_ak"}]}]}]]},{"Id":"access_kind"}],[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'vasize"}]}]}]]}]}]]},{"Id":"va"}],[{"Typ_var":[{"Var":"'pa"}]},{"Id":"pa"}],[{"Typ_var":[{"Var":"'ts"}]},{"Id":"translation"}],[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"size"}],[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]]},{"Id":"value"}],[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]},{"Id":"tag"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'vasize"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'pa"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'translation_summary"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'vasize"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"Mem_write_request"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'vasize"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'pa"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'translation_summary"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'arch_ak"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"mem_write_request_is_exclusive"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_write_request_is_exclusive"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"access_kind"}]},[{"Pat_exp":[{"P_app":[{"Id":"AK_explicit"},[{"P_id":[{"Id":"eak"}]}]]},{"E_match":[{"E_field":[{"E_id":[{"Id":"eak"}]},{"Id":"variety"}]},[{"Pat_exp":[{"P_id":[{"Id":"AV_exclusive"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]]}]}]}]]}},{"DEF_outcome":[{"OV_outcome":[{"Id":"sail_mem_write"},{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'vasize"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'vasize"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"Mem_write_request"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'vasize"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'pa"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'translation_summary"}]}]},{"A_typ":[{"Typ_var":[{"Var":"'arch_ak"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]}]]}]},{"A_typ":[{"Typ_var":[{"Var":"'abort"}]}]}]]}]}]},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'pa"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'translation_summary"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'arch_ak"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'abort"}]}]}]]}]},[{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_var":[{"Var":"'pa"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'pasize"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'pasize"}]},[32,64]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'pasize"}]}]}]]}]}]}]},{"Id":"pa_bits"},null]}},{"DEF_impl":{"FCL_funcl":[{"Id":"systemverilog"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_id":[{"Id":"__monomorphize_writes"}]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"b"}]}]},{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"value"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"value"}]}]]},{"E_if":[{"E_app":[{"Id":"mem_write_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"tag"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"b"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"interpreter"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_id":[{"Id":"__monomorphize_writes"}]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"b"}]}]},{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"value"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"value"}]}]]},{"E_if":[{"E_app":[{"Id":"mem_write_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"tag"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"b"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"ocaml"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_id":[{"Id":"__monomorphize_writes"}]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"b"}]}]},{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"value"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"value"}]}]]},{"E_if":[{"E_app":[{"Id":"mem_write_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"tag"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"b"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"cpp"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_id":[{"Id":"__monomorphize_writes"}]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"b"}]}]},{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"value"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"value"}]}]]},{"E_if":[{"E_app":[{"Id":"mem_write_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"tag"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"b"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"c"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_id":[{"Id":"__monomorphize_writes"}]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"b"}]}]},{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"value"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"value"}]}]]},{"E_if":[{"E_app":[{"Id":"mem_write_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"tag"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"b"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"isla"},{"Pat_exp":[{"P_id":[{"Id":"request"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_app":[{"Id":"pa_bits"},[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"pa"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pa"}]},{"E_if":[{"E_id":[{"Id":"__monomorphize_writes"}]},{"E_app":[{"Id":"__monomorphize"},[{"E_id":[{"Id":"pa"}]}]]},{"E_id":[{"Id":"pa"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"b"}]}]},{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"value"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"value"}]}]]},{"E_if":[{"E_app":[{"Id":"mem_write_request_is_exclusive"},[{"E_id":[{"Id":"request"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem_exclusive#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_mem#"},[{"E_id":[{"Id":"request"}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"size"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"request"}]},{"Id":"tag"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"tag"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pa"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_tag#"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pa"}]},{"E_id":[{"Id":"tag"}]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"b"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'addrsize"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'addrsize"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'addrsize"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'addrsize"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"sail_address_announce"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sail_address_announce"},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/read_write_v1.sail"]},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/read_write.sail"]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/barrier.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_pragma":["include_start","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/common.sail"]},{"DEF_pragma":["sail_internal",""]},{"DEF_pragma":["target_set","emulator_or_isla isla c cpp ocaml interpreter systemverilog"]},{"DEF_pragma":["target_set","emulator c cpp ocaml interpreter systemverilog"]},{"DEF_pragma":["target_set","prover lem coq lean"]},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/common.sail"]},{"DEF_outcome":[{"OV_outcome":[{"Id":"sail_barrier"},{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_var":[{"Var":"'barrier"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'barrier"}]}]}]]}]},[{"DEF_impl":{"FCL_funcl":[{"Id":"systemverilog"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"interpreter"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"ocaml"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"cpp"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}},{"DEF_impl":{"FCL_funcl":[{"Id":"c"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}}]]},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface/barrier.sail"]},{"DEF_pragma":["include_end","/home/wxrdnx/.opam/5.1.0/bin/../share/sail/lib/concurrency_interface.sail"]},{"DEF_type":{"TD_enum":[{"Id":"write_kind"},[{"Id":"Write_plain"},{"Id":"Write_RISCV_release"},{"Id":"Write_RISCV_strong_release"},{"Id":"Write_RISCV_conditional"},{"Id":"Write_RISCV_conditional_release"},{"Id":"Write_RISCV_conditional_strong_release"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"write_kind"}]}]}]},{"Id":"undefined_write_kind"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_write_kind"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"Write_plain"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"write_kind"}]}]}]},{"Id":"write_kind_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_kind_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"Write_plain"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"Write_RISCV_release"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"Write_RISCV_strong_release"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"Write_RISCV_conditional"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"Write_RISCV_conditional_release"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"Write_RISCV_conditional_strong_release"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"write_kind"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_write_kind"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_write_kind"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"Write_plain"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_release"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_strong_release"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_conditional"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_conditional_release"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_conditional_strong_release"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"read_kind"},[{"Id":"Read_plain"},{"Id":"Read_ifetch"},{"Id":"Read_RISCV_acquire"},{"Id":"Read_RISCV_strong_acquire"},{"Id":"Read_RISCV_reserved"},{"Id":"Read_RISCV_reserved_acquire"},{"Id":"Read_RISCV_reserved_strong_acquire"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"read_kind"}]}]}]},{"Id":"undefined_read_kind"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_read_kind"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"Read_plain"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"read_kind"}]}]}]},{"Id":"read_kind_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_kind_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"Read_plain"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"Read_ifetch"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"Read_RISCV_acquire"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"Read_RISCV_strong_acquire"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"Read_RISCV_reserved"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"Read_RISCV_reserved_acquire"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"Read_RISCV_reserved_strong_acquire"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"read_kind"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_read_kind"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_read_kind"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"Read_plain"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_ifetch"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_acquire"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_strong_acquire"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_reserved"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_reserved_acquire"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_reserved_strong_acquire"}]},{"E_lit":[{"L_num":6}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"barrier_kind"},[{"Id":"Barrier_RISCV_rw_rw"},{"Id":"Barrier_RISCV_r_rw"},{"Id":"Barrier_RISCV_r_r"},{"Id":"Barrier_RISCV_rw_w"},{"Id":"Barrier_RISCV_w_w"},{"Id":"Barrier_RISCV_w_rw"},{"Id":"Barrier_RISCV_rw_r"},{"Id":"Barrier_RISCV_r_w"},{"Id":"Barrier_RISCV_w_r"},{"Id":"Barrier_RISCV_tso"},{"Id":"Barrier_RISCV_i"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"barrier_kind"}]}]}]},{"Id":"undefined_barrier_kind"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_barrier_kind"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"Barrier_RISCV_rw_rw"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[10]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"barrier_kind"}]}]}]},{"Id":"barrier_kind_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"barrier_kind_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"Barrier_RISCV_rw_rw"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"Barrier_RISCV_r_rw"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"Barrier_RISCV_r_r"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"Barrier_RISCV_rw_w"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"Barrier_RISCV_w_w"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"Barrier_RISCV_w_rw"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"Barrier_RISCV_rw_r"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"Barrier_RISCV_r_w"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"Barrier_RISCV_w_r"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"Barrier_RISCV_tso"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"Barrier_RISCV_i"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"barrier_kind"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[10]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_barrier_kind"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_barrier_kind"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_rw_rw"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_r_rw"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_r_r"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_rw_w"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_w_w"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_w_rw"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_rw_r"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_r_w"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_w_r"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_tso"}]},{"E_lit":[{"L_num":9}]}]},{"Pat_exp":[{"P_id":[{"Id":"Barrier_RISCV_i"}]},{"E_lit":[{"L_num":10}]}]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"RISCV_strong_access"},{"TypQ_tq":[[]]},[[{"Typ_id":[{"Id":"Access_variety"}]},{"Id":"variety"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RISCV_strong_access"}]}]}]},{"Id":"undefined_RISCV_strong_access"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RISCV_strong_access"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"physaddrbits_zero_extend"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"physaddrbits_zero_extend"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"xs"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"xs"}]}]]}]}]}]]}},{"DEF_instantiation":[{"IN_id":{"Id":"sail_mem_write"}},[{"IS_typ":[{"Var":"'pa"},{"A_typ":[{"Typ_id":[{"Id":"physaddrbits"}]}]}]},{"IS_id":[{"Id":"pa_bits"},{"Id":"physaddrbits_zero_extend"}]},{"IS_typ":[{"Var":"'translation_summary"},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]},{"IS_typ":[{"Var":"'arch_ak"},{"A_typ":[{"Typ_id":[{"Id":"RISCV_strong_access"}]}]}]},{"IS_typ":[{"Var":"'abort"},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"write_kind"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"write_ram"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_ram"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"wk"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"data"}]},{"P_id":[{"Id":"meta"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"Mem_write_request"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_constant":[64]}]},{"A_typ":[{"Typ_id":[{"Id":"physaddrbits"}]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]},{"A_typ":[{"Typ_id":[{"Id":"RISCV_strong_access"}]}]}]]},{"P_id":[{"Id":"request"}]}]},{"E_struct":[[{"FE_fexp":[{"Id":"access_kind"},{"E_match":[{"E_id":[{"Id":"wk"}]},[{"Pat_exp":[{"P_id":[{"Id":"Write_plain"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_plain"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_normal"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_release"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_plain"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_rel_or_acq"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_strong_release"}]},{"E_app":[{"Id":"AK_arch"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_plain"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_conditional"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_exclusive"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_normal"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_conditional_release"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_exclusive"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_rel_or_acq"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Write_RISCV_conditional_strong_release"}]},{"E_app":[{"Id":"AK_arch"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_exclusive"}]}]}]]}]]}]}]]}]},{"FE_fexp":[{"Id":"va"},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"FE_fexp":[{"Id":"pa"},{"E_id":[{"Id":"addr"}]}]},{"FE_fexp":[{"Id":"translation"},{"E_lit":["L_unit"]}]},{"FE_fexp":[{"Id":"size"},{"E_id":[{"Id":"width"}]}]},{"FE_fexp":[{"Id":"value"},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"data"}]}]]}]},{"FE_fexp":[{"Id":"tag"},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"sail_mem_write"},[{"E_id":[{"Id":"request"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_block":[[{"E_app":[{"Id":"__WriteRAM_Meta"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"meta"}]}]]},{"E_lit":["L_true"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_false"]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"write_kind"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_ram_ea"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_ram_ea"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"wk"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]},{"P_id":[{"Id":"width"}]}]]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_instantiation":[{"IN_id":{"Id":"sail_mem_read"}},[{"IS_id":[{"Id":"pa_bits"},{"Id":"physaddrbits_zero_extend"}]}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"read_kind"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]}]},{"Id":"read_ram"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_ram"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rk"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"read_meta"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"meta"}]},{"E_if":[{"E_id":[{"Id":"read_meta"}]},{"E_app":[{"Id":"__ReadRAM_Meta"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_id":[{"Id":"default_meta"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"Mem_read_request"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_constant":[64]}]},{"A_typ":[{"Typ_id":[{"Id":"physaddrbits"}]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]},{"A_typ":[{"Typ_id":[{"Id":"RISCV_strong_access"}]}]}]]},{"P_id":[{"Id":"request"}]}]},{"E_struct":[[{"FE_fexp":[{"Id":"access_kind"},{"E_match":[{"E_id":[{"Id":"rk"}]},[{"Pat_exp":[{"P_id":[{"Id":"Read_plain"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_plain"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_normal"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_ifetch"}]},{"E_app":[{"Id":"AK_ifetch"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_acquire"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_plain"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_rel_or_acq"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_strong_acquire"}]},{"E_app":[{"Id":"AK_arch"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_plain"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_reserved"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_exclusive"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_normal"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_reserved_acquire"}]},{"E_app":[{"Id":"AK_explicit"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_exclusive"}]}]},{"FE_fexp":[{"Id":"strength"},{"E_id":[{"Id":"AS_rel_or_acq"}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Read_RISCV_reserved_strong_acquire"}]},{"E_app":[{"Id":"AK_arch"},[{"E_struct":[[{"FE_fexp":[{"Id":"variety"},{"E_id":[{"Id":"AV_exclusive"}]}]}]]}]]}]}]]}]},{"FE_fexp":[{"Id":"va"},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"FE_fexp":[{"Id":"pa"},{"E_id":[{"Id":"addr"}]}]},{"FE_fexp":[{"Id":"translation"},{"E_lit":["L_unit"]}]},{"FE_fexp":[{"Id":"size"},{"E_id":[{"Id":"width"}]}]},{"FE_fexp":[{"Id":"tag"},{"E_lit":["L_false"]}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"sail_mem_read"},[{"E_id":[{"Id":"request"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_wild":[]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"value"}]},{"E_id":[{"Id":"meta"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_exit":[{"E_lit":["L_unit"]}]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_instantiation":[{"IN_id":{"Id":"sail_barrier"}},[{"IS_typ":[{"Var":"'barrier"},{"A_typ":[{"Typ_id":[{"Id":"barrier_kind"}]}]}]}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"__TraceMemoryWrite"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"__TraceMemoryRead"},null]}},{"DEF_pragma":["file_end","core/prelude_mem.sail"]},{"DEF_pragma":["file_start","core/arithmetic.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]},{"NC_equal":[{"A_nexp":[{"Nexp_app":[{"Id":"mod"},[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[8]}]]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"brev8"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"brev8"},{"Pat_exp":[{"P_id":[{"Id":"input"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Id":"output"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"input"}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"output"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":8}]},"Ord_inc",{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"output"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"reverse_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"input"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]}]},{"E_id":[{"Id":"output"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[2]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]}]},{"Id":"carryless_mul"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"carryless_mul"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"a"}]},{"P_id":[{"Id":"b"}]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[2]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"b"}]}]]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"b"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"result"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"result"}]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"b"}]}]]}]]},{"E_id":[{"Id":"b"}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"carryless_mulr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"carryless_mulr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"a"}]},{"P_id":[{"Id":"b"}]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"b"}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"result"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"result"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"result"}]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"b"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"carryless_mul_reversed"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"carryless_mul_reversed"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"a"}]},{"P_id":[{"Id":"b"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prod"}]},{"E_app":[{"Id":"carryless_mul"},[{"E_app":[{"Id":"reverse_bits"},[{"E_id":[{"Id":"a"}]}]]},{"E_app":[{"Id":"reverse_bits"},[{"E_id":[{"Id":"b"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"reverse_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"prod"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"b"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"cmulr_equivalence"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cmulr_equivalence"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"a"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"b"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"carryless_mul_reversed"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"b"}]}]]},{"E_app":[{"Id":"carryless_mulr"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"b"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]},{"NC_equal":[{"A_nexp":[{"Nexp_app":[{"Id":"mod"},[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[8]}]]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"rev8"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rev8"},{"Pat_exp":[{"P_id":[{"Id":"input"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Id":"output"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"input"}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"output"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":8}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"output"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"input"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"output"}]}]]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"output"}]}]]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]}]}]]}]},{"E_id":[{"Id":"output"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"count_ones"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"count_ones"},{"Pat_exp":[{"P_id":[{"Id":"x"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"count"}]},{"E_lit":[{"L_num":0}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"new_count"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"count"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"new_count"}]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]}]]},{"E_lit":[{"L_string":"core/arithmetic.sail:67.28-67.29"}]}]},{"E_assign":[{"LE_id":[{"Id":"count"}]},{"E_id":[{"Id":"new_count"}]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_id":[{"Id":"count"}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/arithmetic.sail"]},{"DEF_pragma":["file_start","core/range_util.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[64]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"range_subset"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"range_subset"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"a_begin"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"a_size"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"b_begin"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"b_size"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"a_end"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"a_size"}]}]]},{"E_id":[{"Id":"b_begin"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"b_end"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"b_begin"}]},{"E_id":[{"Id":"b_size"}]}]]},{"E_id":[{"Id":"b_begin"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"a_begin"}]},{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"b_begin"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Operator":"<=_u"},[{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"b_end"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Operator":"<=_u"},[{"E_id":[{"Id":"a_end"}]},{"E_id":[{"Id":"b_end"}]}]]},{"E_app":[{"Operator":"<=_u"},[{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"a_end"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"test_range_subset"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"test_range_subset"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"0"}]}]]},{"E_lit":[{"L_string":"core/range_util.sail:27.41-27.42"}]}]},{"E_assert":[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"1"}]},{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"1"}]},{"E_lit":[{"L_hex":"0"}]}]]},{"E_lit":[{"L_string":"core/range_util.sail:28.41-28.42"}]}]},{"E_assert":[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"1"}]}]]},{"E_lit":[{"L_string":"core/range_util.sail:29.41-29.42"}]}]},{"E_assert":[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"1"}]},{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"1"}]}]]},{"E_lit":[{"L_string":"core/range_util.sail:30.41-30.42"}]}]},{"E_assert":[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"8"}]},{"E_lit":[{"L_hex":"C"}]},{"E_lit":[{"L_hex":"8"}]},{"E_lit":[{"L_hex":"C"}]}]]},{"E_lit":[{"L_string":"core/range_util.sail:31.41-31.42"}]}]},{"E_assert":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"8"}]},{"E_lit":[{"L_hex":"C"}]},{"E_lit":[{"L_hex":"9"}]},{"E_lit":[{"L_hex":"C"}]}]]}]]},{"E_lit":[{"L_string":"core/range_util.sail:32.46-32.47"}]}]},{"E_assert":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"8"}]},{"E_lit":[{"L_hex":"C"}]},{"E_lit":[{"L_hex":"8"}]},{"E_lit":[{"L_hex":"B"}]}]]}]]},{"E_lit":[{"L_string":"core/range_util.sail:33.46-33.47"}]}]},{"E_assert":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"3E"}]},{"E_lit":[{"L_hex":"E0"}]},{"E_lit":[{"L_hex":"C1"}]},{"E_lit":[{"L_hex":"9F"}]}]]}]]},{"E_lit":[{"L_string":"core/range_util.sail:34.50-34.51"}]}]},{"E_assert":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"range_subset"},[{"E_lit":[{"L_hex":"C1"}]},{"E_lit":[{"L_hex":"9F"}]},{"E_lit":[{"L_hex":"3E"}]},{"E_lit":[{"L_hex":"E0"}]}]]}]]},{"E_lit":[{"L_string":"core/range_util.sail:35.50-35.51"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"range_subset_equals"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"range_subset_equals"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"a_begin"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"a_size"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b_begin"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b_size"}]}]}]]},{"E_app":[{"Operator":"==>"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"range_subset"},[{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"a_size"}]},{"E_id":[{"Id":"b_begin"}]},{"E_id":[{"Id":"b_size"}]}]]},{"E_app":[{"Id":"range_subset"},[{"E_id":[{"Id":"b_begin"}]},{"E_id":[{"Id":"b_size"}]},{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"a_size"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"b_begin"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"a_size"}]},{"E_id":[{"Id":"b_size"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"range_subset_precise"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"range_subset_precise"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"a_begin"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"a_size"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b_begin"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b_size"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index_in_a"}]},{"E_app":[{"Operator":"<_u"},[{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"a_begin"}]}]]},{"E_id":[{"Id":"a_size"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index_in_b"}]},{"E_app":[{"Operator":"<_u"},[{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"b_begin"}]}]]},{"E_id":[{"Id":"b_size"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_subset"}]},{"E_app":[{"Id":"range_subset"},[{"E_id":[{"Id":"a_begin"}]},{"E_id":[{"Id":"a_size"}]},{"E_id":[{"Id":"b_begin"}]},{"E_id":[{"Id":"b_size"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Operator":"==>"},[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"is_subset"}]},{"E_id":[{"Id":"index_in_a"}]}]]},{"E_id":[{"Id":"index_in_b"}]}]]},{"E_app":[{"Operator":"==>"},[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"index_in_a"}]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"index_in_b"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"is_subset"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/range_util.sail"]},{"DEF_pragma":["file_start","core/rvfi_dii.sail"]},{"DEF_type":{"TD_record":[{"Id":"RVFI_DII_Instruction_Packet"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]},{"Id":"undefined_RVFI_DII_Instruction_Packet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RVFI_DII_Instruction_Packet"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]},{"Id":"Mk_RVFI_DII_Instruction_Packet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_RVFI_DII_Instruction_Packet"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Instruction_Packet_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Instruction_Packet_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]},{"Id":"_update_RVFI_DII_Instruction_Packet_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Instruction_Packet_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_RVFI_DII_Instruction_Packet_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Instruction_Packet_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Instruction_Packet_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Instruction_Packet_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_RVFI_DII_Instruction_Packet_bits"},{"Id":"_set_RVFI_DII_Instruction_Packet_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Instruction_Packet_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Instruction_Packet_padding"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":56}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]},{"Id":"_update_RVFI_DII_Instruction_Packet_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Instruction_Packet_padding"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":56}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_padding"},[{"Id":"_update_RVFI_DII_Instruction_Packet_padding"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Instruction_Packet_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Instruction_Packet_padding"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Instruction_Packet_padding"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_padding"},[{"Id":"_get_RVFI_DII_Instruction_Packet_padding"},{"Id":"_set_RVFI_DII_Instruction_Packet_padding"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_cmd"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":48}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]},{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_cmd"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":48}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_cmd"},[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_cmd"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_cmd"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_cmd"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_cmd"},[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_cmd"},{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_cmd"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_insn"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]},{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_insn"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_insn"},[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_insn"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_insn"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_insn"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_insn"},[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_insn"},{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_insn"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_time"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_time"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":32}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]},{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_time"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_time"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_time"},[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_time"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_time"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_time"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Instruction_Packet_rvfi_time"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_time"},[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_time"},{"Id":"_set_RVFI_DII_Instruction_Packet_rvfi_time"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"RVFI_DII_Instruction_Packet"}]},{"Id":"rvfi_instruction"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_set_instr_packet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_set_instr_packet"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"p"}]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_instruction"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Instruction_Packet"},[{"E_id":[{"Id":"p"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"rvfi_get_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_cmd"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_cmd"},[{"E_id":[{"Id":"rvfi_instruction"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"rvfi_get_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_insn"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_insn"},[{"E_id":[{"Id":"rvfi_instruction"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_instr_packet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"print_instr_packet"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"bs"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"p"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Instruction_Packet"},[{"E_id":[{"Id":"bs"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"command "}]},{"E_app":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_cmd"},[{"E_id":[{"Id":"p"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"instruction "}]},{"E_app":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_insn"},[{"E_id":[{"Id":"p"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"undefined_RVFI_DII_Execution_Packet_InstMetaData"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RVFI_DII_Execution_Packet_InstMetaData"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"Mk_RVFI_DII_Execution_Packet_InstMetaData"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_RVFI_DII_Execution_Packet_InstMetaData"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":192}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":192}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_bits"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_padding"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":191}]},{"E_lit":[{"L_num":176}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_padding"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":191}]},{"E_lit":[{"L_num":176}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_padding"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_padding"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_padding"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_padding"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_padding"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_padding"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_padding"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":143}]},{"E_lit":[{"L_num":136}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":143}]},{"E_lit":[{"L_num":136}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_halt"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_halt"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_insn"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_insn"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":151}]},{"E_lit":[{"L_num":144}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":151}]},{"E_lit":[{"L_num":144}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_intr"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_intr"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":167}]},{"E_lit":[{"L_num":160}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":167}]},{"E_lit":[{"L_num":160}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_ixl"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_ixl"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_ixl"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":159}]},{"E_lit":[{"L_num":152}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":159}]},{"E_lit":[{"L_num":152}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mode"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mode"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_mode"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_order"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_order"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":135}]},{"E_lit":[{"L_num":128}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":135}]},{"E_lit":[{"L_num":128}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_trap"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_trap"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":175}]},{"E_lit":[{"L_num":168}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":175}]},{"E_lit":[{"L_num":168}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_valid"},[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_valid"},[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"},{"Id":"_set_RVFI_DII_Execution_Packet_InstMetaData_rvfi_valid"}]]},{"DEF_type":{"TD_record":[{"Id":"RVFI_DII_Execution_Packet_PC"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]},{"Id":"undefined_RVFI_DII_Execution_Packet_PC"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RVFI_DII_Execution_Packet_PC"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]},{"Id":"Mk_RVFI_DII_Execution_Packet_PC"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_RVFI_DII_Execution_Packet_PC"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_PC_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_PC_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_PC_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_PC_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_RVFI_DII_Execution_Packet_PC_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_PC_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_PC_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_PC_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_RVFI_DII_Execution_Packet_PC_bits"},{"Id":"_set_RVFI_DII_Execution_Packet_PC_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_pc_rdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_pc_rdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},{"Id":"_set_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_pc_wdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_pc_wdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},{"Id":"_set_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"}]]},{"DEF_type":{"TD_record":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[320]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"undefined_RVFI_DII_Execution_Packet_Ext_Integer"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RVFI_DII_Execution_Packet_Ext_Integer"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[320]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"Mk_RVFI_DII_Execution_Packet_Ext_Integer"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_RVFI_DII_Execution_Packet_Ext_Integer"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[320]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":320}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[320]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":320}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[320]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_bits"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_magic"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_magic"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_magic"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_magic"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_magic"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_magic"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_magic"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_magic"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_magic"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[40]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_padding"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":280}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[40]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_padding"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":280}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_padding"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_padding"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[40]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_padding"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_padding"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_padding"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_padding"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_padding"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_padding"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":263}]},{"E_lit":[{"L_num":256}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":263}]},{"E_lit":[{"L_num":256}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rd_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rd_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rd_wdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rd_wdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":271}]},{"E_lit":[{"L_num":264}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":271}]},{"E_lit":[{"L_num":264}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs1_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs1_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":191}]},{"E_lit":[{"L_num":128}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":191}]},{"E_lit":[{"L_num":128}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs1_rdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs1_rdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":279}]},{"E_lit":[{"L_num":272}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":279}]},{"E_lit":[{"L_num":272}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs2_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs2_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":255}]},{"E_lit":[{"L_num":192}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":255}]},{"E_lit":[{"L_num":192}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs2_rdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs2_rdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"}]]},{"DEF_type":{"TD_record":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"undefined_RVFI_DII_Execution_Packet_Ext_MemAccess"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RVFI_DII_Execution_Packet_Ext_MemAccess"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"Mk_RVFI_DII_Execution_Packet_Ext_MemAccess"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_RVFI_DII_Execution_Packet_Ext_MemAccess"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":704}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":704}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_magic"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_magic"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":703}]},{"E_lit":[{"L_num":640}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":703}]},{"E_lit":[{"L_num":640}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[256]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[256]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_rdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[256]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_rdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":607}]},{"E_lit":[{"L_num":576}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":607}]},{"E_lit":[{"L_num":576}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_rmask"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_rmask"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[256]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":575}]},{"E_lit":[{"L_num":320}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[256]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":575}]},{"E_lit":[{"L_num":320}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_wdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[256]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_wdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":639}]},{"E_lit":[{"L_num":608}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":639}]},{"E_lit":[{"L_num":608}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_wmask"},[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_wmask"},[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},{"Id":"_set_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_InstMetaData"}]},{"Id":"rvfi_inst_data"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_PC"}]},{"Id":"rvfi_pc_data"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_Integer"}]},{"Id":"rvfi_int_data"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"bool"}]},{"Id":"rvfi_int_data_present"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_Ext_MemAccess"}]},{"Id":"rvfi_mem_data"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"bool"}]},{"Id":"rvfi_mem_data_present"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_zero_exec_packet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_zero_exec_packet"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Execution_Packet_InstMetaData"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":192}]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_pc_data"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Execution_Packet_PC"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":128}]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_int_data"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Execution_Packet_Ext_Integer"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":320}]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_int_data"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_Integer_magic"},[{"E_id":[{"Id":"rvfi_int_data"}]},{"E_lit":[{"L_hex":"617461642D746E69"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_int_data_present"}]},{"E_lit":["L_false"]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Execution_Packet_Ext_MemAccess"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":704}]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_Ext_MemAccess_magic"},[{"E_id":[{"Id":"rvfi_mem_data"}]},{"E_lit":[{"L_hex":"617461642D6D656D"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data_present"}]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_halt_exec_packet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_halt_exec_packet"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":143}]},{"E_lit":[{"L_num":136}]}]},{"E_lit":[{"L_hex":"01"}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[320]}]}]]}]}]},{"Id":"rvfi_get_int_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_int_data"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assert":[{"E_id":[{"Id":"rvfi_int_data_present"}]},{"E_lit":[{"L_string":"reading uninitialized data"}]}]},{"E_return":[{"E_field":[{"E_id":[{"Id":"rvfi_int_data"}]},{"Id":"bits"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}]}]},{"Id":"rvfi_get_mem_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_mem_data"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assert":[{"E_id":[{"Id":"rvfi_mem_data_present"}]},{"E_lit":[{"L_string":"reading uninitialized data"}]}]},{"E_return":[{"E_field":[{"E_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[32]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"rvfi_encode_width_mask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_encode_width_mask"},{"Pat_exp":[{"P_id":[{"Id":"width"}]},{"E_app":[{"Id":"shiftr"},[{"E_lit":[{"L_hex":"FFFFFFFF"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"width"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"print_rvfi_exec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"print_rvfi_exec"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_intr : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_halt : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_trap : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_rd_addr : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_rs2_addr : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_rs1_addr : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_mem_wmask: "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_mem_rmask: "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_mem_wdata: "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_mem_rdata: "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_mem_addr : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_rd_wdata : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_rs2_data : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_rs1_data : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_insn : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_pc_wdata : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},[{"E_id":[{"Id":"rvfi_pc_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_pc_rdata : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},[{"E_id":[{"Id":"rvfi_pc_data"}]}]]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"rvfi_order : "}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_write"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_write"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":703}]},{"E_lit":[{"L_num":640}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"paddr"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data_present"}]},{"E_lit":["L_true"]}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":16}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":575}]},{"E_lit":[{"L_num":320}]}]},{"E_app":[{"Id":"sail_zero_extend"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":256}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":639}]},{"E_lit":[{"L_num":608}]}]},{"E_app":[{"Id":"rvfi_encode_width_mask"},[{"E_id":[{"Id":"width"}]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/rvfi_dii.sail"}]},{"E_lit":[{"L_num":214}]},{"E_lit":[{"L_string":"Expected at most 16 bytes here!"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_read"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_read"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":703}]},{"E_lit":[{"L_num":640}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"paddr"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data_present"}]},{"E_lit":["L_true"]}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":16}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":64}]}]},{"E_app":[{"Id":"sail_zero_extend"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":256}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":607}]},{"E_lit":[{"L_num":576}]}]},{"E_app":[{"Id":"rvfi_encode_width_mask"},[{"E_id":[{"Id":"width"}]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/rvfi_dii.sail"}]},{"E_lit":[{"L_num":227}]},{"E_lit":[{"L_string":"Expected at most 16 bytes here!"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_mem_exception"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_mem_exception"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"paddr"}]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":703}]},{"E_lit":[{"L_num":640}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"paddr"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data_present"}]},{"E_lit":["L_true"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_lt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[32]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_wX"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_wX"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_int_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"v"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_int_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":263}]},{"E_lit":[{"L_num":256}]}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"r"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_int_data_present"}]},{"E_lit":["L_true"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"rvfi_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_trap"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":135}]},{"E_lit":[{"L_num":128}]}]},{"E_lit":[{"L_hex":"01"}]}]}]}]}]]}},{"DEF_pragma":["file_end","core/rvfi_dii.sail"]},{"DEF_pragma":["file_start","core/rvfi_dii_v1.sail"]},{"DEF_type":{"TD_record":[{"Id":"RVFI_DII_Execution_Packet_V1"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"undefined_RVFI_DII_Execution_Packet_V1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RVFI_DII_Execution_Packet_V1"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"Mk_RVFI_DII_Execution_Packet_V1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_RVFI_DII_Execution_Packet_V1"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":704}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":704}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_bits"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_halt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_halt"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":695}]},{"E_lit":[{"L_num":688}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_halt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_halt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":695}]},{"E_lit":[{"L_num":688}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_halt"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_halt"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_halt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_halt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_halt"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_halt"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_halt"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_halt"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_insn"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":255}]},{"E_lit":[{"L_num":192}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_insn"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":255}]},{"E_lit":[{"L_num":192}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_insn"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_insn"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_insn"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_insn"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_insn"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_insn"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_insn"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_intr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_intr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":703}]},{"E_lit":[{"L_num":696}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_intr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_intr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":703}]},{"E_lit":[{"L_num":696}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_intr"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_intr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_intr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_intr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_intr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_intr"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_intr"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_intr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":511}]},{"E_lit":[{"L_num":448}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":511}]},{"E_lit":[{"L_num":448}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":575}]},{"E_lit":[{"L_num":512}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":575}]},{"E_lit":[{"L_num":512}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_rdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_rdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":647}]},{"E_lit":[{"L_num":640}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":647}]},{"E_lit":[{"L_num":640}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_rmask"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_rmask"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":639}]},{"E_lit":[{"L_num":576}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":639}]},{"E_lit":[{"L_num":576}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_wdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_wdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":655}]},{"E_lit":[{"L_num":648}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":655}]},{"E_lit":[{"L_num":648}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_mem_wmask"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_mem_wmask"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_order"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_order"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_order"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_order"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_order"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_order"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_order"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_order"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_order"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_order"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_order"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_order"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_pc_rdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_pc_rdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":191}]},{"E_lit":[{"L_num":128}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":191}]},{"E_lit":[{"L_num":128}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_pc_wdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_pc_wdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":679}]},{"E_lit":[{"L_num":672}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":679}]},{"E_lit":[{"L_num":672}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rd_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rd_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":447}]},{"E_lit":[{"L_num":384}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":447}]},{"E_lit":[{"L_num":384}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rd_wdata"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rd_wdata"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":663}]},{"E_lit":[{"L_num":656}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":663}]},{"E_lit":[{"L_num":656}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs1_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs1_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":256}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":256}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs1_data"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs1_data"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":671}]},{"E_lit":[{"L_num":664}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":671}]},{"E_lit":[{"L_num":664}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs2_addr"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs2_addr"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":383}]},{"E_lit":[{"L_num":320}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":383}]},{"E_lit":[{"L_num":320}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_rs2_data"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_rs2_data"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_trap"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":687}]},{"E_lit":[{"L_num":680}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]},{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_trap"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":687}]},{"E_lit":[{"L_num":680}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_rvfi_trap"},[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_trap"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_Packet_V1"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_trap"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_trap"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_rvfi_trap"},[{"Id":"_get_RVFI_DII_Execution_Packet_V1_rvfi_trap"},{"Id":"_set_RVFI_DII_Execution_Packet_V1_rvfi_trap"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}]}]},{"Id":"rvfi_get_exec_packet_v1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_exec_packet_v1"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Execution_Packet_V1"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":704}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_intr"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_intr"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_halt"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_halt"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_trap"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_trap"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_insn"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_insn"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_order"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_InstMetaData_rvfi_order"},[{"E_id":[{"Id":"rvfi_inst_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_wdata"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_wdata"},[{"E_id":[{"Id":"rvfi_pc_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_pc_rdata"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_PC_rvfi_pc_rdata"},[{"E_id":[{"Id":"rvfi_pc_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_addr"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_addr"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_addr"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_addr"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_addr"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_addr"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rd_wdata"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rd_wdata"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs2_data"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs2_rdata"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_rs1_data"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_Integer_rvfi_rs1_rdata"},[{"E_id":[{"Id":"rvfi_int_data"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wmask"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"truncate"},[{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wmask"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rmask"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"truncate"},[{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rmask"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_wdata"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"truncate"},[{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_wdata"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_rdata"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"truncate"},[{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_rdata"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_mem_addr"},[{"E_id":[{"Id":"v1_packet"}]},{"E_app":[{"Id":"_get_RVFI_DII_Execution_Packet_Ext_MemAccess_rvfi_mem_addr"},[{"E_id":[{"Id":"rvfi_mem_data"}]}]]}]]}]},{"E_block":[[{"E_return":[{"E_field":[{"E_id":[{"Id":"v1_packet"}]},{"Id":"bits"}]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/rvfi_dii_v1.sail"]},{"DEF_pragma":["file_start","core/rvfi_dii_v2.sail"]},{"DEF_type":{"TD_record":[{"Id":"RVFI_DII_Execution_PacketV2"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[512]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"undefined_RVFI_DII_Execution_PacketV2"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_RVFI_DII_Execution_PacketV2"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[512]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"Mk_RVFI_DII_Execution_PacketV2"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_RVFI_DII_Execution_PacketV2"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[512]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":512}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[512]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":512}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[512]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_bits"},{"Id":"_set_RVFI_DII_Execution_PacketV2_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_basic_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_basic_data"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":128}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_basic_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_basic_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_num":128}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_basic_data"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_basic_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[192]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_basic_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_basic_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_basic_data"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_basic_data"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_basic_data"},{"Id":"_set_RVFI_DII_Execution_PacketV2_basic_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_cheri_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_cheri_data_available"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":452}]},{"E_lit":[{"L_num":452}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":452}]},{"E_lit":[{"L_num":452}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_cheri_data_available"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_cheri_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_cheri_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_data_available"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_cheri_data_available"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_cheri_data_available"},{"Id":"_set_RVFI_DII_Execution_PacketV2_cheri_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":453}]},{"E_lit":[{"L_num":453}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":453}]},{"E_lit":[{"L_num":453}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_cheri_scr_read_write_data_available"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_cheri_scr_read_write_data_available"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"},{"Id":"_set_RVFI_DII_Execution_PacketV2_cheri_scr_read_write_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":451}]},{"E_lit":[{"L_num":451}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":451}]},{"E_lit":[{"L_num":451}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_csr_read_write_data_available"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_csr_read_write_data_available"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"},{"Id":"_set_RVFI_DII_Execution_PacketV2_csr_read_write_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_floating_point_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_floating_point_data_available"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":450}]},{"E_lit":[{"L_num":450}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_floating_point_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_floating_point_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":450}]},{"E_lit":[{"L_num":450}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_floating_point_data_available"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_floating_point_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_floating_point_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_floating_point_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_floating_point_data_available"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_floating_point_data_available"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_floating_point_data_available"},{"Id":"_set_RVFI_DII_Execution_PacketV2_floating_point_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_integer_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_integer_data_available"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":448}]},{"E_lit":[{"L_num":448}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_integer_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_integer_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":448}]},{"E_lit":[{"L_num":448}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_integer_data_available"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_integer_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_integer_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_integer_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_integer_data_available"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_integer_data_available"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_integer_data_available"},{"Id":"_set_RVFI_DII_Execution_PacketV2_integer_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_magic"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_magic"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_magic"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_magic"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_magic"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_magic"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_magic"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_magic"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_magic"},{"Id":"_set_RVFI_DII_Execution_PacketV2_magic"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_memory_access_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_memory_access_data_available"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":449}]},{"E_lit":[{"L_num":449}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_memory_access_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_memory_access_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":449}]},{"E_lit":[{"L_num":449}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_memory_access_data_available"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_memory_access_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_memory_access_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_memory_access_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_memory_access_data_available"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_memory_access_data_available"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_memory_access_data_available"},{"Id":"_set_RVFI_DII_Execution_PacketV2_memory_access_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_pc_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_pc_data"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":447}]},{"E_lit":[{"L_num":320}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_pc_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_pc_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":447}]},{"E_lit":[{"L_num":320}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_pc_data"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_pc_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_pc_data"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_pc_data"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_pc_data"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_pc_data"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_pc_data"},{"Id":"_set_RVFI_DII_Execution_PacketV2_pc_data"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_trace_size"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_trace_size"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_trace_size"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_trace_size"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_trace_size"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_trace_size"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_trace_size"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_trace_size"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_trace_size"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_trace_size"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_trace_size"},{"Id":"_set_RVFI_DII_Execution_PacketV2_trace_size"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_trap_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_trap_data_available"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":454}]},{"E_lit":[{"L_num":454}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_trap_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_trap_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":454}]},{"E_lit":[{"L_num":454}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_trap_data_available"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_trap_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_trap_data_available"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_trap_data_available"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_trap_data_available"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_trap_data_available"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_trap_data_available"},{"Id":"_set_RVFI_DII_Execution_PacketV2_trap_data_available"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[57]}]}]]}]}]},{"Id":"_get_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":511}]},{"E_lit":[{"L_num":455}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[57]}]}]]}],{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]},{"Id":"_update_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":511}]},{"E_lit":[{"L_num":455}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_unused_data_available_fields"},[{"Id":"_update_RVFI_DII_Execution_PacketV2_unused_data_available_fields"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"RVFI_DII_Execution_PacketV2"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[57]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_unused_data_available_fields"},[{"Id":"_get_RVFI_DII_Execution_PacketV2_unused_data_available_fields"},{"Id":"_set_RVFI_DII_Execution_PacketV2_unused_data_available_fields"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[704]}]}]]}]}]},{"Id":"rvfi_get_v2_support_packet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_v2_support_packet"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rvfi_exec"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Execution_Packet_V1"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":704}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rvfi_exec"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_Packet_V1_rvfi_halt"},[{"E_id":[{"Id":"rvfi_exec"}]},{"E_lit":[{"L_hex":"03"}]}]]}]},{"E_block":[[{"E_return":[{"E_field":[{"E_id":[{"Id":"rvfi_exec"}]},{"Id":"bits"}]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"rvfi_get_v2_trace_size"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_v2_trace_size"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"trace_size"}]}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":512}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"trace_size"}]},{"E_if":[{"E_id":[{"Id":"rvfi_int_data_present"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"trace_size"}]},{"E_lit":[{"L_num":320}]}]]},{"E_id":[{"Id":"trace_size"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"trace_size"}]},{"E_if":[{"E_id":[{"Id":"rvfi_mem_data_present"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"trace_size"}]},{"E_lit":[{"L_num":704}]}]]},{"E_id":[{"Id":"trace_size"}]}]}]},{"E_block":[[{"E_return":[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"trace_size"}]},{"E_lit":[{"L_num":3}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[512]}]}]]}]}]},{"Id":"rvfi_get_exec_packet_v2"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_get_exec_packet_v2"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"packet"}]},{"E_app":[{"Id":"Mk_RVFI_DII_Execution_PacketV2"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":512}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_magic"},[{"E_id":[{"Id":"packet"}]},{"E_lit":[{"L_hex":"32762D6563617274"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_basic_data"},[{"E_id":[{"Id":"packet"}]},{"E_field":[{"E_id":[{"Id":"rvfi_inst_data"}]},{"Id":"bits"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_pc_data"},[{"E_id":[{"Id":"packet"}]},{"E_field":[{"E_id":[{"Id":"rvfi_pc_data"}]},{"Id":"bits"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_integer_data_available"},[{"E_id":[{"Id":"packet"}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rvfi_int_data_present"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_memory_access_data_available"},[{"E_id":[{"Id":"packet"}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rvfi_mem_data_present"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"packet"}]},{"E_app":[{"Id":"_update_RVFI_DII_Execution_PacketV2_trace_size"},[{"E_id":[{"Id":"packet"}]},{"E_app":[{"Id":"rvfi_get_v2_trace_size"},[{"E_lit":["L_unit"]}]]}]]}]},{"E_block":[[{"E_return":[{"E_field":[{"E_id":[{"Id":"packet"}]},{"Id":"bits"}]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/rvfi_dii_v2.sail"]},{"DEF_pragma":["file_start","core/extensions.sail"]},{"DEF_type":{"TD_enum":[{"Id":"extension"},[{"Id":"Ext_M"},{"Id":"Ext_A"},{"Id":"Ext_F"},{"Id":"Ext_D"},{"Id":"Ext_B"},{"Id":"Ext_V"},{"Id":"Ext_S"},{"Id":"Ext_U"},{"Id":"Ext_H"},{"Id":"Ext_Zicbom"},{"Id":"Ext_Zicbop"},{"Id":"Ext_Zicboz"},{"Id":"Ext_Zicfilp"},{"Id":"Ext_Zicntr"},{"Id":"Ext_Zicond"},{"Id":"Ext_Zicsr"},{"Id":"Ext_Zifencei"},{"Id":"Ext_Zihintntl"},{"Id":"Ext_Zihintpause"},{"Id":"Ext_Zihpm"},{"Id":"Ext_Zimop"},{"Id":"Ext_Zmmul"},{"Id":"Ext_Zaamo"},{"Id":"Ext_Zabha"},{"Id":"Ext_Zacas"},{"Id":"Ext_Zalrsc"},{"Id":"Ext_Zawrs"},{"Id":"Ext_Zfa"},{"Id":"Ext_Zfbfmin"},{"Id":"Ext_Zfh"},{"Id":"Ext_Zfhmin"},{"Id":"Ext_Zfinx"},{"Id":"Ext_Zdinx"},{"Id":"Ext_Zca"},{"Id":"Ext_Zcb"},{"Id":"Ext_Zcd"},{"Id":"Ext_Zcf"},{"Id":"Ext_Zcmop"},{"Id":"Ext_C"},{"Id":"Ext_Zba"},{"Id":"Ext_Zbb"},{"Id":"Ext_Zbc"},{"Id":"Ext_Zbkb"},{"Id":"Ext_Zbkc"},{"Id":"Ext_Zbkx"},{"Id":"Ext_Zbs"},{"Id":"Ext_Zknd"},{"Id":"Ext_Zkne"},{"Id":"Ext_Zknh"},{"Id":"Ext_Zkr"},{"Id":"Ext_Zksed"},{"Id":"Ext_Zksh"},{"Id":"Ext_Zkt"},{"Id":"Ext_Zhinx"},{"Id":"Ext_Zhinxmin"},{"Id":"Ext_Zvl32b"},{"Id":"Ext_Zvl64b"},{"Id":"Ext_Zvl128b"},{"Id":"Ext_Zvl256b"},{"Id":"Ext_Zvl512b"},{"Id":"Ext_Zvl1024b"},{"Id":"Ext_Zve32f"},{"Id":"Ext_Zve32x"},{"Id":"Ext_Zve64d"},{"Id":"Ext_Zve64f"},{"Id":"Ext_Zve64x"},{"Id":"Ext_Zvfbfmin"},{"Id":"Ext_Zvfbfwma"},{"Id":"Ext_Zvfh"},{"Id":"Ext_Zvfhmin"},{"Id":"Ext_Zvbb"},{"Id":"Ext_Zvbc"},{"Id":"Ext_Zvkb"},{"Id":"Ext_Zvkg"},{"Id":"Ext_Zvkned"},{"Id":"Ext_Zvknha"},{"Id":"Ext_Zvknhb"},{"Id":"Ext_Zvksed"},{"Id":"Ext_Zvksh"},{"Id":"Ext_Zvkt"},{"Id":"Ext_Zvkn"},{"Id":"Ext_Zvknc"},{"Id":"Ext_Zvkng"},{"Id":"Ext_Zvks"},{"Id":"Ext_Zvksc"},{"Id":"Ext_Zvksg"},{"Id":"Ext_Sscofpmf"},{"Id":"Ext_Sstc"},{"Id":"Ext_Svbare"},{"Id":"Ext_Sv32"},{"Id":"Ext_Sv39"},{"Id":"Ext_Sv48"},{"Id":"Ext_Sv57"},{"Id":"Ext_Svinval"},{"Id":"Ext_Svnapot"},{"Id":"Ext_Svpbmt"},{"Id":"Ext_Svrsw60t59b"},{"Id":"Ext_Smcntrpmf"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"extension"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"extensionName"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"extension"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"hartSupports"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"extension"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"currentlyEnabled"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"extensionName"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_M"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"m"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_V"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_U"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"u"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zicbom"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zicbom"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zicbop"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zicbop"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zicboz"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zicboz"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zicfilp"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zicfilp"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zicntr"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zicntr"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zicond"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zicond"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zicsr"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zicsr"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zifencei"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zifencei"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zihintntl"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zihintntl"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zihintpause"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zihintpause"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zihpm"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zihpm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zimop"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zimop"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zmmul"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zmmul"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zaamo"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zaamo"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zabha"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zabha"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zacas"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zacas"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zalrsc"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zalrsc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zawrs"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zawrs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zfa"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zfa"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zfbfmin"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zfbfmin"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zfh"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zfh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zfhmin"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zfhmin"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zfinx"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zfinx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zdinx"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zdinx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zca"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zca"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zcb"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zcb"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zcd"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zcd"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zcf"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zcf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zcmop"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zcmop"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"c"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zba"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zba"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zbb"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zbb"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zbc"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zbc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zbkb"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zbkb"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zbkc"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zbkc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zbkx"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zbkx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zbs"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zbs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zknd"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zknd"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zkne"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zkne"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zknh"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zknh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zkr"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zkr"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zksed"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zksed"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zksh"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zksh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zkt"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zkt"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zhinx"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zhinx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zhinxmin"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zhinxmin"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvl32b"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvl32b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvl64b"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvl64b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvl128b"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvl128b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvl256b"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvl256b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvl512b"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvl512b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvl1024b"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvl1024b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zve32f"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zve32f"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zve32x"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zve32x"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zve64d"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zve64d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zve64f"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zve64f"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zve64x"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zve64x"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvfbfmin"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvfbfmin"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvfbfwma"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvfbfwma"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvfh"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvfh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvfhmin"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvfhmin"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvbb"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvbb"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvbc"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvbc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvkb"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvkb"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvkg"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvkg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvkned"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvkned"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvknha"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvknha"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvknhb"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvknhb"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvksed"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvksed"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvksh"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvksh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvkt"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvkt"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvkn"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvkn"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvknc"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvknc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvkng"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvkng"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvks"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvks"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvksc"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvksc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Zvksg"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zvksg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Sscofpmf"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sscofpmf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Sstc"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sstc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Svbare"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"svbare"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Sv32"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sv32"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Sv39"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sv39"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Sv48"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sv48"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Sv57"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sv57"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Svinval"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"svinval"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Svnapot"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"svnapot"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Svpbmt"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"svpbmt"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Svrsw60t59b"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"svrsw60t59b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Ext_Smcntrpmf"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"smcntrpmf"}]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_M"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_A"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_F"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_D"}]},{"E_app":[["And_Bool"],[{"E_lit":["L_true"]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_B"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_V"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Full"}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_S"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_U"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_H"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicbom"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicbop"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicboz"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicfilp"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicntr"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicond"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicsr"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zifencei"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zihintntl"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zihintpause"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zihpm"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zimop"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zmmul"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zaamo"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zabha"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zacas"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zalrsc"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zawrs"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfa"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfbfmin"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfh"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfhmin"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfinx"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zdinx"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zca"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcb"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcd"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcf"}]},{"E_app":[["And_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcmop"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_C"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zca"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]},{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_D"}]}]]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zba"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbb"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbc"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbkb"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbkc"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbkx"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbs"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zknd"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zkne"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zknh"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zkr"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zksed"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zksh"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zkt"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zhinx"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zhinxmin"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl32b"}]},{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":5}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl64b"}]},{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":6}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl128b"}]},{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl256b"}]},{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":8}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl512b"}]},{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":9}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl1024b"}]},{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":10}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve32f"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Float_single"}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve32x"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Integer"}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve64d"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":6}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Float_double"}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve64f"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":6}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Float_single"}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve64x"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":6}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Integer"}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfbfmin"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfbfwma"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfh"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfhmin"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvbb"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvbc"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkb"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkg"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkned"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvknha"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvknhb"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksed"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksh"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkt"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkn"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvknhb"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkt"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvknc"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkn"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkng"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkn"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvks"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksh"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkt"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksc"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvks"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksg"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvks"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sscofpmf"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sstc"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svbare"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv32"}]},{"E_app":[["And_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv39"}]},{"E_app":[["And_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_true"]}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv48"}]},{"E_app":[["And_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_true"]}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv57"}]},{"E_app":[["And_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_true"]}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svinval"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svnapot"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svpbmt"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svrsw60t59b"}]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"hartSupports"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Smcntrpmf"}]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"extensions_ordered_for_isa_string"}]},{"E_vector":[[{"E_id":[{"Id":"Ext_M"}]},{"E_id":[{"Id":"Ext_A"}]},{"E_id":[{"Id":"Ext_F"}]},{"E_id":[{"Id":"Ext_D"}]},{"E_id":[{"Id":"Ext_C"}]},{"E_id":[{"Id":"Ext_B"}]},{"E_id":[{"Id":"Ext_V"}]},{"E_id":[{"Id":"Ext_H"}]},{"E_id":[{"Id":"Ext_Zicbom"}]},{"E_id":[{"Id":"Ext_Zicbop"}]},{"E_id":[{"Id":"Ext_Zicboz"}]},{"E_id":[{"Id":"Ext_Zicfilp"}]},{"E_id":[{"Id":"Ext_Zicntr"}]},{"E_id":[{"Id":"Ext_Zicond"}]},{"E_id":[{"Id":"Ext_Zicsr"}]},{"E_id":[{"Id":"Ext_Zifencei"}]},{"E_id":[{"Id":"Ext_Zihintntl"}]},{"E_id":[{"Id":"Ext_Zihintpause"}]},{"E_id":[{"Id":"Ext_Zihpm"}]},{"E_id":[{"Id":"Ext_Zimop"}]},{"E_id":[{"Id":"Ext_Zmmul"}]},{"E_id":[{"Id":"Ext_Zaamo"}]},{"E_id":[{"Id":"Ext_Zabha"}]},{"E_id":[{"Id":"Ext_Zacas"}]},{"E_id":[{"Id":"Ext_Zalrsc"}]},{"E_id":[{"Id":"Ext_Zawrs"}]},{"E_id":[{"Id":"Ext_Zfa"}]},{"E_id":[{"Id":"Ext_Zfbfmin"}]},{"E_id":[{"Id":"Ext_Zfh"}]},{"E_id":[{"Id":"Ext_Zfhmin"}]},{"E_id":[{"Id":"Ext_Zfinx"}]},{"E_id":[{"Id":"Ext_Zdinx"}]},{"E_id":[{"Id":"Ext_Zhinx"}]},{"E_id":[{"Id":"Ext_Zhinxmin"}]},{"E_id":[{"Id":"Ext_Zca"}]},{"E_id":[{"Id":"Ext_Zcb"}]},{"E_id":[{"Id":"Ext_Zcd"}]},{"E_id":[{"Id":"Ext_Zcf"}]},{"E_id":[{"Id":"Ext_Zcmop"}]},{"E_id":[{"Id":"Ext_Zba"}]},{"E_id":[{"Id":"Ext_Zbb"}]},{"E_id":[{"Id":"Ext_Zbc"}]},{"E_id":[{"Id":"Ext_Zbkb"}]},{"E_id":[{"Id":"Ext_Zbkc"}]},{"E_id":[{"Id":"Ext_Zbkx"}]},{"E_id":[{"Id":"Ext_Zbs"}]},{"E_id":[{"Id":"Ext_Zknd"}]},{"E_id":[{"Id":"Ext_Zkne"}]},{"E_id":[{"Id":"Ext_Zknh"}]},{"E_id":[{"Id":"Ext_Zkr"}]},{"E_id":[{"Id":"Ext_Zksed"}]},{"E_id":[{"Id":"Ext_Zksh"}]},{"E_id":[{"Id":"Ext_Zkt"}]},{"E_id":[{"Id":"Ext_Zvbb"}]},{"E_id":[{"Id":"Ext_Zvbc"}]},{"E_id":[{"Id":"Ext_Zve32f"}]},{"E_id":[{"Id":"Ext_Zve32x"}]},{"E_id":[{"Id":"Ext_Zve64d"}]},{"E_id":[{"Id":"Ext_Zve64f"}]},{"E_id":[{"Id":"Ext_Zve64x"}]},{"E_id":[{"Id":"Ext_Zvfbfmin"}]},{"E_id":[{"Id":"Ext_Zvfbfwma"}]},{"E_id":[{"Id":"Ext_Zvfh"}]},{"E_id":[{"Id":"Ext_Zvfhmin"}]},{"E_id":[{"Id":"Ext_Zvkb"}]},{"E_id":[{"Id":"Ext_Zvkg"}]},{"E_id":[{"Id":"Ext_Zvkn"}]},{"E_id":[{"Id":"Ext_Zvknc"}]},{"E_id":[{"Id":"Ext_Zvkned"}]},{"E_id":[{"Id":"Ext_Zvkng"}]},{"E_id":[{"Id":"Ext_Zvknha"}]},{"E_id":[{"Id":"Ext_Zvknhb"}]},{"E_id":[{"Id":"Ext_Zvks"}]},{"E_id":[{"Id":"Ext_Zvksc"}]},{"E_id":[{"Id":"Ext_Zvksed"}]},{"E_id":[{"Id":"Ext_Zvksg"}]},{"E_id":[{"Id":"Ext_Zvksh"}]},{"E_id":[{"Id":"Ext_Zvkt"}]},{"E_id":[{"Id":"Ext_Zvl32b"}]},{"E_id":[{"Id":"Ext_Zvl64b"}]},{"E_id":[{"Id":"Ext_Zvl128b"}]},{"E_id":[{"Id":"Ext_Zvl256b"}]},{"E_id":[{"Id":"Ext_Zvl512b"}]},{"E_id":[{"Id":"Ext_Zvl1024b"}]},{"E_id":[{"Id":"Ext_Sscofpmf"}]},{"E_id":[{"Id":"Ext_Sstc"}]},{"E_id":[{"Id":"Ext_Svinval"}]},{"E_id":[{"Id":"Ext_Svnapot"}]},{"E_id":[{"Id":"Ext_Svpbmt"}]},{"E_id":[{"Id":"Ext_Svrsw60t59b"}]},{"E_id":[{"Id":"Ext_Smcntrpmf"}]}]]}]}},{"DEF_pragma":["file_end","core/extensions.sail"]},{"DEF_pragma":["file_start","core/types_common.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"exc_code"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]}},{"DEF_pragma":["file_end","core/types_common.sail"]},{"DEF_pragma":["file_start","core/types_ext.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"ext_ptw"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"ext_ptw"}]},{"P_id":[{"Id":"init_ext_ptw"}]}]},{"E_lit":["L_unit"]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"ext_ptw_fail"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"ext_ptw_error"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"ext_exc_type"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_translate_exception"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_translate_exception"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ext_ptw_error"}]},{"P_id":[{"Id":"e"}]}]},{"E_id":[{"Id":"e"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"unit"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"ext_exc_type_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"ext_exc_type_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_unit"]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"ext_exc_type_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_exc_type_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ext_exc_type"}]},{"P_id":[{"Id":"e"}]}]},{"E_lit":[{"L_string":"extension-exception"}]}]}]}]]}},{"DEF_pragma":["file_end","core/types_ext.sail"]},{"DEF_pragma":["file_start","core/types.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"half"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"word"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"instbits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"pagesize_bits"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_constant":[12]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"pagesize_bits"}]},{"E_lit":[{"L_num":12}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"base_E_enabled"},{"TypQ_no_forall":[]},{"A_bool":["NC_false"]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"base_E_enabled"}]},{"E_lit":["L_false"]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"regidx_bit_width"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_if":[{"NC_id":[{"Id":"base_E_enabled"}]},{"Nexp_constant":[4]},{"Nexp_constant":[5]}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"regidx_bit_width"}]},{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]}]}},{"DEF_type":{"TD_variant":[{"Id":"regidx"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"regidx_bit_width"}]}]}]]},{"Id":"Regidx"}]}],true]}},{"DEF_type":{"TD_variant":[{"Id":"cregidx"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Id":"Cregidx"}]}],true]}},{"DEF_type":{"TD_abbrev":[{"Id":"csreg"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":["NC_false",{"Nexp_constant":[4]},{"Nexp_constant":[5]}]}]}]]}],{"Typ_id":[{"Id":"regidx"}]}]}]},{"Id":"regidx_offset"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"regidx_offset"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"r"}]}]]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"regidx_bit_width"}]}]}]]},{"P_id":[{"Id":"o"}]}]}]]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"o"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}],{"Typ_id":[{"Id":"regidx"}]}]}]},{"Id":"regidx_offset_range"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"regidx_offset_range"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"r"}]}]]}]},{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"P_id":[{"Id":"o"}]}]}]]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"o"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":["NC_false",{"Nexp_constant":[4]},{"Nexp_constant":[5]}]}]}]]}]}]},{"Id":"regidx_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"regidx_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"b"}]}]]}]},{"E_id":[{"Id":"b"}]}]}]}]]}},{"DEF_overload":[{"Operator":"+"},[{"Id":"regidx_offset"},{"Id":"regidx_offset_range"}]]},{"DEF_type":{"TD_variant":[{"Id":"regno"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_exp":[{"Nexp_id":[{"Id":"regidx_bit_width"}]}]},{"Nexp_constant":[1]}]}]}]]},{"Id":"Regno"}]}],true]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"cregidx"}]}],{"Typ_id":[{"Id":"regidx"}]}]}]},{"Id":"creg2reg_idx"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"creg2reg_idx"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"cregidx"}]},{"P_app":[{"Id":"Cregidx"},[{"P_id":[{"Id":"i"}]}]]}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"zreg"}]}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"ra"}]}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_lit":[{"L_bin":"01"}]}]]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"sp"}]}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_lit":[{"L_bin":"10"}]}]]}]]}]}},{"DEF_type":{"TD_enum":[{"Id":"Architecture"},[{"Id":"RV32"},{"Id":"RV64"},{"Id":"RV128"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Architecture"}]}]}]},{"Id":"undefined_Architecture"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Architecture"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"RV32"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"Architecture"}]}]}]},{"Id":"Architecture_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Architecture_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"RV32"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"RV64"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"RV128"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Architecture"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_Architecture"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_Architecture"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"RV32"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"RV64"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"RV128"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"arch_xlen"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"Architecture"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"architecture_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"architecture_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RV32"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RV64"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RV128"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]}]},{"MCL_backwards":[{"Pat_exp":[{"P_lit":[{"L_bin":"00"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/types.sail"}]},{"E_lit":[{"L_num":61}]},{"E_lit":[{"L_string":"architecture(0b00) is invalid"}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"nom_priv_bits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"virt_mode_bit"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"bit"}]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"Privilege"},[{"Id":"User"},{"Id":"VirtualUser"},{"Id":"Supervisor"},{"Id":"VirtualSupervisor"},{"Id":"Machine"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Privilege"}]}]}]},{"Id":"undefined_Privilege"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Privilege"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"User"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"Privilege"}]}]}]},{"Id":"Privilege_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Privilege_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"User"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VirtualUser"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"Supervisor"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VirtualSupervisor"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"Machine"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_Privilege"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_Privilege"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"bit"}]}]]},{"Typ_id":[{"Id":"Privilege"}]}]}]},{"Id":"privLevel_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"privLevel_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":["L_zero"]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"User"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":["L_one"]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"VirtualUser"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":["L_zero"]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"Supervisor"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":["L_one"]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"VirtualSupervisor"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":[{"L_bin":"11"}]},{"MP_lit":["L_zero"]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"Machine"}]}]}]},{"MCL_forwards":[{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/types.sail"}]},{"E_lit":[{"L_num":78}]},{"E_lit":[{"L_string":"Invalid privilege level or virtual mode"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"privLevel_to_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"privLevel_to_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"p"}]},{"P_wild":[]}]]},{"E_app":[{"Id":"privLevel_bits_backwards"},[{"E_id":[{"Id":"p"}]}]]}]},{"E_block":[[{"E_id":[{"Id":"p"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"privLevel_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"privLevel_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_match":[{"E_id":[{"Id":"p"}]},[{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_lit":[{"L_string":"U"}]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_lit":[{"L_string":"VU"}]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_H"}]}]]},{"E_lit":[{"L_string":"HS"}]},{"E_lit":[{"L_string":"S"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_lit":[{"L_string":"VS"}]}]},{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_lit":[{"L_string":"M"}]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"privLevel_to_str"}]]},{"DEF_type":{"TD_variant":[{"Id":"AccessType"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},[{"Tu_ty_id":[{"Typ_var":[{"Var":"'a"}]},{"Id":"Read"}]},{"Tu_ty_id":[{"Typ_var":[{"Var":"'a"}]},{"Id":"Write"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_var":[{"Var":"'a"}]},{"Typ_var":[{"Var":"'a"}]}]]},{"Id":"ReadWrite"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"InstructionFetch"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_load_store"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_load_store"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]}]]},{"P_id":[{"Id":"ac"}]}]},{"E_match":[{"E_id":[{"Id":"ac"}]},[{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"ReadWrite"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_wild":[]}]]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"is_mem_width"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'w"}]}]}]]},{"A_bool":[{"NC_set":[{"Nexp_var":[{"Var":"'w"}]},[1,2,4,8]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"InterruptType"},[{"Id":"I_U_Software"},{"Id":"I_S_Software"},{"Id":"I_M_Software"},{"Id":"I_U_Timer"},{"Id":"I_S_Timer"},{"Id":"I_M_Timer"},{"Id":"I_U_External"},{"Id":"I_S_External"},{"Id":"I_M_External"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"InterruptType"}]}]}]},{"Id":"undefined_InterruptType"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_InterruptType"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"I_U_Software"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[8]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"InterruptType"}]}]}]},{"Id":"InterruptType_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"InterruptType_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"I_U_Software"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"I_S_Software"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"I_M_Software"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"I_U_Timer"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"I_S_Timer"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"I_M_Timer"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"I_U_External"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"I_S_External"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"I_M_External"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"InterruptType"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_InterruptType"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_InterruptType"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"I_U_Software"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_S_Software"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_M_Software"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_U_Timer"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_S_Timer"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_M_Timer"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_U_External"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_S_External"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_M_External"}]},{"E_lit":[{"L_num":8}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"InterruptType"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"interruptType_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"interruptType_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_U_Software"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_S_Software"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_M_Software"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_U_Timer"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_S_Timer"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_M_Timer"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_U_External"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_S_External"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"I_M_External"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"InterruptType"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"interruptType_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"interruptType_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"InterruptType"}]},{"P_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"i"}]},[{"Pat_exp":[{"P_id":[{"Id":"I_U_Software"}]},{"E_lit":[{"L_string":"user-software-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_S_Software"}]},{"E_lit":[{"L_string":"supervisor-software-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_M_Software"}]},{"E_lit":[{"L_string":"machine-software-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_U_Timer"}]},{"E_lit":[{"L_string":"user-timer-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_S_Timer"}]},{"E_lit":[{"L_string":"supervisor-timer-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_M_Timer"}]},{"E_lit":[{"L_string":"machine-timer-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_U_External"}]},{"E_lit":[{"L_string":"user-external-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_S_External"}]},{"E_lit":[{"L_string":"supervisor-external-interrupt"}]}]},{"Pat_exp":[{"P_id":[{"Id":"I_M_External"}]},{"E_lit":[{"L_string":"machine-external-interrupt"}]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"interruptType_to_str"}]]},{"DEF_type":{"TD_variant":[{"Id":"ExceptionType"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Fetch_Addr_Align"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Fetch_Access_Fault"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Illegal_Instr"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Breakpoint"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Load_Addr_Align"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Load_Access_Fault"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_SAMO_Addr_Align"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_SAMO_Access_Fault"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_U_EnvCall"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_S_EnvCall"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Reserved_10"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_M_EnvCall"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Fetch_Page_Fault"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Load_Page_Fault"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Reserved_14"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_SAMO_Page_Fault"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Reserved_16"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Reserved_17"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"E_Software_Check"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ext_exc_type"}]},{"Id":"E_Extension"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"ExceptionType"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"exceptionType_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"exceptionType_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Fetch_Addr_Align"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Fetch_Access_Fault"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Illegal_Instr"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Breakpoint"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Load_Addr_Align"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Load_Access_Fault"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_SAMO_Addr_Align"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_SAMO_Access_Fault"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_U_EnvCall"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_S_EnvCall"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Reserved_10"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_M_EnvCall"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Fetch_Page_Fault"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Load_Page_Fault"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Reserved_14"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_SAMO_Page_Fault"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Reserved_16"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Reserved_17"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Software_Check"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"E_Extension"},[{"MP_id":[{"Id":"e"}]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"ext_exc_type_bits"},[{"MP_id":[{"Id":"e"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"ExceptionType"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"exceptionType_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"exceptionType_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"e"}]}]},{"E_match":[{"E_id":[{"Id":"e"}]},[{"Pat_exp":[{"P_app":[{"Id":"E_Fetch_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"misaligned-fetch"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Fetch_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"fetch-access-fault"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Illegal_Instr"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"illegal-instruction"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Breakpoint"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"breakpoint"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"misaligned-load"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"load-access-fault"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"misaligned-store/amo"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"store/amo-access-fault"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_U_EnvCall"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"u-call"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_S_EnvCall"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"s-call"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Reserved_10"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"reserved-0"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_M_EnvCall"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"m-call"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Fetch_Page_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"fetch-page-fault"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Page_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"load-page-fault"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Reserved_14"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"reserved-1"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Page_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"store/amo-page-fault"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Reserved_16"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"reserved-2"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Reserved_17"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"reserved-3"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Software_Check"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"software-check-fault"}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Extension"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"ext_exc_type_to_str"},[{"E_id":[{"Id":"e"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"exceptionType_to_str"}]]},{"DEF_type":{"TD_enum":[{"Id":"SWCheckCodes"},[{"Id":"LANDING_PAD_FAULT"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"SWCheckCodes"}]}]}]},{"Id":"undefined_SWCheckCodes"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_SWCheckCodes"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"LANDING_PAD_FAULT"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"SWCheckCodes"}]}]}]},{"Id":"SWCheckCodes_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"SWCheckCodes_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"LANDING_PAD_FAULT"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SWCheckCodes"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_SWCheckCodes"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_SWCheckCodes"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"LANDING_PAD_FAULT"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"SWCheckCodes"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"sw_check_code_to_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sw_check_code_to_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"SWCheckCodes"}]},{"P_id":[{"Id":"c"}]}]},{"E_match":[{"E_id":[{"Id":"c"}]},[{"Pat_exp":[{"P_id":[{"Id":"LANDING_PAD_FAULT"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_bin":"010"}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_variant":[{"Id":"TrapCause"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"InterruptType"}]},{"Id":"Interrupt"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ExceptionType"}]},{"Id":"Exception"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"TrapCause"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"trapCause_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"trapCause_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Interrupt"},[{"MP_id":[{"Id":"i"}]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"interruptType_bits"},[{"MP_id":[{"Id":"i"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Exception"},[{"MP_id":[{"Id":"e"}]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"exceptionType_bits"},[{"MP_id":[{"Id":"e"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"TrapCause"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"trapCause_is_interrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"trapCause_is_interrupt"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"TrapCause"}]},{"P_id":[{"Id":"t"}]}]},{"E_match":[{"E_id":[{"Id":"t"}]},[{"Pat_exp":[{"P_app":[{"Id":"Interrupt"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"Exception"},[{"P_wild":[]}]]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"TrapCause"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"trapCause_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"trapCause_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"TrapCause"}]},{"P_id":[{"Id":"t"}]}]},{"E_match":[{"E_id":[{"Id":"t"}]},[{"Pat_exp":[{"P_app":[{"Id":"Interrupt"},[{"P_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"int#"}]},{"E_app":[{"Id":"interruptType_to_str"},[{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Exception"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"exc#"}]},{"E_app":[{"Id":"exceptionType_to_str"},[{"E_id":[{"Id":"e"}]}]]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"trapCause_to_str"}]]},{"DEF_type":{"TD_abbrev":[{"Id":"tv_mode"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"TrapVectorMode"},[{"Id":"TV_Direct"},{"Id":"TV_Vector"},{"Id":"TV_Reserved"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"TrapVectorMode"}]}]}]},{"Id":"undefined_TrapVectorMode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_TrapVectorMode"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"TV_Direct"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"TrapVectorMode"}]}]}]},{"Id":"TrapVectorMode_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"TrapVectorMode_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"TV_Direct"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"TV_Vector"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"TV_Reserved"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"TrapVectorMode"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_TrapVectorMode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_TrapVectorMode"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"TV_Direct"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"TV_Vector"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"TV_Reserved"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"TrapVectorMode"}]}]}]},{"Id":"trapVectorMode_of_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"trapVectorMode_of_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"tv_mode"}]},{"P_id":[{"Id":"m"}]}]},{"E_match":[{"E_id":[{"Id":"m"}]},[{"Pat_exp":[{"P_lit":[{"L_bin":"00"}]},{"E_id":[{"Id":"TV_Direct"}]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01"}]},{"E_id":[{"Id":"TV_Vector"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"TV_Reserved"}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"xRET_type"},[{"Id":"mRET"},{"Id":"sRET"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"xRET_type"}]}]}]},{"Id":"undefined_xRET_type"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_xRET_type"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"mRET"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"xRET_type"}]}]}]},{"Id":"xRET_type_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"xRET_type_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"mRET"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"sRET"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"xRET_type"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_xRET_type"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_xRET_type"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"mRET"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"sRET"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"ext_status"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"ExtStatus"},[{"Id":"Off"},{"Id":"Initial"},{"Id":"Clean"},{"Id":"Dirty"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"ExtStatus"}]}]}]},{"Id":"undefined_ExtStatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_ExtStatus"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"Off"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"ExtStatus"}]}]}]},{"Id":"ExtStatus_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ExtStatus_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"Off"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"Initial"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"Clean"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"Dirty"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"ExtStatus"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_ExtStatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_ExtStatus"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"Off"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"Initial"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"Clean"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"Dirty"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"ExtStatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"extStatus_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"extStatus_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Off"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Initial"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Clean"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Dirty"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"ExtStatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"extStatus_to_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"extStatus_to_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ExtStatus"}]},{"P_id":[{"Id":"e"}]}]},{"E_app":[{"Id":"extStatus_bits_forwards"},[{"E_id":[{"Id":"e"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"ExtStatus"}]}]}]},{"Id":"extStatus_of_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"extStatus_of_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ext_status"}]},{"P_id":[{"Id":"b"}]}]},{"E_app":[{"Id":"extStatus_bits_backwards"},[{"E_id":[{"Id":"b"}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"satp_mode"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"SATPMode"},[{"Id":"Bare"},{"Id":"Sv32"},{"Id":"Sv39"},{"Id":"Sv48"},{"Id":"Sv57"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"SATPMode"}]}]}]},{"Id":"undefined_SATPMode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_SATPMode"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"Bare"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"SATPMode"}]}]}]},{"Id":"SATPMode_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"SATPMode_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"Bare"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"Sv32"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"Sv39"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"Sv48"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"Sv57"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SATPMode"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_SATPMode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_SATPMode"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"Bare"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"Sv32"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"Sv39"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"Sv48"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"Sv57"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Architecture"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"SATPMode"}]}]}]]}]}]},{"Id":"satpMode_of_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"satpMode_of_bits"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Architecture"}]},{"P_id":[{"Id":"a"}]}]},{"P_typ":[{"Typ_id":[{"Id":"satp_mode"}]},{"P_id":[{"Id":"m"}]}]}]]},{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_lit":[{"L_hex":"0"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Bare"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"RV32"}]},{"P_lit":[{"L_hex":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Sv32"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"RV64"}]},{"P_lit":[{"L_hex":"8"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Sv39"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"RV64"}]},{"P_lit":[{"L_hex":"9"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Sv48"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"RV64"}]},{"P_lit":[{"L_hex":"A"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Sv57"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"csrRW"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"WaitReason"},[{"Id":"WAIT_WFI"},{"Id":"WAIT_WRS_STO"},{"Id":"WAIT_WRS_NTO"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"WaitReason"}]}]}]},{"Id":"undefined_WaitReason"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_WaitReason"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WAIT_WFI"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"WaitReason"}]}]}]},{"Id":"WaitReason_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"WaitReason_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WAIT_WFI"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"WAIT_WRS_STO"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WAIT_WRS_NTO"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"WaitReason"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_WaitReason"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_WaitReason"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WAIT_WFI"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WAIT_WRS_STO"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WAIT_WRS_NTO"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"WaitReason"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"wait_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"wait_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WAIT_WFI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"WAIT-WFI"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WAIT_WRS_STO"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"WAIT-WRS-STO"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WAIT_WRS_NTO"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"WAIT-WRS-NTO"}]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"wait_name"}]]},{"DEF_type":{"TD_abbrev":[{"Id":"word_width"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"word_width_wide"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8,16]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"width_enc"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"width_enc"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"width_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"width_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"d"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8,16]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"width_enc_wide"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"width_enc_wide"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":16}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8,16]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"width_mnemonic_wide"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"width_mnemonic_wide"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":16}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"q"}]}]}]}]]}},{"DEF_pragma":["file_end","core/types.sail"]},{"DEF_pragma":["file_start","core/vmem_types.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"is_sv_mode"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]}]]},{"A_bool":[{"NC_set":[{"Nexp_var":[{"Var":"'v"}]},[32,39,48,57]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"level_range"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[1]},{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[39]}]}]},{"Nexp_constant":[2]},{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[48]}]}]},{"Nexp_constant":[3]},{"Nexp_constant":[4]}]}]}]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"pte_bits"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[32]},{"Nexp_constant":[64]}]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"ppn_bits"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"vpn_bits"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_id":[{"Id":"pagesize_bits"}]}]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"ext_access_type"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"ext_access_type"}]},{"P_id":[{"Id":"Data"}]}]},{"E_lit":["L_unit"]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"ext_access_type"}]},{"P_id":[{"Id":"default_write_acc"}]}]},{"E_id":[{"Id":"Data"}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"accessType_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"accessType_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"a"}]}]},{"E_match":[{"E_id":[{"Id":"a"}]},[{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"E_lit":[{"L_string":"R"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"E_lit":[{"L_string":"W"}]}]},{"Pat_exp":[{"P_app":[{"Id":"ReadWrite"},[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]}]]},{"E_lit":[{"L_string":"RW"}]}]},{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"X"}]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"accessType_to_str"}]]},{"DEF_pragma":["file_end","core/vmem_types.sail"]},{"DEF_pragma":["file_start","core/vext_types.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"nfields_range"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'q"}]}]}]]},{"A_bool":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"nfields_range_pow2"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'q"}]}]}]]},{"A_bool":[{"NC_set":[{"Nexp_var":[{"Var":"'q"}]},[1,2,4,8]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"nfields"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_app":[{"Id":"nfields_range"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"nfields_pow2"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_app":[{"Id":"nfields_range_pow2"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]}]}]},{"Id":"encdec_nfields"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nfields"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":3}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":5}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":6}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":7}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nfields_string"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nfields_string"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seg2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":3}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seg3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seg4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":5}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seg5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":6}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seg6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":7}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seg7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seg8"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'q"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]}]}]},{"Id":"encdec_nfields_pow2"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nfields_pow2"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'q"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nfields_pow2_string"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nfields_pow2_string"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"8"}]}]}]}]]}},{"DEF_pragma":["file_end","core/vext_types.sail"]},{"DEF_pragma":["file_start","core/csr_begin.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"csr_name_map"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"csr_name"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csr_name"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"E_app":[{"Id":"csr_name_map_forwards"},[{"E_id":[{"Id":"csr"}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"csr_name"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_CSR_accessible"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"read_CSR"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"write_CSR"},null]}},{"DEF_pragma":["file_end","core/csr_begin.sail"]},{"DEF_pragma":["file_start","core/callbacks.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"mem_write_callback"},{"pure":true,"bindings":[["c","mem_write_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_write_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"mem_read_callback"},{"pure":true,"bindings":[["c","mem_read_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_read_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"mem_exception_callback"},{"pure":true,"bindings":[["c","mem_exception_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_exception_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"pc_write_callback"},{"pure":true,"bindings":[["c","pc_write_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pc_write_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"xreg_full_write_callback"},{"pure":true,"bindings":[["c","xreg_full_write_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"xreg_full_write_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"csr_full_write_callback"},{"pure":true,"bindings":[["c","csr_full_write_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csr_full_write_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"csr_full_read_callback"},{"pure":true,"bindings":[["c","csr_full_read_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csr_full_read_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"trap_callback"},{"pure":true,"bindings":[["c","trap_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"trap_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"csr_name_write_callback"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csr_name_write_callback"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"string"}]},{"P_id":[{"Id":"name"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"csr"}]},{"E_app":[{"Id":"csr_name_map_backwards"},[{"E_id":[{"Id":"name"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"csr_full_write_callback"},[{"E_id":[{"Id":"name"}]},{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"csr_id_write_callback"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csr_id_write_callback"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"name"}]},{"E_app":[{"Id":"csr_name_map_forwards"},[{"E_id":[{"Id":"csr"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"csr_full_write_callback"},[{"E_id":[{"Id":"name"}]},{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"csr_name_read_callback"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csr_name_read_callback"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"string"}]},{"P_id":[{"Id":"name"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"csr"}]},{"E_app":[{"Id":"csr_name_map_backwards"},[{"E_id":[{"Id":"name"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"csr_full_read_callback"},[{"E_id":[{"Id":"name"}]},{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"csr_id_read_callback"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csr_id_read_callback"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"name"}]},{"E_app":[{"Id":"csr_name_map_forwards"},[{"E_id":[{"Id":"csr"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"csr_full_read_callback"},[{"E_id":[{"Id":"name"}]},{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"csr_write_callback"},[{"Id":"csr_name_write_callback"},{"Id":"csr_id_write_callback"},{"Id":"csr_full_write_callback"}]]},{"DEF_overload":[{"Id":"csr_read_callback"},[{"Id":"csr_name_read_callback"},{"Id":"csr_id_read_callback"},{"Id":"csr_full_read_callback"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]},{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"long_csr_write_callback"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"long_csr_write_callback"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"string"}]},{"P_id":[{"Id":"name"}]}]},{"P_typ":[{"Typ_id":[{"Id":"string"}]},{"P_id":[{"Id":"name_high"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"csr_name_write_callback"},[{"E_id":[{"Id":"name"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_id":[{"Id":"name_high"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_lit":["L_unit"]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/callbacks.sail"]},{"DEF_pragma":["file_start","core/reg_type.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"regtype"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"regtype"}]},{"P_id":[{"Id":"zero_reg"}]}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"RegStr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"RegStr"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"regtype"}]},{"P_id":[{"Id":"r"}]}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"r"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"regval_from_reg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"regval_from_reg"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"regtype"}]},{"P_id":[{"Id":"r"}]}]},{"E_id":[{"Id":"r"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"regval_into_reg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"regval_into_reg"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]},{"E_id":[{"Id":"v"}]}]}]}]]}},{"DEF_pragma":["file_end","core/reg_type.sail"]},{"DEF_pragma":["file_start","core/regs.sail"]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"PC"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"nextPC"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_reg"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_reg"},{"Typ_annot_opt_none":[]},[{"MCL_forwards":[{"Pat_exp":[{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"r"}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"r"}]}]]}]}]},{"MCL_backwards":[{"Pat_when":[{"P_id":[{"Id":"r"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"base_E_enabled"}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"r"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":["L_zero"]}]]}]]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"r"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"regidx_bit_width"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_creg"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_creg"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Cregidx"},[{"MP_id":[{"Id":"r"}]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"r"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"reg_abi_name_raw"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"reg_abi_name_raw"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zero"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ra"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sp"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"gp"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"tp"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"t0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"t1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"t2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fp"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"a7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"t3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"t4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"t5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"t6"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"reg_arch_name_raw"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"reg_arch_name_raw"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x17"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x18"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x19"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x20"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x21"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x22"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x23"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x24"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x25"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x26"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x27"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x28"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x29"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x30"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x31"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"reg_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"reg_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"get_config_use_abi_names"},[{"E_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"reg_abi_name_raw"},[{"MP_id":[{"Id":"i"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"get_config_use_abi_names"},[{"E_lit":["L_unit"]}]]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"reg_arch_name_raw"},[{"MP_id":[{"Id":"i"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"sp_reg_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"sp_reg_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_when":[{"MP_lit":["L_unit"]},{"E_app":[{"Id":"get_config_use_abi_names"},[{"E_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sp"}]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_lit":["L_unit"]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"get_config_use_abi_names"},[{"E_lit":["L_unit"]}]]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"x2"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"creg_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"creg_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Cregidx"},[{"MP_id":[{"Id":"i"}]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"reg_name"},[{"MP_app":[{"Id":"encdec_reg"},[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_typ":[{"MP_id":[{"Id":"i"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"xreg_write_callback"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"xreg_write_callback"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"reg"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"name"}]},{"E_app":[{"Id":"reg_name_forwards"},[{"E_id":[{"Id":"reg"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"xreg_full_write_callback"},[{"E_id":[{"Id":"name"}]},{"E_id":[{"Id":"reg"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x1"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x2"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x3"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x4"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x5"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x6"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x7"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x8"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x9"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x10"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x11"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x12"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x13"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x14"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x15"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x16"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x17"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x18"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x19"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x20"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x21"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x22"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x23"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x24"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x25"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x26"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x27"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x28"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x29"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x30"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"regtype"}]},{"Id":"x31"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regno"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"rX"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rX"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"regno"}]},{"P_app":[{"Id":"Regno"},[{"P_id":[{"Id":"r"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"regtype"}]},{"P_id":[{"Id":"v"}]}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"zero_reg"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"x1"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"x2"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"x3"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"x4"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"x5"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"x6"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"x7"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"x8"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"x9"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"x10"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_id":[{"Id":"x11"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_id":[{"Id":"x12"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_id":[{"Id":"x13"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_id":[{"Id":"x14"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_id":[{"Id":"x15"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_id":[{"Id":"x16"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_id":[{"Id":"x17"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_id":[{"Id":"x18"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":19}]},{"E_id":[{"Id":"x19"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":20}]},{"E_id":[{"Id":"x20"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":21}]},{"E_id":[{"Id":"x21"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":22}]},{"E_id":[{"Id":"x22"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":23}]},{"E_id":[{"Id":"x23"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":24}]},{"E_id":[{"Id":"x24"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":25}]},{"E_id":[{"Id":"x25"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":26}]},{"E_id":[{"Id":"x26"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":27}]},{"E_id":[{"Id":"x27"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":28}]},{"E_id":[{"Id":"x28"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":29}]},{"E_id":[{"Id":"x29"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":30}]},{"E_id":[{"Id":"x30"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"x31"}]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"regval_from_reg"},[{"E_id":[{"Id":"v"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regno"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wX"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wX"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regno"}]},{"P_app":[{"Id":"Regno"},[{"P_id":[{"Id":"r"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"in_v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"regval_into_reg"},[{"E_id":[{"Id":"in_v"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_assign":[{"LE_id":[{"Id":"x1"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_assign":[{"LE_id":[{"Id":"x2"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_assign":[{"LE_id":[{"Id":"x3"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_assign":[{"LE_id":[{"Id":"x4"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_assign":[{"LE_id":[{"Id":"x5"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_assign":[{"LE_id":[{"Id":"x6"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_assign":[{"LE_id":[{"Id":"x7"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_assign":[{"LE_id":[{"Id":"x8"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_assign":[{"LE_id":[{"Id":"x9"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_assign":[{"LE_id":[{"Id":"x10"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_assign":[{"LE_id":[{"Id":"x11"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_assign":[{"LE_id":[{"Id":"x12"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_assign":[{"LE_id":[{"Id":"x13"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_assign":[{"LE_id":[{"Id":"x14"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_assign":[{"LE_id":[{"Id":"x15"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_assign":[{"LE_id":[{"Id":"x16"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_assign":[{"LE_id":[{"Id":"x17"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_assign":[{"LE_id":[{"Id":"x18"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":19}]},{"E_assign":[{"LE_id":[{"Id":"x19"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":20}]},{"E_assign":[{"LE_id":[{"Id":"x20"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":21}]},{"E_assign":[{"LE_id":[{"Id":"x21"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":22}]},{"E_assign":[{"LE_id":[{"Id":"x22"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":23}]},{"E_assign":[{"LE_id":[{"Id":"x23"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":24}]},{"E_assign":[{"LE_id":[{"Id":"x24"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":25}]},{"E_assign":[{"LE_id":[{"Id":"x25"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":26}]},{"E_assign":[{"LE_id":[{"Id":"x26"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":27}]},{"E_assign":[{"LE_id":[{"Id":"x27"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":28}]},{"E_assign":[{"LE_id":[{"Id":"x28"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":29}]},{"E_assign":[{"LE_id":[{"Id":"x29"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":30}]},{"E_assign":[{"LE_id":[{"Id":"x30"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_wild":[]},{"E_assign":[{"LE_id":[{"Id":"x31"}]},{"E_id":[{"Id":"v"}]}]}]}]]},{"E_if":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"r"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"xreg_write_callback"},[{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"to_bits"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_id":[{"Id":"r"}]}]]}]]},{"E_id":[{"Id":"in_v"}]}]]},{"E_lit":["L_unit"]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"rX_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rX_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"i"}]}]]}]},{"E_app":[{"Id":"rX"},[{"E_app":[{"Id":"Regno"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wX_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wX_bits"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"i"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"wX"},[{"E_app":[{"Id":"Regno"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"i"}]}]]}]]},{"E_id":[{"Id":"data"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Id":"X"},[{"Id":"rX_bits"},{"Id":"wX_bits"},{"Id":"rX"},{"Id":"wX"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]}]]}]}]},{"Id":"rX_pair_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rX_pair_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"rX_bits"},[{"E_app":[{"Id":"regidx_offset_range"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wX_pair_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wX_pair_bits"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_id":[{"Id":"xlen"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_app":[{"Id":"regidx_offset_range"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"xlen"}]}]]}]]}]]},{"E_lit":["L_unit"]}]}]}]}]]}},{"DEF_overload":[{"Id":"X_pair"},[{"Id":"rX_pair_bits"},{"Id":"wX_pair_bits"}]]},{"DEF_pragma":["file_end","core/regs.sail"]},{"DEF_pragma":["file_start","core/pc_access.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"get_arch_pc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_arch_pc"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"PC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"get_next_pc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_next_pc"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"nextPC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"set_next_pc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"set_next_pc"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"pc"}]}]},{"E_block":[[{"E_app":[{"Id":"sail_branch_announce"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"pc"}]}]]},{"E_assign":[{"LE_id":[{"Id":"nextPC"}]},{"E_id":[{"Id":"pc"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"tick_pc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tick_pc"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"PC"}]},{"E_id":[{"Id":"nextPC"}]}]},{"E_app":[{"Id":"pc_write_callback"},[{"E_id":[{"Id":"PC"}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/pc_access.sail"]},{"DEF_pragma":["file_start","core/sys_regs.sail"]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Privilege"}]},{"Id":"cur_privilege"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"cur_inst"},null]}},{"DEF_type":{"TD_record":[{"Id":"Misa"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"undefined_Misa"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Misa"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"Mk_Misa"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Misa"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Misa_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Misa_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Misa_bits"},{"Id":"_set_Misa_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_A"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_A"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_A"},[{"Id":"_update_Misa_A"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_A"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_A"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_A"},[{"Id":"_get_Misa_A"},{"Id":"_set_Misa_A"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_B"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_B"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_B"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_B"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_B"},[{"Id":"_update_Misa_B"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_B"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_B"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_B"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_B"},[{"Id":"_get_Misa_B"},{"Id":"_set_Misa_B"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_C"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_C"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_C"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_C"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_C"},[{"Id":"_update_Misa_C"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_C"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_C"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_C"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_C"},[{"Id":"_get_Misa_C"},{"Id":"_set_Misa_C"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_D"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_D"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_D"},[{"Id":"_update_Misa_D"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_D"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_D"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_D"},[{"Id":"_get_Misa_D"},{"Id":"_set_Misa_D"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_E"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_E"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_E"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_E"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_E"},[{"Id":"_update_Misa_E"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_E"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_E"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_E"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_E"},[{"Id":"_get_Misa_E"},{"Id":"_set_Misa_E"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_F"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_F"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_F"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_F"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_F"},[{"Id":"_update_Misa_F"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_F"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_F"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_F"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_F"},[{"Id":"_get_Misa_F"},{"Id":"_set_Misa_F"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_G"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_G"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_G"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_G"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_G"},[{"Id":"_update_Misa_G"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_G"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_G"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_G"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_G"},[{"Id":"_get_Misa_G"},{"Id":"_set_Misa_G"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_H"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_H"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_H"},[{"Id":"_update_Misa_H"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_H"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_H"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_H"},[{"Id":"_get_Misa_H"},{"Id":"_set_Misa_H"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_I"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_I"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_I"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_I"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_I"},[{"Id":"_update_Misa_I"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_I"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_I"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_I"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_I"},[{"Id":"_get_Misa_I"},{"Id":"_set_Misa_I"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_J"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_J"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_J"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_J"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_J"},[{"Id":"_update_Misa_J"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_J"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_J"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_J"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_J"},[{"Id":"_get_Misa_J"},{"Id":"_set_Misa_J"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_K"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_K"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":10}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_K"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_K"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":10}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_K"},[{"Id":"_update_Misa_K"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_K"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_K"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_K"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_K"},[{"Id":"_get_Misa_K"},{"Id":"_set_Misa_K"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_L"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_L"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":11}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_L"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_L"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":11}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_L"},[{"Id":"_update_Misa_L"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_L"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_L"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_L"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_L"},[{"Id":"_get_Misa_L"},{"Id":"_set_Misa_L"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_M"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_M"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":12}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_M"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_M"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_M"},[{"Id":"_update_Misa_M"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_M"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_M"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_M"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_M"},[{"Id":"_get_Misa_M"},{"Id":"_set_Misa_M"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"_get_Misa_MXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_MXL"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_MXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_MXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MXL"},[{"Id":"_update_Misa_MXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_MXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_MXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_MXL"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MXL"},[{"Id":"_get_Misa_MXL"},{"Id":"_set_Misa_MXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_N"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_N"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":13}]},{"E_lit":[{"L_num":13}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_N"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_N"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":13}]},{"E_lit":[{"L_num":13}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_N"},[{"Id":"_update_Misa_N"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_N"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_N"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_N"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_N"},[{"Id":"_get_Misa_N"},{"Id":"_set_Misa_N"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_O"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_O"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":14}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_O"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_O"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":14}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_O"},[{"Id":"_update_Misa_O"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_O"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_O"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_O"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_O"},[{"Id":"_get_Misa_O"},{"Id":"_set_Misa_O"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_P"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_P"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":15}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_P"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_P"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":15}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_P"},[{"Id":"_update_Misa_P"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_P"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_P"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_P"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_P"},[{"Id":"_get_Misa_P"},{"Id":"_set_Misa_P"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_Q"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_Q"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":16}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_Q"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_Q"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Q"},[{"Id":"_update_Misa_Q"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_Q"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_Q"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_Q"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Q"},[{"Id":"_get_Misa_Q"},{"Id":"_set_Misa_Q"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_R"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_R"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_R"},[{"Id":"_update_Misa_R"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_R"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_R"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_R"},[{"Id":"_get_Misa_R"},{"Id":"_set_Misa_R"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_S"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":18}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_S"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":18}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_S"},[{"Id":"_update_Misa_S"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_S"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_S"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_S"},[{"Id":"_get_Misa_S"},{"Id":"_set_Misa_S"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_T"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_T"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_T"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_T"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_T"},[{"Id":"_update_Misa_T"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_T"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_T"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_T"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_T"},[{"Id":"_get_Misa_T"},{"Id":"_set_Misa_T"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_U"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_U"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":20}]},{"E_lit":[{"L_num":20}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_U"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_U"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":20}]},{"E_lit":[{"L_num":20}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_U"},[{"Id":"_update_Misa_U"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_U"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_U"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_U"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_U"},[{"Id":"_get_Misa_U"},{"Id":"_set_Misa_U"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_V"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_V"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":21}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_V"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_V"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":21}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_V"},[{"Id":"_update_Misa_V"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_V"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_V"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_V"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_V"},[{"Id":"_get_Misa_V"},{"Id":"_set_Misa_V"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_W"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":22}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_W"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":22}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_W"},[{"Id":"_update_Misa_W"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_W"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_W"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_W"},[{"Id":"_get_Misa_W"},{"Id":"_set_Misa_W"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_X"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_X"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_X"},[{"Id":"_update_Misa_X"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_X"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_X"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_X"},[{"Id":"_get_Misa_X"},{"Id":"_set_Misa_X"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_Y"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_Y"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":24}]},{"E_lit":[{"L_num":24}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_Y"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_Y"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":24}]},{"E_lit":[{"L_num":24}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Y"},[{"Id":"_update_Misa_Y"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_Y"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_Y"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_Y"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Y"},[{"Id":"_get_Misa_Y"},{"Id":"_set_Misa_Y"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Misa_Z"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Misa_Z"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":25}]},{"E_lit":[{"L_num":25}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"_update_Misa_Z"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Misa_Z"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":25}]},{"E_lit":[{"L_num":25}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Z"},[{"Id":"_update_Misa_Z"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Misa"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Misa_Z"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Misa_Z"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Misa_Z"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Z"},[{"Id":"_get_Misa_Z"},{"Id":"_set_Misa_Z"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Misa"}]},{"Id":"misa"},{"E_app":[{"Id":"_update_Misa_MXL"},[{"E_app":[{"Id":"Mk_Misa"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_app":[{"Id":"architecture_bits_forwards"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"RV32"}]},{"E_id":[{"Id":"RV64"}]}]}]]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"sys_enable_writable_misa"}]}]},{"E_lit":["L_true"]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"sys_enable_writable_fiom"}]}]},{"E_lit":["L_true"]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"sys_writable_hpm_counters"}]}]},{"E_lit":[{"L_bin":"11111111111111111111111111111111"}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"ext_veto_disable_C"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Misa"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Misa"}]}]}]},{"Id":"legalize_misa"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_misa"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Misa"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_Misa"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"sys_enable_writable_misa"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_C"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"nextPC"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":["L_one"]}]]},{"E_app":[{"Id":"ext_veto_disable_C"},[{"E_lit":["L_unit"]}]]}]]}]]}]]},{"E_id":[{"Id":"m"}]},{"E_app":[{"Id":"_update_Misa_V"},[{"E_app":[{"Id":"_update_Misa_U"},[{"E_app":[{"Id":"_update_Misa_S"},[{"E_app":[{"Id":"_update_Misa_M"},[{"E_app":[{"Id":"_update_Misa_E"},[{"E_app":[{"Id":"_update_Misa_I"},[{"E_app":[{"Id":"_update_Misa_H"},[{"E_app":[{"Id":"_update_Misa_F"},[{"E_app":[{"Id":"_update_Misa_D"},[{"E_app":[{"Id":"_update_Misa_C"},[{"E_app":[{"Id":"_update_Misa_B"},[{"E_app":[{"Id":"_update_Misa_A"},[{"E_id":[{"Id":"m"}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_A"}]}]]},{"E_app":[{"Id":"_get_Misa_A"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_B"}]}]]},{"E_app":[{"Id":"_get_Misa_B"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_C"}]}]]},{"E_app":[{"Id":"_get_Misa_C"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_F"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[{"Id":"_get_Misa_D"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"_get_Misa_F"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_H"}]}]]},{"E_app":[{"Id":"_get_Misa_H"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"base_E_enabled"}]}]]}]]}]]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"base_E_enabled"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"_get_Misa_M"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_U"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[{"Id":"_get_Misa_S"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[{"Id":"_get_Misa_U"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_V"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_F"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_D"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]]},{"E_app":[{"Id":"_get_Misa_V"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"virtual_memory_supported"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"virtual_memory_supported"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv32"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv48"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv57"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Privilege"}]}]}]},{"Id":"lowest_supported_privLevel"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lowest_supported_privLevel"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_id":[{"Id":"User"}]},{"E_id":[{"Id":"Machine"}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"have_nominal_privLevel"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"have_nominal_privLevel"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"nom_priv_bits"}]},{"P_id":[{"Id":"priv"}]}]},{"E_match":[{"E_id":[{"Id":"priv"}]},[{"Pat_exp":[{"P_lit":[{"L_bin":"00"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10"}]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"E_lit":["L_true"]}]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Mstatus"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"undefined_Mstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Mstatus"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"Mk_Mstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Mstatus"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Mstatus_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Mstatus_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Mstatus_bits"},{"Id":"_set_Mstatus_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Mstatus_FS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_FS"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":13}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_FS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_FS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":13}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_FS"},[{"Id":"_update_Mstatus_FS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_FS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_FS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_FS"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_FS"},[{"Id":"_get_Mstatus_FS"},{"Id":"_set_Mstatus_FS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_MBE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_MBE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":37}]},{"E_lit":[{"L_num":37}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_MBE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_MBE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":37}]},{"E_lit":[{"L_num":37}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MBE"},[{"Id":"_update_Mstatus_MBE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_MBE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_MBE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_MBE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MBE"},[{"Id":"_get_Mstatus_MBE"},{"Id":"_set_Mstatus_MBE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_MIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_MIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_MIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_MIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MIE"},[{"Id":"_update_Mstatus_MIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_MIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_MIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_MIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MIE"},[{"Id":"_get_Mstatus_MIE"},{"Id":"_set_Mstatus_MIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_MPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_MPELP"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":41}]},{"E_lit":[{"L_num":41}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_MPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_MPELP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":41}]},{"E_lit":[{"L_num":41}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MPELP"},[{"Id":"_update_Mstatus_MPELP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_MPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_MPELP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_MPELP"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MPELP"},[{"Id":"_get_Mstatus_MPELP"},{"Id":"_set_Mstatus_MPELP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_MPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_MPIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_MPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_MPIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MPIE"},[{"Id":"_update_Mstatus_MPIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_MPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_MPIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_MPIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MPIE"},[{"Id":"_get_Mstatus_MPIE"},{"Id":"_set_Mstatus_MPIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Mstatus_MPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_MPP"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":11}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_MPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_MPP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":11}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MPP"},[{"Id":"_update_Mstatus_MPP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_MPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_MPP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_MPP"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MPP"},[{"Id":"_get_Mstatus_MPP"},{"Id":"_set_Mstatus_MPP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_MPRV"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_MPRV"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_MPRV"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_MPRV"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MPRV"},[{"Id":"_update_Mstatus_MPRV"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_MPRV"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_MPRV"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_MPRV"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MPRV"},[{"Id":"_get_Mstatus_MPRV"},{"Id":"_set_Mstatus_MPRV"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_MXR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_MXR"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_MXR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_MXR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MXR"},[{"Id":"_update_Mstatus_MXR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_MXR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_MXR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_MXR"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MXR"},[{"Id":"_get_Mstatus_MXR"},{"Id":"_set_Mstatus_MXR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_SBE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SBE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":36}]},{"E_lit":[{"L_num":36}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SBE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SBE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":36}]},{"E_lit":[{"L_num":36}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SBE"},[{"Id":"_update_Mstatus_SBE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SBE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SBE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SBE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SBE"},[{"Id":"_get_Mstatus_SBE"},{"Id":"_set_Mstatus_SBE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"_get_Mstatus_SD"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SD"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SD"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SD"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SD"},[{"Id":"_update_Mstatus_SD"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SD"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SD"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SD"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SD"},[{"Id":"_get_Mstatus_SD"},{"Id":"_set_Mstatus_SD"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_SIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SIE"},[{"Id":"_update_Mstatus_SIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SIE"},[{"Id":"_get_Mstatus_SIE"},{"Id":"_set_Mstatus_SIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_SPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SPELP"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SPELP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SPELP"},[{"Id":"_update_Mstatus_SPELP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SPELP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SPELP"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SPELP"},[{"Id":"_get_Mstatus_SPELP"},{"Id":"_set_Mstatus_SPELP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_SPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SPIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SPIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SPIE"},[{"Id":"_update_Mstatus_SPIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SPIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SPIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SPIE"},[{"Id":"_get_Mstatus_SPIE"},{"Id":"_set_Mstatus_SPIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_SPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SPP"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SPP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SPP"},[{"Id":"_update_Mstatus_SPP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SPP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SPP"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SPP"},[{"Id":"_get_Mstatus_SPP"},{"Id":"_set_Mstatus_SPP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_SUM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SUM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":18}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SUM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SUM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":18}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SUM"},[{"Id":"_update_Mstatus_SUM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SUM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SUM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SUM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SUM"},[{"Id":"_get_Mstatus_SUM"},{"Id":"_set_Mstatus_SUM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Mstatus_SXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_SXL"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":35}]},{"E_lit":[{"L_num":34}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_SXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_SXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":35}]},{"E_lit":[{"L_num":34}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SXL"},[{"Id":"_update_Mstatus_SXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_SXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_SXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_SXL"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SXL"},[{"Id":"_get_Mstatus_SXL"},{"Id":"_set_Mstatus_SXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_TSR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_TSR"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":22}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_TSR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_TSR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":22}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_TSR"},[{"Id":"_update_Mstatus_TSR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_TSR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_TSR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_TSR"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_TSR"},[{"Id":"_get_Mstatus_TSR"},{"Id":"_set_Mstatus_TSR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_TVM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_TVM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":20}]},{"E_lit":[{"L_num":20}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_TVM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_TVM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":20}]},{"E_lit":[{"L_num":20}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_TVM"},[{"Id":"_update_Mstatus_TVM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_TVM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_TVM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_TVM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_TVM"},[{"Id":"_get_Mstatus_TVM"},{"Id":"_set_Mstatus_TVM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Mstatus_TW"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_TW"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":21}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_TW"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_TW"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":21}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_TW"},[{"Id":"_update_Mstatus_TW"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_TW"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_TW"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_TW"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_TW"},[{"Id":"_get_Mstatus_TW"},{"Id":"_set_Mstatus_TW"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Mstatus_UXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_UXL"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":33}]},{"E_lit":[{"L_num":32}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_UXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_UXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":33}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_UXL"},[{"Id":"_update_Mstatus_UXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_UXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_UXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_UXL"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_UXL"},[{"Id":"_get_Mstatus_UXL"},{"Id":"_set_Mstatus_UXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Mstatus_VS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_VS"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_VS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_VS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_VS"},[{"Id":"_update_Mstatus_VS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_VS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_VS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_VS"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_VS"},[{"Id":"_get_Mstatus_VS"},{"Id":"_set_Mstatus_VS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Mstatus_XS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mstatus_XS"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":15}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"_update_Mstatus_XS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mstatus_XS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":15}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_XS"},[{"Id":"_update_Mstatus_XS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mstatus_XS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mstatus_XS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mstatus_XS"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_XS"},[{"Id":"_get_Mstatus_XS"},{"Id":"_set_Mstatus_XS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"legalize_mstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_mstatus"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Mstatus"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_Mstatus"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"o"}]},{"E_app":[{"Id":"_update_Mstatus_SIE"},[{"E_app":[{"Id":"_update_Mstatus_MIE"},[{"E_app":[{"Id":"_update_Mstatus_SPIE"},[{"E_app":[{"Id":"_update_Mstatus_MPIE"},[{"E_app":[{"Id":"_update_Mstatus_VS"},[{"E_app":[{"Id":"_update_Mstatus_SPP"},[{"E_app":[{"Id":"_update_Mstatus_MPP"},[{"E_app":[{"Id":"_update_Mstatus_FS"},[{"E_app":[{"Id":"_update_Mstatus_XS"},[{"E_app":[{"Id":"_update_Mstatus_MPRV"},[{"E_app":[{"Id":"_update_Mstatus_SUM"},[{"E_app":[{"Id":"_update_Mstatus_MXR"},[{"E_app":[{"Id":"_update_Mstatus_TVM"},[{"E_app":[{"Id":"_update_Mstatus_TW"},[{"E_app":[{"Id":"_update_Mstatus_TSR"},[{"E_app":[{"Id":"_update_Mstatus_SPELP"},[{"E_app":[{"Id":"_update_Mstatus_MPELP"},[{"E_id":[{"Id":"o"}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"_get_Mstatus_MPELP"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"_get_Mstatus_SPELP"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Mstatus_TSR"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[{"Id":"_get_Mstatus_TW"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Mstatus_TVM"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Mstatus_MXR"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"virtual_memory_supported"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"_get_Mstatus_SUM"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[{"Id":"_get_Mstatus_MPRV"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_app":[{"Id":"extStatus_to_bits"},[{"E_id":[{"Id":"Off"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]},{"E_app":[{"Id":"extStatus_to_bits"},[{"E_id":[{"Id":"Off"}]}]]},{"E_app":[{"Id":"_get_Mstatus_FS"},[{"E_id":[{"Id":"v"}]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"have_nominal_privLevel"},[{"E_app":[{"Id":"_get_Mstatus_MPP"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_MPP"},[{"E_id":[{"Id":"v"}]}]]},{"E_app":[{"Id":"privLevel_to_bits"},[{"E_app":[{"Id":"lowest_supported_privLevel"},[{"E_lit":["L_unit"]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Mstatus_SPP"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]},{"E_app":[{"Id":"_get_Mstatus_VS"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"00"}]}]}]]},{"E_app":[{"Id":"_get_Mstatus_MPIE"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Mstatus_SPIE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_app":[{"Id":"_get_Mstatus_MIE"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Mstatus_SIE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dirty"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"extStatus_of_bits"},[{"E_app":[{"Id":"_get_Mstatus_FS"},[{"E_id":[{"Id":"o"}]}]]}]]},{"E_id":[{"Id":"Dirty"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"extStatus_of_bits"},[{"E_app":[{"Id":"_get_Mstatus_XS"},[{"E_id":[{"Id":"o"}]}]]}]]},{"E_id":[{"Id":"Dirty"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"extStatus_of_bits"},[{"E_app":[{"Id":"_get_Mstatus_VS"},[{"E_id":[{"Id":"o"}]}]]}]]},{"E_id":[{"Id":"Dirty"}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Mstatus_SD"},[{"E_id":[{"Id":"o"}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"dirty"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Mstatus"}]},{"Id":"mstatus"},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mxl"}]},{"E_app":[{"Id":"architecture_bits_forwards"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"RV32"}]},{"E_id":[{"Id":"RV64"}]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Mstatus_UXL"},[{"E_app":[{"Id":"_update_Mstatus_SXL"},[{"E_app":[{"Id":"Mk_Mstatus"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]},{"E_id":[{"Id":"mxl"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":2}]}]]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_U"}]}]]}]]},{"E_id":[{"Id":"mxl"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":2}]}]]}]}]]}]]}]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"Architecture"}]}]}]},{"Id":"architecture"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"architecture"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_return":[{"E_id":[{"Id":"RV32"}]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"architecture_bits_backwards"},[{"E_match":[{"E_id":[{"Id":"priv"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"_get_Misa_MXL"},[{"E_id":[{"Id":"misa"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"_get_Mstatus_SXL"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"_get_Mstatus_UXL"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/sys_regs.sail"}]},{"E_lit":[{"L_num":286}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/sys_regs.sail"}]},{"E_lit":[{"L_num":287}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"in32BitMode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"in32BitMode"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"architecture"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_id":[{"Id":"RV32"}]}]]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Seccfg"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Seccfg"}]}]}]},{"Id":"undefined_Seccfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Seccfg"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Seccfg"}]}]}]},{"Id":"Mk_Seccfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Seccfg"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Seccfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Seccfg_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Seccfg"}]}]}]},{"Id":"_update_Seccfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Seccfg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Seccfg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Seccfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Seccfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Seccfg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Seccfg_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Seccfg_bits"},{"Id":"_set_Seccfg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Seccfg_MLPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Seccfg_MLPE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":10}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Seccfg"}]}]}]},{"Id":"_update_Seccfg_MLPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Seccfg_MLPE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":10}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MLPE"},[{"Id":"_update_Seccfg_MLPE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Seccfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Seccfg_MLPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Seccfg_MLPE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Seccfg_MLPE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MLPE"},[{"Id":"_get_Seccfg_MLPE"},{"Id":"_set_Seccfg_MLPE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Seccfg_SSEED"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Seccfg_SSEED"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Seccfg"}]}]}]},{"Id":"_update_Seccfg_SSEED"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Seccfg_SSEED"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SSEED"},[{"Id":"_update_Seccfg_SSEED"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Seccfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Seccfg_SSEED"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Seccfg_SSEED"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Seccfg_SSEED"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SSEED"},[{"Id":"_get_Seccfg_SSEED"},{"Id":"_set_Seccfg_SSEED"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Seccfg_USEED"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Seccfg_USEED"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Seccfg"}]}]}]},{"Id":"_update_Seccfg_USEED"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Seccfg_USEED"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_USEED"},[{"Id":"_update_Seccfg_USEED"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Seccfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Seccfg_USEED"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Seccfg_USEED"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Seccfg_USEED"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_USEED"},[{"Id":"_get_Seccfg_USEED"},{"Id":"_set_Seccfg_USEED"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Seccfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Seccfg"}]}]}]},{"Id":"legalize_mseccfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_mseccfg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Seccfg"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sseed_read_only_zero"}]},{"E_app":[["Or_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_false"]}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkr"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"useed_read_only_zero"}]},{"E_app":[["Or_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_false"]}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkr"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_Seccfg"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Seccfg_USEED"},[{"E_app":[{"Id":"_update_Seccfg_SSEED"},[{"E_app":[{"Id":"_update_Seccfg_MLPE"},[{"E_id":[{"Id":"o"}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"_get_Seccfg_MLPE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_id":[{"Id":"sseed_read_only_zero"}]},{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"_get_Seccfg_SSEED"},[{"E_id":[{"Id":"v"}]}]]}]}]]},{"E_if":[{"E_id":[{"Id":"useed_read_only_zero"}]},{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"_get_Seccfg_USEED"},[{"E_id":[{"Id":"v"}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Seccfg"}]},{"Id":"mseccfg"},{"E_app":[{"Id":"legalize_mseccfg"},[{"E_app":[{"Id":"Mk_Seccfg"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]}},{"DEF_type":{"TD_record":[{"Id":"MEnvcfg"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"undefined_MEnvcfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_MEnvcfg"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"Mk_MEnvcfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_MEnvcfg"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_MEnvcfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_MEnvcfg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_MEnvcfg_bits"},{"Id":"_set_MEnvcfg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_MEnvcfg_CBCFE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_CBCFE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_CBCFE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_CBCFE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CBCFE"},[{"Id":"_update_MEnvcfg_CBCFE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_CBCFE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_CBCFE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_CBCFE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CBCFE"},[{"Id":"_get_MEnvcfg_CBCFE"},{"Id":"_set_MEnvcfg_CBCFE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_MEnvcfg_CBIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_CBIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":4}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_CBIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_CBIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CBIE"},[{"Id":"_update_MEnvcfg_CBIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_CBIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_CBIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_CBIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CBIE"},[{"Id":"_get_MEnvcfg_CBIE"},{"Id":"_set_MEnvcfg_CBIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_MEnvcfg_CBZE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_CBZE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_CBZE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_CBZE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CBZE"},[{"Id":"_update_MEnvcfg_CBZE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_CBZE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_CBZE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_CBZE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CBZE"},[{"Id":"_get_MEnvcfg_CBZE"},{"Id":"_set_MEnvcfg_CBZE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_MEnvcfg_FIOM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_FIOM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_FIOM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_FIOM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_FIOM"},[{"Id":"_update_MEnvcfg_FIOM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_FIOM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_FIOM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_FIOM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_FIOM"},[{"Id":"_get_MEnvcfg_FIOM"},{"Id":"_set_MEnvcfg_FIOM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_MEnvcfg_LPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_LPE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_LPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_LPE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_LPE"},[{"Id":"_update_MEnvcfg_LPE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_LPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_LPE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_LPE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_LPE"},[{"Id":"_get_MEnvcfg_LPE"},{"Id":"_set_MEnvcfg_LPE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_MEnvcfg_PBMTE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_PBMTE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":62}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_PBMTE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_PBMTE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":62}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_PBMTE"},[{"Id":"_update_MEnvcfg_PBMTE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_PBMTE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_PBMTE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_PBMTE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_PBMTE"},[{"Id":"_get_MEnvcfg_PBMTE"},{"Id":"_set_MEnvcfg_PBMTE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_MEnvcfg_STCE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_MEnvcfg_STCE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":63}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"_update_MEnvcfg_STCE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_MEnvcfg_STCE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":63}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_STCE"},[{"Id":"_update_MEnvcfg_STCE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_MEnvcfg_STCE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_MEnvcfg_STCE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_MEnvcfg_STCE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_STCE"},[{"Id":"_get_MEnvcfg_STCE"},{"Id":"_set_MEnvcfg_STCE"}]]},{"DEF_type":{"TD_record":[{"Id":"SEnvcfg"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"undefined_SEnvcfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_SEnvcfg"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"Mk_SEnvcfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_SEnvcfg"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_SEnvcfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_SEnvcfg_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"_update_SEnvcfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_SEnvcfg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_SEnvcfg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"SEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_SEnvcfg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_SEnvcfg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_SEnvcfg_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_SEnvcfg_bits"},{"Id":"_set_SEnvcfg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_SEnvcfg_CBCFE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_SEnvcfg_CBCFE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"_update_SEnvcfg_CBCFE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_SEnvcfg_CBCFE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CBCFE"},[{"Id":"_update_SEnvcfg_CBCFE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"SEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_SEnvcfg_CBCFE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_SEnvcfg_CBCFE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_SEnvcfg_CBCFE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CBCFE"},[{"Id":"_get_SEnvcfg_CBCFE"},{"Id":"_set_SEnvcfg_CBCFE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_SEnvcfg_CBIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_SEnvcfg_CBIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":4}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"_update_SEnvcfg_CBIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_SEnvcfg_CBIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CBIE"},[{"Id":"_update_SEnvcfg_CBIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"SEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_SEnvcfg_CBIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_SEnvcfg_CBIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_SEnvcfg_CBIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CBIE"},[{"Id":"_get_SEnvcfg_CBIE"},{"Id":"_set_SEnvcfg_CBIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_SEnvcfg_CBZE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_SEnvcfg_CBZE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"_update_SEnvcfg_CBZE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_SEnvcfg_CBZE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CBZE"},[{"Id":"_update_SEnvcfg_CBZE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"SEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_SEnvcfg_CBZE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_SEnvcfg_CBZE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_SEnvcfg_CBZE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CBZE"},[{"Id":"_get_SEnvcfg_CBZE"},{"Id":"_set_SEnvcfg_CBZE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_SEnvcfg_FIOM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_SEnvcfg_FIOM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"_update_SEnvcfg_FIOM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_SEnvcfg_FIOM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_FIOM"},[{"Id":"_update_SEnvcfg_FIOM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"SEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_SEnvcfg_FIOM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_SEnvcfg_FIOM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_SEnvcfg_FIOM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_FIOM"},[{"Id":"_get_SEnvcfg_FIOM"},{"Id":"_set_SEnvcfg_FIOM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_SEnvcfg_LPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_SEnvcfg_LPE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"_update_SEnvcfg_LPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_SEnvcfg_LPE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_LPE"},[{"Id":"_update_SEnvcfg_LPE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"SEnvcfg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_SEnvcfg_LPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_SEnvcfg_LPE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_SEnvcfg_LPE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_LPE"},[{"Id":"_get_SEnvcfg_LPE"},{"Id":"_set_SEnvcfg_LPE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"MEnvcfg"}]}]}]},{"Id":"legalize_menvcfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_menvcfg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"MEnvcfg"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_MEnvcfg"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_MEnvcfg_STCE"},[{"E_app":[{"Id":"_update_MEnvcfg_CBIE"},[{"E_app":[{"Id":"_update_MEnvcfg_CBCFE"},[{"E_app":[{"Id":"_update_MEnvcfg_CBZE"},[{"E_app":[{"Id":"_update_MEnvcfg_LPE"},[{"E_app":[{"Id":"_update_MEnvcfg_FIOM"},[{"E_id":[{"Id":"o"}]},{"E_if":[{"E_id":[{"Id":"sys_enable_writable_fiom"}]},{"E_app":[{"Id":"_get_MEnvcfg_FIOM"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"_get_MEnvcfg_LPE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicboz"}]}]]},{"E_app":[{"Id":"_get_MEnvcfg_CBZE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbom"}]}]]},{"E_app":[{"Id":"_get_MEnvcfg_CBCFE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbom"}]}]]},{"E_if":[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_MEnvcfg_CBIE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"_get_MEnvcfg_CBIE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"00"}]}]},{"E_lit":[{"L_bin":"00"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sstc"}]}]]},{"E_app":[{"Id":"_get_MEnvcfg_STCE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"SEnvcfg"}]}]}]},{"Id":"legalize_senvcfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_senvcfg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"SEnvcfg"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_SEnvcfg"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_SEnvcfg_CBIE"},[{"E_app":[{"Id":"_update_SEnvcfg_CBCFE"},[{"E_app":[{"Id":"_update_SEnvcfg_CBZE"},[{"E_app":[{"Id":"_update_SEnvcfg_LPE"},[{"E_app":[{"Id":"_update_SEnvcfg_FIOM"},[{"E_id":[{"Id":"o"}]},{"E_if":[{"E_id":[{"Id":"sys_enable_writable_fiom"}]},{"E_app":[{"Id":"_get_SEnvcfg_FIOM"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"_get_SEnvcfg_LPE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicboz"}]}]]},{"E_app":[{"Id":"_get_SEnvcfg_CBZE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbom"}]}]]},{"E_app":[{"Id":"_get_SEnvcfg_CBCFE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbom"}]}]]},{"E_if":[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_SEnvcfg_CBIE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"_get_SEnvcfg_CBIE"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"00"}]}]},{"E_lit":[{"L_bin":"00"}]}]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"MEnvcfg"}]},{"Id":"menvcfg"},{"E_app":[{"Id":"legalize_menvcfg"},[{"E_app":[{"Id":"Mk_MEnvcfg"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"SEnvcfg"}]},{"Id":"senvcfg"},{"E_app":[{"Id":"legalize_senvcfg"},[{"E_app":[{"Id":"Mk_SEnvcfg"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_fiom_active"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_fiom_active"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"cur_privilege"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_MEnvcfg_FIOM"},[{"E_id":[{"Id":"menvcfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"_get_MEnvcfg_FIOM"},[{"E_id":[{"Id":"menvcfg"}]}]]},{"E_app":[{"Id":"_get_SEnvcfg_FIOM"},[{"E_id":[{"Id":"senvcfg"}]}]]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/sys_regs.sail"}]},{"E_lit":[{"L_num":433}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/sys_regs.sail"}]},{"E_lit":[{"L_num":434}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Minterrupts"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"undefined_Minterrupts"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Minterrupts"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"Mk_Minterrupts"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Minterrupts"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Minterrupts_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Minterrupts_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"_update_Minterrupts_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Minterrupts_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Minterrupts_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Minterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Minterrupts_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Minterrupts_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Minterrupts_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Minterrupts_bits"},{"Id":"_set_Minterrupts_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Minterrupts_MEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Minterrupts_MEI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":11}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"_update_Minterrupts_MEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Minterrupts_MEI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":11}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MEI"},[{"Id":"_update_Minterrupts_MEI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Minterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Minterrupts_MEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Minterrupts_MEI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Minterrupts_MEI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MEI"},[{"Id":"_get_Minterrupts_MEI"},{"Id":"_set_Minterrupts_MEI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Minterrupts_MSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Minterrupts_MSI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"_update_Minterrupts_MSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Minterrupts_MSI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MSI"},[{"Id":"_update_Minterrupts_MSI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Minterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Minterrupts_MSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Minterrupts_MSI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Minterrupts_MSI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MSI"},[{"Id":"_get_Minterrupts_MSI"},{"Id":"_set_Minterrupts_MSI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Minterrupts_MTI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Minterrupts_MTI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"_update_Minterrupts_MTI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Minterrupts_MTI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MTI"},[{"Id":"_update_Minterrupts_MTI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Minterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Minterrupts_MTI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Minterrupts_MTI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Minterrupts_MTI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MTI"},[{"Id":"_get_Minterrupts_MTI"},{"Id":"_set_Minterrupts_MTI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Minterrupts_SEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Minterrupts_SEI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"_update_Minterrupts_SEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Minterrupts_SEI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SEI"},[{"Id":"_update_Minterrupts_SEI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Minterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Minterrupts_SEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Minterrupts_SEI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Minterrupts_SEI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SEI"},[{"Id":"_get_Minterrupts_SEI"},{"Id":"_set_Minterrupts_SEI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Minterrupts_SSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Minterrupts_SSI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"_update_Minterrupts_SSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Minterrupts_SSI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SSI"},[{"Id":"_update_Minterrupts_SSI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Minterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Minterrupts_SSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Minterrupts_SSI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Minterrupts_SSI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SSI"},[{"Id":"_get_Minterrupts_SSI"},{"Id":"_set_Minterrupts_SSI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Minterrupts_STI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Minterrupts_STI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"_update_Minterrupts_STI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Minterrupts_STI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_STI"},[{"Id":"_update_Minterrupts_STI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Minterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Minterrupts_STI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Minterrupts_STI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Minterrupts_STI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_STI"},[{"Id":"_get_Minterrupts_STI"},{"Id":"_set_Minterrupts_STI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"legalize_mip"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_mip"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_Minterrupts"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Minterrupts_STI"},[{"E_app":[{"Id":"_update_Minterrupts_SSI"},[{"E_app":[{"Id":"_update_Minterrupts_SEI"},[{"E_id":[{"Id":"o"}]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sstc"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_MEnvcfg_STCE"},[{"E_id":[{"Id":"menvcfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_lit":[{"L_bin":"0"}]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"legalize_mie"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_mie"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_Minterrupts"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Minterrupts_SSI"},[{"E_app":[{"Id":"_update_Minterrupts_STI"},[{"E_app":[{"Id":"_update_Minterrupts_SEI"},[{"E_app":[{"Id":"_update_Minterrupts_MSI"},[{"E_app":[{"Id":"_update_Minterrupts_MTI"},[{"E_app":[{"Id":"_update_Minterrupts_MEI"},[{"E_id":[{"Id":"o"}]},{"E_app":[{"Id":"_get_Minterrupts_MEI"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_app":[{"Id":"_get_Minterrupts_MTI"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_app":[{"Id":"_get_Minterrupts_MSI"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"legalize_mideleg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_mideleg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"_update_Minterrupts_MSI"},[{"E_app":[{"Id":"_update_Minterrupts_MTI"},[{"E_app":[{"Id":"_update_Minterrupts_MEI"},[{"E_app":[{"Id":"Mk_Minterrupts"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Medeleg"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"undefined_Medeleg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Medeleg"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"Mk_Medeleg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Medeleg"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Medeleg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Medeleg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Medeleg_bits"},{"Id":"_set_Medeleg_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Breakpoint"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Breakpoint"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Breakpoint"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Breakpoint"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Breakpoint"},[{"Id":"_update_Medeleg_Breakpoint"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Breakpoint"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Breakpoint"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Breakpoint"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Breakpoint"},[{"Id":"_get_Medeleg_Breakpoint"},{"Id":"_set_Medeleg_Breakpoint"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Fetch_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Fetch_Access_Fault"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Fetch_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Fetch_Access_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Fetch_Access_Fault"},[{"Id":"_update_Medeleg_Fetch_Access_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Fetch_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Fetch_Access_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Fetch_Access_Fault"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Fetch_Access_Fault"},[{"Id":"_get_Medeleg_Fetch_Access_Fault"},{"Id":"_set_Medeleg_Fetch_Access_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Fetch_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Fetch_Addr_Align"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Fetch_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Fetch_Addr_Align"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Fetch_Addr_Align"},[{"Id":"_update_Medeleg_Fetch_Addr_Align"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Fetch_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Fetch_Addr_Align"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Fetch_Addr_Align"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Fetch_Addr_Align"},[{"Id":"_get_Medeleg_Fetch_Addr_Align"},{"Id":"_set_Medeleg_Fetch_Addr_Align"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Fetch_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Fetch_Page_Fault"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":12}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Fetch_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Fetch_Page_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Fetch_Page_Fault"},[{"Id":"_update_Medeleg_Fetch_Page_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Fetch_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Fetch_Page_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Fetch_Page_Fault"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Fetch_Page_Fault"},[{"Id":"_get_Medeleg_Fetch_Page_Fault"},{"Id":"_set_Medeleg_Fetch_Page_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Illegal_Instr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Illegal_Instr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Illegal_Instr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Illegal_Instr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Illegal_Instr"},[{"Id":"_update_Medeleg_Illegal_Instr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Illegal_Instr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Illegal_Instr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Illegal_Instr"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Illegal_Instr"},[{"Id":"_get_Medeleg_Illegal_Instr"},{"Id":"_set_Medeleg_Illegal_Instr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Load_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Load_Access_Fault"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Load_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Load_Access_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Load_Access_Fault"},[{"Id":"_update_Medeleg_Load_Access_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Load_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Load_Access_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Load_Access_Fault"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Load_Access_Fault"},[{"Id":"_get_Medeleg_Load_Access_Fault"},{"Id":"_set_Medeleg_Load_Access_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Load_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Load_Addr_Align"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Load_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Load_Addr_Align"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Load_Addr_Align"},[{"Id":"_update_Medeleg_Load_Addr_Align"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Load_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Load_Addr_Align"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Load_Addr_Align"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Load_Addr_Align"},[{"Id":"_get_Medeleg_Load_Addr_Align"},{"Id":"_set_Medeleg_Load_Addr_Align"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_Load_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_Load_Page_Fault"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":13}]},{"E_lit":[{"L_num":13}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_Load_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_Load_Page_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":13}]},{"E_lit":[{"L_num":13}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Load_Page_Fault"},[{"Id":"_update_Medeleg_Load_Page_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_Load_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_Load_Page_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_Load_Page_Fault"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Load_Page_Fault"},[{"Id":"_get_Medeleg_Load_Page_Fault"},{"Id":"_set_Medeleg_Load_Page_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_MEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_MEnvCall"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":11}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_MEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_MEnvCall"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":11}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MEnvCall"},[{"Id":"_update_Medeleg_MEnvCall"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_MEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_MEnvCall"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_MEnvCall"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MEnvCall"},[{"Id":"_get_Medeleg_MEnvCall"},{"Id":"_set_Medeleg_MEnvCall"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_SAMO_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_SAMO_Access_Fault"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_SAMO_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_SAMO_Access_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SAMO_Access_Fault"},[{"Id":"_update_Medeleg_SAMO_Access_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_SAMO_Access_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_SAMO_Access_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_SAMO_Access_Fault"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SAMO_Access_Fault"},[{"Id":"_get_Medeleg_SAMO_Access_Fault"},{"Id":"_set_Medeleg_SAMO_Access_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_SAMO_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_SAMO_Addr_Align"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_SAMO_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_SAMO_Addr_Align"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SAMO_Addr_Align"},[{"Id":"_update_Medeleg_SAMO_Addr_Align"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_SAMO_Addr_Align"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_SAMO_Addr_Align"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_SAMO_Addr_Align"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SAMO_Addr_Align"},[{"Id":"_get_Medeleg_SAMO_Addr_Align"},{"Id":"_set_Medeleg_SAMO_Addr_Align"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_SAMO_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_SAMO_Page_Fault"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":15}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_SAMO_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_SAMO_Page_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":15}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SAMO_Page_Fault"},[{"Id":"_update_Medeleg_SAMO_Page_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_SAMO_Page_Fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_SAMO_Page_Fault"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_SAMO_Page_Fault"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SAMO_Page_Fault"},[{"Id":"_get_Medeleg_SAMO_Page_Fault"},{"Id":"_set_Medeleg_SAMO_Page_Fault"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_SEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_SEnvCall"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_SEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_SEnvCall"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SEnvCall"},[{"Id":"_update_Medeleg_SEnvCall"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_SEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_SEnvCall"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_SEnvCall"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SEnvCall"},[{"Id":"_get_Medeleg_SEnvCall"},{"Id":"_set_Medeleg_SEnvCall"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Medeleg_UEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Medeleg_UEnvCall"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"_update_Medeleg_UEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Medeleg_UEnvCall"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_UEnvCall"},[{"Id":"_update_Medeleg_UEnvCall"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Medeleg"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Medeleg_UEnvCall"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Medeleg_UEnvCall"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Medeleg_UEnvCall"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_UEnvCall"},[{"Id":"_get_Medeleg_UEnvCall"},{"Id":"_set_Medeleg_UEnvCall"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Medeleg"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Medeleg"}]}]}]},{"Id":"legalize_medeleg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_medeleg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Medeleg"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"_update_Medeleg_MEnvCall"},[{"E_app":[{"Id":"Mk_Medeleg"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Minterrupts"}]},{"Id":"mie"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Minterrupts"}]},{"Id":"mip"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Medeleg"}]},{"Id":"medeleg"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Minterrupts"}]},{"Id":"mideleg"},null]}},{"DEF_type":{"TD_record":[{"Id":"Mtvec"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Mtvec"}]}]}]},{"Id":"undefined_Mtvec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Mtvec"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mtvec"}]}]}]},{"Id":"Mk_Mtvec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Mtvec"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Mtvec_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mtvec_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mtvec"}]}]}]},{"Id":"_update_Mtvec_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mtvec_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Mtvec_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mtvec"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mtvec_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mtvec_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mtvec_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Mtvec_bits"},{"Id":"_set_Mtvec_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]}]]}]}]},{"Id":"_get_Mtvec_Base"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mtvec_Base"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]}]]}],{"Typ_id":[{"Id":"Mtvec"}]}]}]},{"Id":"_update_Mtvec_Base"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mtvec_Base"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Base"},[{"Id":"_update_Mtvec_Base"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mtvec"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[2]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mtvec_Base"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mtvec_Base"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mtvec_Base"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Base"},[{"Id":"_get_Mtvec_Base"},{"Id":"_set_Mtvec_Base"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Mtvec_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mtvec_Mode"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Mtvec"}]}]}]},{"Id":"_update_Mtvec_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mtvec_Mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Mode"},[{"Id":"_update_Mtvec_Mode"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mtvec"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mtvec_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mtvec_Mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mtvec_Mode"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Mode"},[{"Id":"_get_Mtvec_Mode"},{"Id":"_set_Mtvec_Mode"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Mtvec"}]},{"Id":"mtvec"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mtvec"}]}]}]},{"Id":"legalize_tvec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_tvec"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Mtvec"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_Mtvec"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"trapVectorMode_of_bits"},[{"E_app":[{"Id":"_get_Mtvec_Mode"},[{"E_id":[{"Id":"v"}]}]]}]]},[{"Pat_exp":[{"P_id":[{"Id":"TV_Direct"}]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_id":[{"Id":"TV_Vector"}]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"_update_Mtvec_Mode"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"_get_Mtvec_Mode"},[{"E_id":[{"Id":"o"}]}]]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Mcause"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Mcause"}]}]}]},{"Id":"undefined_Mcause"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Mcause"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mcause"}]}]}]},{"Id":"Mk_Mcause"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Mcause"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mcause"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Mcause_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mcause_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mcause"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mcause"}]}]}]},{"Id":"_update_Mcause_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mcause_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Mcause_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mcause"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mcause_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mcause_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mcause_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Mcause_bits"},{"Id":"_set_Mcause_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mcause"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"_get_Mcause_Cause"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mcause_Cause"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mcause"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"Mcause"}]}]}]},{"Id":"_update_Mcause_Cause"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mcause_Cause"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Cause"},[{"Id":"_update_Mcause_Cause"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mcause"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mcause_Cause"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mcause_Cause"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mcause_Cause"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Cause"},[{"Id":"_get_Mcause_Cause"},{"Id":"_set_Mcause_Cause"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mcause"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"_get_Mcause_IsInterrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Mcause_IsInterrupt"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mcause"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"Mcause"}]}]}]},{"Id":"_update_Mcause_IsInterrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Mcause_IsInterrupt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_IsInterrupt"},[{"Id":"_update_Mcause_IsInterrupt"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Mcause"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Mcause_IsInterrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Mcause_IsInterrupt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Mcause_IsInterrupt"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_IsInterrupt"},[{"Id":"_get_Mcause_IsInterrupt"},{"Id":"_set_Mcause_IsInterrupt"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Mcause"}]},{"Id":"mcause"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mtvec"}]},{"Typ_id":[{"Id":"Mcause"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]]}]}]},{"Id":"tvec_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tvec_addr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Mtvec"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Mcause"}]},{"P_id":[{"Id":"c"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"base"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_Mtvec_Base"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_bin":"00"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"trapVectorMode_of_bits"},[{"E_app":[{"Id":"_get_Mtvec_Mode"},[{"E_id":[{"Id":"m"}]}]]}]]},[{"Pat_exp":[{"P_id":[{"Id":"TV_Direct"}]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"base"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"TV_Vector"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mcause_IsInterrupt"},[{"E_id":[{"Id":"c"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"base"}]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Mcause_Cause"},[{"E_id":[{"Id":"c"}]}]]}]]},{"E_lit":[{"L_num":2}]}]]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"base"}]}]]}]}]},{"Pat_exp":[{"P_id":[{"Id":"TV_Reserved"}]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"mepc"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"legalize_xepc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_xepc"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zca"}]}]]},{"E_app":[{"Id":"bitvector_update"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":0}]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"update_subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"align_pc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"align_pc"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"addr"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]},{"E_app":[{"Id":"bitvector_update"},[{"E_id":[{"Id":"addr"}]},{"E_lit":[{"L_num":0}]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"update_subrange_bits"},[{"E_id":[{"Id":"addr"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"mtval"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"mscratch"},null]}},{"DEF_type":{"TD_record":[{"Id":"Counteren"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"undefined_Counteren"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Counteren"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"Mk_Counteren"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Counteren"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_Counteren_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counteren_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"_update_Counteren_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counteren_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Counteren_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counteren"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counteren_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counteren_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counteren_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Counteren_bits"},{"Id":"_set_Counteren_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Counteren_CY"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counteren_CY"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"_update_Counteren_CY"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counteren_CY"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CY"},[{"Id":"_update_Counteren_CY"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counteren"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counteren_CY"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counteren_CY"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counteren_CY"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CY"},[{"Id":"_get_Counteren_CY"},{"Id":"_set_Counteren_CY"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]}]}]},{"Id":"_get_Counteren_HPM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counteren_HPM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"_update_Counteren_HPM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counteren_HPM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_HPM"},[{"Id":"_update_Counteren_HPM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counteren"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counteren_HPM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counteren_HPM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counteren_HPM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_HPM"},[{"Id":"_get_Counteren_HPM"},{"Id":"_set_Counteren_HPM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Counteren_IR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counteren_IR"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"_update_Counteren_IR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counteren_IR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_IR"},[{"Id":"_update_Counteren_IR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counteren"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counteren_IR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counteren_IR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counteren_IR"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_IR"},[{"Id":"_get_Counteren_IR"},{"Id":"_set_Counteren_IR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Counteren_TM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counteren_TM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"_update_Counteren_TM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counteren_TM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_TM"},[{"Id":"_update_Counteren_TM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counteren"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counteren_TM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counteren_TM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counteren_TM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_TM"},[{"Id":"_get_Counteren_TM"},{"Id":"_set_Counteren_TM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"legalize_scounteren"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_scounteren"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Counteren"}]},{"P_id":[{"Id":"c"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"supported_counters"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sys_writable_hpm_counters"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_bin":"111"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Mk_Counteren"},[{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"supported_counters"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Counteren"}]},{"Id":"scounteren"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counteren"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Counteren"}]}]}]},{"Id":"legalize_mcounteren"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_mcounteren"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Counteren"}]},{"P_id":[{"Id":"c"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"supported_counters"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sys_writable_hpm_counters"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_bin":"111"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Mk_Counteren"},[{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"supported_counters"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Counteren"}]},{"Id":"mcounteren"},null]}},{"DEF_type":{"TD_record":[{"Id":"Counterin"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Counterin"}]}]}]},{"Id":"undefined_Counterin"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Counterin"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Counterin"}]}]}]},{"Id":"Mk_Counterin"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Counterin"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_Counterin_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counterin_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Counterin"}]}]}]},{"Id":"_update_Counterin_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counterin_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Counterin_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counterin"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counterin_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counterin_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counterin_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Counterin_bits"},{"Id":"_set_Counterin_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Counterin_CY"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counterin_CY"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Counterin"}]}]}]},{"Id":"_update_Counterin_CY"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counterin_CY"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_CY"},[{"Id":"_update_Counterin_CY"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counterin"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counterin_CY"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counterin_CY"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counterin_CY"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_CY"},[{"Id":"_get_Counterin_CY"},{"Id":"_set_Counterin_CY"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]}]}]},{"Id":"_get_Counterin_HPM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counterin_HPM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]}],{"Typ_id":[{"Id":"Counterin"}]}]}]},{"Id":"_update_Counterin_HPM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counterin_HPM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_HPM"},[{"Id":"_update_Counterin_HPM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counterin"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[29]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counterin_HPM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counterin_HPM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counterin_HPM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_HPM"},[{"Id":"_get_Counterin_HPM"},{"Id":"_set_Counterin_HPM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Counterin_IR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Counterin_IR"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Counterin"}]}]}]},{"Id":"_update_Counterin_IR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Counterin_IR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_IR"},[{"Id":"_update_Counterin_IR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Counterin"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Counterin_IR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Counterin_IR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Counterin_IR"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_IR"},[{"Id":"_get_Counterin_IR"},{"Id":"_set_Counterin_IR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Counterin"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Counterin"}]}]}]},{"Id":"legalize_mcountinhibit"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_mcountinhibit"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Counterin"}]},{"P_id":[{"Id":"c"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"supported_counters"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sys_writable_hpm_counters"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_bin":"101"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Mk_Counterin"},[{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"supported_counters"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Counterin"}]},{"Id":"mcountinhibit"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"mcycle"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"mtime"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"minstret"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"bool"}]},{"Id":"minstret_increment"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Id":"mvendorid"},{"E_app":[{"Id":"to_bits_checked"},[{"E_lit":[{"L_num":32}]},{"E_typ":[{"Typ_id":[{"Id":"int"}]},{"E_lit":[{"L_num":0}]}]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"mimpid"},{"E_app":[{"Id":"to_bits_checked"},[{"E_lit":[{"L_num":64}]},{"E_typ":[{"Typ_id":[{"Id":"int"}]},{"E_lit":[{"L_num":0}]}]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"marchid"},{"E_app":[{"Id":"to_bits_checked"},[{"E_lit":[{"L_num":64}]},{"E_typ":[{"Typ_id":[{"Id":"int"}]},{"E_lit":[{"L_num":0}]}]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"mhartid"},{"E_app":[{"Id":"to_bits_checked"},[{"E_lit":[{"L_num":64}]},{"E_typ":[{"Typ_id":[{"Id":"int"}]},{"E_lit":[{"L_num":0}]}]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"mconfigptr"},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}},{"DEF_type":{"TD_record":[{"Id":"Sstatus"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"undefined_Sstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Sstatus"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"Mk_Sstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Sstatus"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Sstatus_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Sstatus_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Sstatus_bits"},{"Id":"_set_Sstatus_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Sstatus_FS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_FS"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":13}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_FS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_FS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":13}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_FS"},[{"Id":"_update_Sstatus_FS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_FS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_FS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_FS"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_FS"},[{"Id":"_get_Sstatus_FS"},{"Id":"_set_Sstatus_FS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sstatus_MXR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_MXR"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_MXR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_MXR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MXR"},[{"Id":"_update_Sstatus_MXR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_MXR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_MXR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_MXR"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MXR"},[{"Id":"_get_Sstatus_MXR"},{"Id":"_set_Sstatus_MXR"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"_get_Sstatus_SD"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_SD"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_SD"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_SD"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SD"},[{"Id":"_update_Sstatus_SD"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_SD"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_SD"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_SD"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SD"},[{"Id":"_get_Sstatus_SD"},{"Id":"_set_Sstatus_SD"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sstatus_SIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_SIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_SIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_SIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SIE"},[{"Id":"_update_Sstatus_SIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_SIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_SIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_SIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SIE"},[{"Id":"_get_Sstatus_SIE"},{"Id":"_set_Sstatus_SIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sstatus_SPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_SPELP"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_SPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_SPELP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SPELP"},[{"Id":"_update_Sstatus_SPELP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_SPELP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_SPELP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_SPELP"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SPELP"},[{"Id":"_get_Sstatus_SPELP"},{"Id":"_set_Sstatus_SPELP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sstatus_SPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_SPIE"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_SPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_SPIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SPIE"},[{"Id":"_update_Sstatus_SPIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_SPIE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_SPIE"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_SPIE"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SPIE"},[{"Id":"_get_Sstatus_SPIE"},{"Id":"_set_Sstatus_SPIE"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sstatus_SPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_SPP"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_SPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_SPP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SPP"},[{"Id":"_update_Sstatus_SPP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_SPP"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_SPP"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_SPP"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SPP"},[{"Id":"_get_Sstatus_SPP"},{"Id":"_set_Sstatus_SPP"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sstatus_SUM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_SUM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":18}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_SUM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_SUM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":18}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SUM"},[{"Id":"_update_Sstatus_SUM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_SUM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_SUM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_SUM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SUM"},[{"Id":"_get_Sstatus_SUM"},{"Id":"_set_Sstatus_SUM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Sstatus_UXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_UXL"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":33}]},{"E_lit":[{"L_num":32}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_UXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_UXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":33}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_UXL"},[{"Id":"_update_Sstatus_UXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_UXL"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_UXL"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_UXL"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_UXL"},[{"Id":"_get_Sstatus_UXL"},{"Id":"_set_Sstatus_UXL"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Sstatus_VS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_VS"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_VS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_VS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_VS"},[{"Id":"_update_Sstatus_VS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_VS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_VS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_VS"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_VS"},[{"Id":"_get_Sstatus_VS"},{"Id":"_set_Sstatus_VS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Sstatus_XS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sstatus_XS"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":15}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"_update_Sstatus_XS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sstatus_XS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":15}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_XS"},[{"Id":"_update_Sstatus_XS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sstatus"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sstatus_XS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sstatus_XS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sstatus_XS"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_XS"},[{"Id":"_get_Sstatus_XS"},{"Id":"_set_Sstatus_XS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]}],{"Typ_id":[{"Id":"Sstatus"}]}]}]},{"Id":"lower_mstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lower_mstatus"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Mstatus"}]},{"P_id":[{"Id":"m"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"s"}]},{"E_app":[{"Id":"Mk_Sstatus"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Sstatus_SIE"},[{"E_app":[{"Id":"_update_Sstatus_SPIE"},[{"E_app":[{"Id":"_update_Sstatus_SPP"},[{"E_app":[{"Id":"_update_Sstatus_VS"},[{"E_app":[{"Id":"_update_Sstatus_FS"},[{"E_app":[{"Id":"_update_Sstatus_XS"},[{"E_app":[{"Id":"_update_Sstatus_SUM"},[{"E_app":[{"Id":"_update_Sstatus_MXR"},[{"E_app":[{"Id":"_update_Sstatus_SPELP"},[{"E_app":[{"Id":"_update_Sstatus_UXL"},[{"E_app":[{"Id":"_update_Sstatus_SD"},[{"E_id":[{"Id":"s"}]},{"E_app":[{"Id":"_get_Mstatus_SD"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_UXL"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_SPELP"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_MXR"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_SUM"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_XS"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_FS"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_VS"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_SPP"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_SPIE"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"_get_Mstatus_SIE"},[{"E_id":[{"Id":"m"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_id":[{"Id":"Sstatus"}]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"lift_sstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lift_sstatus"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Mstatus"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Sstatus"}]},{"P_id":[{"Id":"s"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dirty"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"extStatus_of_bits"},[{"E_app":[{"Id":"_get_Sstatus_FS"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_id":[{"Id":"Dirty"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"extStatus_of_bits"},[{"E_app":[{"Id":"_get_Sstatus_XS"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_id":[{"Id":"Dirty"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"extStatus_of_bits"},[{"E_app":[{"Id":"_get_Sstatus_VS"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_id":[{"Id":"Dirty"}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Mstatus_SIE"},[{"E_app":[{"Id":"_update_Mstatus_SPIE"},[{"E_app":[{"Id":"_update_Mstatus_SPP"},[{"E_app":[{"Id":"_update_Mstatus_VS"},[{"E_app":[{"Id":"_update_Mstatus_FS"},[{"E_app":[{"Id":"_update_Mstatus_XS"},[{"E_app":[{"Id":"_update_Mstatus_SUM"},[{"E_app":[{"Id":"_update_Mstatus_MXR"},[{"E_app":[{"Id":"_update_Mstatus_SPELP"},[{"E_app":[{"Id":"_update_Mstatus_UXL"},[{"E_app":[{"Id":"_update_Mstatus_SD"},[{"E_id":[{"Id":"m"}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"dirty"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_UXL"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_SPELP"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_MXR"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_SUM"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_XS"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_FS"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_VS"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_SPP"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_SPIE"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_app":[{"Id":"_get_Sstatus_SIE"},[{"E_id":[{"Id":"s"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Mstatus"}]}]}]},{"Id":"legalize_sstatus"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_sstatus"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Mstatus"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"legalize_mstatus"},[{"E_id":[{"Id":"m"}]},{"E_field":[{"E_app":[{"Id":"lift_sstatus"},[{"E_id":[{"Id":"m"}]},{"E_app":[{"Id":"Mk_Sstatus"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"v"}]}]]}]]}]]},{"Id":"bits"}]}]]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Sinterrupts"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"undefined_Sinterrupts"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Sinterrupts"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"Mk_Sinterrupts"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Sinterrupts"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Sinterrupts_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sinterrupts_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"_update_Sinterrupts_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sinterrupts_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Sinterrupts_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sinterrupts_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sinterrupts_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sinterrupts_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Sinterrupts_bits"},{"Id":"_set_Sinterrupts_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sinterrupts_SEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sinterrupts_SEI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"_update_Sinterrupts_SEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sinterrupts_SEI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SEI"},[{"Id":"_update_Sinterrupts_SEI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sinterrupts_SEI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sinterrupts_SEI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sinterrupts_SEI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SEI"},[{"Id":"_get_Sinterrupts_SEI"},{"Id":"_set_Sinterrupts_SEI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sinterrupts_SSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sinterrupts_SSI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"_update_Sinterrupts_SSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sinterrupts_SSI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SSI"},[{"Id":"_update_Sinterrupts_SSI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sinterrupts_SSI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sinterrupts_SSI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sinterrupts_SSI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SSI"},[{"Id":"_get_Sinterrupts_SSI"},{"Id":"_set_Sinterrupts_SSI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Sinterrupts_STI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Sinterrupts_STI"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Sinterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"_update_Sinterrupts_STI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Sinterrupts_STI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_STI"},[{"Id":"_update_Sinterrupts_STI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Sinterrupts_STI"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Sinterrupts_STI"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Sinterrupts_STI"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_STI"},[{"Id":"_get_Sinterrupts_STI"},{"Id":"_set_Sinterrupts_STI"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"lower_mip"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lower_mip"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"d"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]},{"P_id":[{"Id":"s"}]}]},{"E_app":[{"Id":"Mk_Sinterrupts"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Sinterrupts_SSI"},[{"E_app":[{"Id":"_update_Sinterrupts_STI"},[{"E_app":[{"Id":"_update_Sinterrupts_SEI"},[{"E_id":[{"Id":"s"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"d"}]}]]}]]}]]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"d"}]}]]}]]}]]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"d"}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Minterrupts"}]}],{"Typ_id":[{"Id":"Sinterrupts"}]}]}]},{"Id":"lower_mie"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lower_mie"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"d"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]},{"P_id":[{"Id":"s"}]}]},{"E_app":[{"Id":"Mk_Sinterrupts"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_Sinterrupts_SSI"},[{"E_app":[{"Id":"_update_Sinterrupts_STI"},[{"E_app":[{"Id":"_update_Sinterrupts_SEI"},[{"E_id":[{"Id":"s"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"d"}]}]]}]]}]]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"d"}]}]]}]]}]]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"d"}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Sinterrupts"}]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"lift_sip"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lift_sip"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"d"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]},{"P_id":[{"Id":"s"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"m"}]}]},{"E_id":[{"Id":"o"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"m"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"d"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"_update_Minterrupts_SSI"},[{"E_id":[{"Id":"m"}]},{"E_app":[{"Id":"_get_Sinterrupts_SSI"},[{"E_id":[{"Id":"s"}]}]]}]]},{"E_id":[{"Id":"m"}]}]}]},{"E_block":[[{"E_id":[{"Id":"m"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"legalize_sip"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_sip"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"d"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"lift_sip"},[{"E_id":[{"Id":"m"}]},{"E_id":[{"Id":"d"}]},{"E_app":[{"Id":"Mk_Sinterrupts"},[{"E_id":[{"Id":"v"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Sinterrupts"}]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"lift_sie"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lift_sie"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"o"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"d"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Sinterrupts"}]},{"P_id":[{"Id":"s"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"m"}]}]},{"E_id":[{"Id":"o"}]}]},{"E_block":[[{"E_app":[{"Id":"_update_Minterrupts_SSI"},[{"E_app":[{"Id":"_update_Minterrupts_STI"},[{"E_app":[{"Id":"_update_Minterrupts_SEI"},[{"E_id":[{"Id":"m"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"d"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"_get_Sinterrupts_SEI"},[{"E_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"m"}]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"d"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"_get_Sinterrupts_STI"},[{"E_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"m"}]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"d"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"_get_Sinterrupts_SSI"},[{"E_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"m"}]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_id":[{"Id":"Minterrupts"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Minterrupts"}]}]}]},{"Id":"legalize_sie"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_sie"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Minterrupts"}]},{"P_id":[{"Id":"d"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"lift_sie"},[{"E_id":[{"Id":"m"}]},{"E_id":[{"Id":"d"}]},{"E_app":[{"Id":"Mk_Sinterrupts"},[{"E_id":[{"Id":"v"}]}]]}]]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Mtvec"}]},{"Id":"stvec"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"sscratch"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"sepc"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Mcause"}]},{"Id":"scause"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"stval"},null]}},{"DEF_type":{"TD_record":[{"Id":"Satp64"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Satp64"}]}]}]},{"Id":"undefined_Satp64"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Satp64"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Satp64"}]}]}]},{"Id":"Mk_Satp64"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Satp64"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Satp64_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp64_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Satp64"}]}]}]},{"Id":"_update_Satp64_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp64_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Satp64_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp64"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp64_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp64_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp64_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Satp64_bits"},{"Id":"_set_Satp64_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"_get_Satp64_Asid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp64_Asid"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":44}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"Satp64"}]}]}]},{"Id":"_update_Satp64_Asid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp64_Asid"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":44}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Asid"},[{"Id":"_update_Satp64_Asid"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp64"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp64_Asid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp64_Asid"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp64_Asid"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Asid"},[{"Id":"_get_Satp64_Asid"},{"Id":"_set_Satp64_Asid"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]}]},{"Id":"_get_Satp64_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp64_Mode"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":60}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}],{"Typ_id":[{"Id":"Satp64"}]}]}]},{"Id":"_update_Satp64_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp64_Mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":60}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Mode"},[{"Id":"_update_Satp64_Mode"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp64"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp64_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp64_Mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp64_Mode"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Mode"},[{"Id":"_get_Satp64_Mode"},{"Id":"_set_Satp64_Mode"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[44]}]}]]}]}]},{"Id":"_get_Satp64_PPN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp64_PPN"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":43}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp64"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[44]}]}]]}],{"Typ_id":[{"Id":"Satp64"}]}]}]},{"Id":"_update_Satp64_PPN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp64_PPN"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":43}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_PPN"},[{"Id":"_update_Satp64_PPN"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp64"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[44]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp64_PPN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp64_PPN"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp64_PPN"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_PPN"},[{"Id":"_get_Satp64_PPN"},{"Id":"_set_Satp64_PPN"}]]},{"DEF_type":{"TD_record":[{"Id":"Satp32"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Satp32"}]}]}]},{"Id":"undefined_Satp32"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Satp32"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Satp32"}]}]}]},{"Id":"Mk_Satp32"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Satp32"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_Satp32_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp32_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Satp32"}]}]}]},{"Id":"_update_Satp32_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp32_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Satp32_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp32"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp32_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp32_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp32_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Satp32_bits"},{"Id":"_set_Satp32_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[9]}]}]]}]}]},{"Id":"_get_Satp32_Asid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp32_Asid"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":22}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[9]}]}]]}],{"Typ_id":[{"Id":"Satp32"}]}]}]},{"Id":"_update_Satp32_Asid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp32_Asid"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":22}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Asid"},[{"Id":"_update_Satp32_Asid"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp32"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[9]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp32_Asid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp32_Asid"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp32_Asid"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Asid"},[{"Id":"_get_Satp32_Asid"},{"Id":"_set_Satp32_Asid"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Satp32_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp32_Mode"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":31}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Satp32"}]}]}]},{"Id":"_update_Satp32_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp32_Mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":31}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_Mode"},[{"Id":"_update_Satp32_Mode"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp32"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp32_Mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp32_Mode"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp32_Mode"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_Mode"},[{"Id":"_get_Satp32_Mode"},{"Id":"_set_Satp32_Mode"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[22]}]}]]}]}]},{"Id":"_get_Satp32_PPN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Satp32_PPN"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Satp32"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[22]}]}]]}],{"Typ_id":[{"Id":"Satp32"}]}]}]},{"Id":"_update_Satp32_PPN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Satp32_PPN"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_PPN"},[{"Id":"_update_Satp32_PPN"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Satp32"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[22]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Satp32_PPN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Satp32_PPN"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Satp32_PPN"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_PPN"},[{"Id":"_get_Satp32_PPN"},{"Id":"_set_Satp32_PPN"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Architecture"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"legalize_satp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_satp"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Architecture"}]},{"P_id":[{"Id":"arch"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"prev_value"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"written_value"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"s"}]},{"E_app":[{"Id":"Mk_Satp32"},[{"E_id":[{"Id":"written_value"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"satpMode_of_bits"},[{"E_id":[{"Id":"arch"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"000"}]},{"E_app":[{"Id":"_get_Satp32_Mode"},[{"E_id":[{"Id":"s"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_id":[{"Id":"prev_value"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"Sv_mode"}]}]]},{"E_match":[{"E_id":[{"Id":"Sv_mode"}]},[{"Pat_when":[{"P_id":[{"Id":"Bare"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svbare"}]}]]},{"E_field":[{"E_id":[{"Id":"s"}]},{"Id":"bits"}]}]},{"Pat_when":[{"P_id":[{"Id":"Sv32"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv32"}]}]]},{"E_field":[{"E_id":[{"Id":"s"}]},{"Id":"bits"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"prev_value"}]}]}]]}]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"s"}]},{"E_app":[{"Id":"Mk_Satp64"},[{"E_id":[{"Id":"written_value"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"satpMode_of_bits"},[{"E_id":[{"Id":"arch"}]},{"E_app":[{"Id":"_get_Satp64_Mode"},[{"E_id":[{"Id":"s"}]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_id":[{"Id":"prev_value"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"Sv_mode"}]}]]},{"E_match":[{"E_id":[{"Id":"Sv_mode"}]},[{"Pat_when":[{"P_id":[{"Id":"Bare"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svbare"}]}]]},{"E_field":[{"E_id":[{"Id":"s"}]},{"Id":"bits"}]}]},{"Pat_when":[{"P_id":[{"Id":"Sv39"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]},{"E_field":[{"E_id":[{"Id":"s"}]},{"Id":"bits"}]}]},{"Pat_when":[{"P_id":[{"Id":"Sv48"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv48"}]}]]},{"E_field":[{"E_id":[{"Id":"s"}]},{"Id":"bits"}]}]},{"Pat_when":[{"P_id":[{"Id":"Sv57"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv57"}]}]]},{"E_field":[{"E_id":[{"Id":"s"}]},{"Id":"bits"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"prev_value"}]}]}]]}]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/sys_regs.sail"}]},{"E_lit":[{"L_num":917}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Unsupported xlen"}]},{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"xlen"}]}]]}]]}]]}]]}]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"tselect"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"get_16_random_bits"},{"pure":false,"bindings":[["interpreter","Platform.get_16_random_bits"],["c","plat_get_16_random_bits"],["lem","plat_get_16_random_bits"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bit"}]},{"Typ_id":[{"Id":"bit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"feature_enabled_for_priv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"feature_enabled_for_priv"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bit"}]},{"P_id":[{"Id":"machine_enable_bit"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bit"}]},{"P_id":[{"Id":"supervisor_enable_bit"}]}]}]]},{"E_match":[{"E_id":[{"Id":"p"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"eq_bit"},[{"E_id":[{"Id":"machine_enable_bit"}]},{"E_lit":["L_one"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_id":[{"Id":"machine_enable_bit"}]},{"E_lit":["L_one"]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_id":[{"Id":"supervisor_enable_bit"}]},{"E_lit":["L_one"]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/sys_regs.sail"}]},{"E_lit":[{"L_num":952}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"core/sys_regs.sail"}]},{"E_lit":[{"L_num":953}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"counter_enabled"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"counter_enabled"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"P_id":[{"Id":"index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]}]]},{"E_app":[{"Id":"feature_enabled_for_priv"},[{"E_id":[{"Id":"priv"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_field":[{"E_id":[{"Id":"mcounteren"}]},{"Id":"bits"}]},{"E_id":[{"Id":"index"}]}]]},{"E_app":[{"Id":"bitvector_access"},[{"E_field":[{"E_id":[{"Id":"scounteren"}]},{"Id":"bits"}]},{"E_id":[{"Id":"index"}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","core/sys_regs.sail"]},{"DEF_pragma":["file_start","core/ext_regs.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"ext_check_CSR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_check_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csrno"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"isWrite"}]}]}]]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_check_CSR_fail"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_check_CSR_fail"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_pragma":["file_end","core/ext_regs.sail"]},{"DEF_pragma":["file_start","core/addr_checks_common.sail"]},{"DEF_type":{"TD_variant":[{"Id":"Ext_DataAddr_Check"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"virtaddr"}]},{"Id":"Ext_DataAddr_OK"}]},{"Tu_ty_id":[{"Typ_var":[{"Var":"'a"}]},{"Id":"Ext_DataAddr_Error"}]}],false]}},{"DEF_pragma":["file_end","core/addr_checks_common.sail"]},{"DEF_pragma":["file_start","core/addr_checks.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"ext_fetch_addr_error"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"ext_fetch_check_pc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_fetch_check_pc"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"start_pc"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"pc"}]}]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_handle_fetch_check_error"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_handle_fetch_check_error"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ext_fetch_addr_error"}]},{"P_id":[{"Id":"err"}]}]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"ext_control_addr_error"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"ext_control_check_pc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_control_check_pc"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"pc"}]}]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_handle_control_check_error"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_handle_control_check_error"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ext_control_addr_error"}]},{"P_id":[{"Id":"err"}]}]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"ext_data_addr_error"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[1]}]},{"A_nexp":[{"Nexp_constant":[4096]}]}]]}],{"Typ_app":[{"Id":"Ext_DataAddr_Check"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"ext_data_get_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_data_get_addr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"base"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"offset"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"acc"}]}]},{"P_typ":[{"Typ_id":[{"Id":"mem_access_width"}]},{"P_id":[{"Id":"width"}]}]}]]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"addr"}]},{"E_app":[{"Id":"Virtaddr"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"base"}]}]]},{"E_id":[{"Id":"offset"}]}]]}]]}]},{"E_app":[{"Id":"Ext_DataAddr_OK"},[{"E_id":[{"Id":"addr"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_handle_data_check_error"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_handle_data_check_error"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ext_data_addr_error"}]},{"P_id":[{"Id":"err"}]}]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_pragma":["file_end","core/addr_checks.sail"]},{"DEF_pragma":["file_start","core/misa_ext.sail"]},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_veto_disable_C"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_false"]}]}]}]]}},{"DEF_pragma":["file_end","core/misa_ext.sail"]},{"DEF_pragma":["file_start","core/softfloat_interface.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"bits_rm"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_fflags"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_BF16"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_H"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_S"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_D"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_W"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_WU"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_L"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"bits_LU"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16Add"},{"pure":true,"bindings":[["c","softfloat_f16add"],["lem","softfloat_f16_add"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16Sub"},{"pure":true,"bindings":[["c","softfloat_f16sub"],["lem","softfloat_f16_sub"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16Mul"},{"pure":true,"bindings":[["c","softfloat_f16mul"],["lem","softfloat_f16_mul"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16Div"},{"pure":true,"bindings":[["c","softfloat_f16div"],["lem","softfloat_f16_div"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32Add"},{"pure":true,"bindings":[["c","softfloat_f32add"],["lem","softfloat_f32_add"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32Sub"},{"pure":true,"bindings":[["c","softfloat_f32sub"],["lem","softfloat_f32_sub"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32Mul"},{"pure":true,"bindings":[["c","softfloat_f32mul"],["lem","softfloat_f32_mul"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32Div"},{"pure":true,"bindings":[["c","softfloat_f32div"],["lem","softfloat_f32_div"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64Add"},{"pure":true,"bindings":[["c","softfloat_f64add"],["lem","softfloat_f64_add"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64Sub"},{"pure":true,"bindings":[["c","softfloat_f64sub"],["lem","softfloat_f64_sub"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64Mul"},{"pure":true,"bindings":[["c","softfloat_f64mul"],["lem","softfloat_f64_mul"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64Div"},{"pure":true,"bindings":[["c","softfloat_f64div"],["lem","softfloat_f64_div"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16MulAdd"},{"pure":true,"bindings":[["c","softfloat_f16muladd"],["lem","softfloat_f16_muladd"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32MulAdd"},{"pure":true,"bindings":[["c","softfloat_f32muladd"],["lem","softfloat_f32_muladd"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64MulAdd"},{"pure":true,"bindings":[["c","softfloat_f64muladd"],["lem","softfloat_f64_muladd"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16Sqrt"},{"pure":true,"bindings":[["c","softfloat_f16sqrt"],["lem","softfloat_f16_sqrt"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32Sqrt"},{"pure":true,"bindings":[["c","softfloat_f32sqrt"],["lem","softfloat_f32_sqrt"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64Sqrt"},{"pure":true,"bindings":[["c","softfloat_f64sqrt"],["lem","softfloat_f64_sqrt"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f16ToI32"},{"pure":true,"bindings":[["c","softfloat_f16toi32"],["lem","softfloat_f16_to_i32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f16ToUi32"},{"pure":true,"bindings":[["c","softfloat_f16toui32"],["lem","softfloat_f16_to_ui32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_i32ToF16"},{"pure":true,"bindings":[["c","softfloat_i32tof16"],["lem","softfloat_i32_to_f16"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_ui32ToF16"},{"pure":true,"bindings":[["c","softfloat_ui32tof16"],["lem","softfloat_ui32_to_f16"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f16ToI64"},{"pure":true,"bindings":[["c","softfloat_f16toi64"],["lem","softfloat_f16_to_i64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f16ToUi64"},{"pure":true,"bindings":[["c","softfloat_f16toui64"],["lem","softfloat_f16_to_ui64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_i64ToF16"},{"pure":true,"bindings":[["c","softfloat_i64tof16"],["lem","softfloat_i64_to_f16"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_ui64ToF16"},{"pure":true,"bindings":[["c","softfloat_ui64tof16"],["lem","softfloat_ui64_to_f16"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32ToI32"},{"pure":true,"bindings":[["c","softfloat_f32toi32"],["lem","softfloat_f32_to_i32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32ToUi32"},{"pure":true,"bindings":[["c","softfloat_f32toui32"],["lem","softfloat_f32_to_ui32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_i32ToF32"},{"pure":true,"bindings":[["c","softfloat_i32tof32"],["lem","softfloat_i32_to_f32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_ui32ToF32"},{"pure":true,"bindings":[["c","softfloat_ui32tof32"],["lem","softfloat_ui32_to_f32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f32ToI64"},{"pure":true,"bindings":[["c","softfloat_f32toi64"],["lem","softfloat_f32_to_i64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f32ToUi64"},{"pure":true,"bindings":[["c","softfloat_f32toui64"],["lem","softfloat_f32_to_ui64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_i64ToF32"},{"pure":true,"bindings":[["c","softfloat_i64tof32"],["lem","softfloat_i64_to_f32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_ui64ToF32"},{"pure":true,"bindings":[["c","softfloat_ui64tof32"],["lem","softfloat_ui64_to_f32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f64ToI32"},{"pure":true,"bindings":[["c","softfloat_f64toi32"],["lem","softfloat_f64_to_i32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f64ToUi32"},{"pure":true,"bindings":[["c","softfloat_f64toui32"],["lem","softfloat_f64_to_ui32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_i32ToF64"},{"pure":true,"bindings":[["c","softfloat_i32tof64"],["lem","softfloat_i32_to_f64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_ui32ToF64"},{"pure":true,"bindings":[["c","softfloat_ui32tof64"],["lem","softfloat_ui32_to_f64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64ToI64"},{"pure":true,"bindings":[["c","softfloat_f64toi64"],["lem","softfloat_f64_to_i64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64ToUi64"},{"pure":true,"bindings":[["c","softfloat_f64toui64"],["lem","softfloat_f64_to_ui64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_i64ToF64"},{"pure":true,"bindings":[["c","softfloat_i64tof64"],["lem","softfloat_i64_to_f64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_ui64ToF64"},{"pure":true,"bindings":[["c","softfloat_ui64tof64"],["lem","softfloat_ui64_to_f64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f16ToF32"},{"pure":true,"bindings":[["c","softfloat_f16tof32"],["lem","softfloat_f16_to_f32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f16ToF64"},{"pure":true,"bindings":[["c","softfloat_f16tof64"],["lem","softfloat_f16_to_f64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f32ToF64"},{"pure":true,"bindings":[["c","softfloat_f32tof64"],["lem","softfloat_f32_to_f64"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f32ToF16"},{"pure":true,"bindings":[["c","softfloat_f32tof16"],["lem","softfloat_f32_to_f16"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f64ToF16"},{"pure":true,"bindings":[["c","softfloat_f64tof16"],["lem","softfloat_f64_to_f16"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f64ToF32"},{"pure":true,"bindings":[["c","softfloat_f64tof32"],["lem","softfloat_f64_to_f32"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f32ToBF16"},{"pure":true,"bindings":[["c","softfloat_f32tobf16"],["lem","softfloat_f32_to_bf16"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f16Lt"},{"pure":true,"bindings":[["c","softfloat_f16lt"],["lem","softfloat_f16_lt"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f16Lt_quiet"},{"pure":true,"bindings":[["c","softfloat_f16lt_quiet"],["lem","softfloat_f16_lt_quiet"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f16Le"},{"pure":true,"bindings":[["c","softfloat_f16le"],["lem","softfloat_f16_le"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f16Le_quiet"},{"pure":true,"bindings":[["c","softfloat_f16le_quiet"],["lem","softfloat_f16_le_quiet"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f16Eq"},{"pure":true,"bindings":[["c","softfloat_f16eq"],["lem","softfloat_f16_eq"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f32Lt"},{"pure":true,"bindings":[["c","softfloat_f32lt"],["lem","softfloat_f32_lt"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f32Lt_quiet"},{"pure":true,"bindings":[["c","softfloat_f32lt_quiet"],["lem","softfloat_f32_lt_quiet"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f32Le"},{"pure":true,"bindings":[["c","softfloat_f32le"],["lem","softfloat_f32_le"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f32Le_quiet"},{"pure":true,"bindings":[["c","softfloat_f32le_quiet"],["lem","softfloat_f32_le_quiet"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f32Eq"},{"pure":true,"bindings":[["c","softfloat_f32eq"],["lem","softfloat_f32_eq"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f64Lt"},{"pure":true,"bindings":[["c","softfloat_f64lt"],["lem","softfloat_f64_lt"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f64Lt_quiet"},{"pure":true,"bindings":[["c","softfloat_f64lt_quiet"],["lem","softfloat_f64_lt_quiet"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f64Le"},{"pure":true,"bindings":[["c","softfloat_f64le"],["lem","softfloat_f64_le"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f64Le_quiet"},{"pure":true,"bindings":[["c","softfloat_f64le_quiet"],["lem","softfloat_f64_le_quiet"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"bool"}]}]]}]}]},{"Id":"riscv_f64Eq"},{"pure":true,"bindings":[["c","softfloat_f64eq"],["lem","softfloat_f64_eq"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16roundToInt"},{"pure":true,"bindings":[["c","softfloat_f16roundToInt"],["lem","softfloat_f16_round_to_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32roundToInt"},{"pure":true,"bindings":[["c","softfloat_f32roundToInt"],["lem","softfloat_f32_round_to_int"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64roundToInt"},{"pure":true,"bindings":[["c","softfloat_f64roundToInt"],["lem","softfloat_f64_round_to_int"]]}]}},{"DEF_pragma":["file_end","core/softfloat_interface.sail"]},{"DEF_pragma":["file_start","exceptions/sys_exceptions.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"ext_exception"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"ext_check_xret_priv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_check_xret_priv"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]}]},{"E_lit":["L_true"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_fail_xret_priv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_fail_xret_priv"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"unit"}]},{"P_lit":["L_unit"]}]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"handle_trap_extension"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"handle_trap_extension"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"pc"}]}]},{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"P_id":[{"Id":"u"}]}]}]]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"Mcause"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"prepare_trap_vector"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"prepare_trap_vector"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Mcause"}]},{"P_id":[{"Id":"cause"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"Mtvec"}]},{"P_id":[{"Id":"tvec"}]}]},{"E_match":[{"E_id":[{"Id":"p"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_id":[{"Id":"mtvec"}]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_id":[{"Id":"stvec"}]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":25}]},{"E_lit":[{"L_string":"Invalid privilege level"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":26}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":27}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"tvec_addr"},[{"E_id":[{"Id":"tvec"}]},{"E_id":[{"Id":"cause"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"epc"}]}]]},{"E_id":[{"Id":"epc"}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_string":"Invalid tvec mode"}]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"get_xepc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_xepc"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_match":[{"E_id":[{"Id":"p"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"align_pc"},[{"E_id":[{"Id":"mepc"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"align_pc"},[{"E_id":[{"Id":"sepc"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":45}]},{"E_lit":[{"L_string":"Invalid privilege level"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":46}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"set_xepc"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"set_xepc"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"target"}]},{"E_app":[{"Id":"legalize_xepc"},[{"E_id":[{"Id":"value"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"p"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_assign":[{"LE_id":[{"Id":"mepc"}]},{"E_id":[{"Id":"target"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_assign":[{"LE_id":[{"Id":"sepc"}]},{"E_id":[{"Id":"target"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_string":"Invalid privilege level"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":56}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"exceptions/sys_exceptions.sail"}]},{"E_lit":[{"L_num":57}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]},{"E_id":[{"Id":"target"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"prepare_xret_target"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"prepare_xret_target"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_app":[{"Id":"get_xepc"},[{"E_id":[{"Id":"p"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"get_mtvec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_mtvec"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_field":[{"E_id":[{"Id":"mtvec"}]},{"Id":"bits"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"get_stvec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_stvec"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_field":[{"E_id":[{"Id":"stvec"}]},{"Id":"bits"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"set_mtvec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"set_mtvec"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mtvec"}]},{"E_app":[{"Id":"legalize_tvec"},[{"E_id":[{"Id":"mtvec"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_field":[{"E_id":[{"Id":"mtvec"}]},{"Id":"bits"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"set_stvec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"set_stvec"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"stvec"}]},{"E_app":[{"Id":"legalize_tvec"},[{"E_id":[{"Id":"stvec"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_field":[{"E_id":[{"Id":"stvec"}]},{"Id":"bits"}]}]]}]}]}]]}},{"DEF_pragma":["file_end","exceptions/sys_exceptions.sail"]},{"DEF_pragma":["file_start","exceptions/sync_exception.sail"]},{"DEF_type":{"TD_record":[{"Id":"sync_exception"},{"TypQ_tq":[[]]},[[{"Typ_id":[{"Id":"ExceptionType"}]},{"Id":"trap"}],[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]]},{"Id":"excinfo"}],[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ext_exception"}]}]}]]},{"Id":"ext"}]],false]}},{"DEF_pragma":["file_end","exceptions/sync_exception.sail"]},{"DEF_pragma":["file_start","pmp/pmp_regs.sail"]},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[0,16,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"P_id":[{"Id":"sys_pmp_count"}]}]},{"E_lit":[{"L_num":16}]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"P_id":[{"Id":"sys_pmp_grain"}]}]},{"E_lit":[{"L_num":0}]}]}},{"DEF_type":{"TD_enum":[{"Id":"PmpAddrMatchType"},[{"Id":"OFF"},{"Id":"TOR"},{"Id":"NA4"},{"Id":"NAPOT"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"PmpAddrMatchType"}]}]}]},{"Id":"undefined_PmpAddrMatchType"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_PmpAddrMatchType"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"OFF"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"PmpAddrMatchType"}]}]}]},{"Id":"PmpAddrMatchType_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"PmpAddrMatchType_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"OFF"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"TOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"NA4"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NAPOT"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PmpAddrMatchType"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_PmpAddrMatchType"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_PmpAddrMatchType"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"OFF"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"TOR"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"NA4"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"NAPOT"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"PmpAddrMatchType"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"pmpAddrMatchType_encdec"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"pmpAddrMatchType_encdec"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"OFF"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"TOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NA4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NAPOT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Pmpcfg_ent"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"undefined_Pmpcfg_ent"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Pmpcfg_ent"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"Mk_Pmpcfg_ent"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Pmpcfg_ent"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_Pmpcfg_ent_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Pmpcfg_ent_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"_update_Pmpcfg_ent_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Pmpcfg_ent_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Pmpcfg_ent_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Pmpcfg_ent_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Pmpcfg_ent_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Pmpcfg_ent_bits"},{"Id":"_set_Pmpcfg_ent_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Pmpcfg_ent_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Pmpcfg_ent_A"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"_update_Pmpcfg_ent_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Pmpcfg_ent_A"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_A"},[{"Id":"_update_Pmpcfg_ent_A"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Pmpcfg_ent_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Pmpcfg_ent_A"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_A"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_A"},[{"Id":"_get_Pmpcfg_ent_A"},{"Id":"_set_Pmpcfg_ent_A"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Pmpcfg_ent_L"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Pmpcfg_ent_L"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"_update_Pmpcfg_ent_L"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Pmpcfg_ent_L"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_L"},[{"Id":"_update_Pmpcfg_ent_L"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Pmpcfg_ent_L"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Pmpcfg_ent_L"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_L"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_L"},[{"Id":"_get_Pmpcfg_ent_L"},{"Id":"_set_Pmpcfg_ent_L"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Pmpcfg_ent_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Pmpcfg_ent_R"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"_update_Pmpcfg_ent_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Pmpcfg_ent_R"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_R"},[{"Id":"_update_Pmpcfg_ent_R"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Pmpcfg_ent_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Pmpcfg_ent_R"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_R"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_R"},[{"Id":"_get_Pmpcfg_ent_R"},{"Id":"_set_Pmpcfg_ent_R"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Pmpcfg_ent_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Pmpcfg_ent_W"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"_update_Pmpcfg_ent_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Pmpcfg_ent_W"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_W"},[{"Id":"_update_Pmpcfg_ent_W"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Pmpcfg_ent_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Pmpcfg_ent_W"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_W"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_W"},[{"Id":"_get_Pmpcfg_ent_W"},{"Id":"_set_Pmpcfg_ent_W"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Pmpcfg_ent_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Pmpcfg_ent_X"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"_update_Pmpcfg_ent_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Pmpcfg_ent_X"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_X"},[{"Id":"_update_Pmpcfg_ent_X"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Pmpcfg_ent_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Pmpcfg_ent_X"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_X"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_X"},[{"Id":"_get_Pmpcfg_ent_X"},{"Id":"_set_Pmpcfg_ent_X"}]]},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]]},{"Id":"pmpcfg_n"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]]},{"Id":"pmpaddr_n"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[15]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"pmpReadCfgReg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpReadCfgReg"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[15]}]}]]},{"P_id":[{"Id":"n"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":2}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"Id":"bits"}]},{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"Id":"bits"}]}]]}]]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"Unexpected pmp config reg read"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":7}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":6}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":5}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":2}]}]]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"Id":"bits"}]},{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"Id":"bits"}]}]]}]]}]]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[63]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"pmpReadAddrReg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpReadAddrReg"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"P_id":[{"Id":"n"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"G"}]},{"E_id":[{"Id":"sys_pmp_grain"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"match_type"}]},{"E_app":[{"Id":"_get_Pmpcfg_ent_A"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"n"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"addr"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpaddr_n"}]},{"E_id":[{"Id":"n"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"match_type"}]},{"E_lit":[{"L_num":1}]}]]},[{"Pat_when":[{"P_lit":["L_one"]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"G"}]},{"E_lit":[{"L_num":2}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"mask"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"min_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"G"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"xlen"}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"mask"}]}]]}]]}]}]]}]},{"Pat_when":[{"P_lit":["L_zero"]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"G"}]},{"E_lit":[{"L_num":1}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"mask"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"min_int"},[{"E_id":[{"Id":"G"}]},{"E_id":[{"Id":"xlen"}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"addr"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"mask"}]}]]}]]}]]}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"addr"}]}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"pmpLocked"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpLocked"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"P_id":[{"Id":"cfg"}]}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_L"},[{"E_id":[{"Id":"cfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"pmpTORLocked"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpTORLocked"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"P_id":[{"Id":"cfg"}]}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_L"},[{"E_id":[{"Id":"cfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"pmpAddrMatchType_encdec_backwards"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_A"},[{"E_id":[{"Id":"cfg"}]}]]}]]},{"E_id":[{"Id":"TOR"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"Pmpcfg_ent"}]}]}]},{"Id":"pmpWriteCfg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpWriteCfg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"P_id":[{"Id":"n"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"P_id":[{"Id":"cfg"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"v"}]}]}]]},{"E_if":[{"E_app":[{"Id":"pmpLocked"},[{"E_id":[{"Id":"cfg"}]}]]},{"E_id":[{"Id":"cfg"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cfg"}]},{"E_app":[{"Id":"Mk_Pmpcfg_ent"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_hex":"9F"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cfg"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_W"},[{"E_id":[{"Id":"cfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_R"},[{"E_id":[{"Id":"cfg"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"_update_Pmpcfg_ent_R"},[{"E_app":[{"Id":"_update_Pmpcfg_ent_W"},[{"E_app":[{"Id":"_update_Pmpcfg_ent_X"},[{"E_id":[{"Id":"cfg"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_id":[{"Id":"cfg"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"mode_supported"}]}]},{"E_match":[{"E_app":[{"Id":"pmpAddrMatchType_encdec_backwards"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_A"},[{"E_id":[{"Id":"cfg"}]}]]}]]},[{"Pat_exp":[{"P_id":[{"Id":"OFF"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_id":[{"Id":"TOR"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_id":[{"Id":"NA4"}]},{"E_app":[["And_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_true"]}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"sys_pmp_grain"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NAPOT"}]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cfg"}]},{"E_if":[{"E_id":[{"Id":"mode_supported"}]},{"E_id":[{"Id":"cfg"}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_A"},[{"E_id":[{"Id":"cfg"}]},{"E_app":[{"Id":"pmpAddrMatchType_encdec_forwards"},[{"E_id":[{"Id":"OFF"}]}]]}]]}]}]},{"E_block":[[{"E_id":[{"Id":"cfg"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[15]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"pmpWriteCfgReg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpWriteCfgReg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[15]}]}]]},{"P_id":[{"Id":"n"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"idx"}]}]},{"E_app":[{"Id":"pmpWriteCfg"},[{"E_id":[{"Id":"idx"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"idx"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]}]}]]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"Unexpected pmp config reg write"}]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":4}]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"idx"}]}]},{"E_app":[{"Id":"pmpWriteCfg"},[{"E_id":[{"Id":"idx"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"idx"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"pmpWriteAddr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpWriteAddr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"locked"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"tor_locked"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"reg"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"locked"}]},{"E_id":[{"Id":"tor_locked"}]}]]},{"E_id":[{"Id":"reg"}]},{"E_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"locked"}]},{"E_id":[{"Id":"tor_locked"}]}]]},{"E_id":[{"Id":"reg"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":53}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"pmpWriteAddrReg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpWriteAddrReg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[63]}]}]]},{"P_id":[{"Id":"n"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"pmpaddr_n"}]},{"E_id":[{"Id":"n"}]}]},{"E_app":[{"Id":"pmpWriteAddr"},[{"E_app":[{"Id":"pmpLocked"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"n"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"pmpTORLocked"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpaddr_n"}]},{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","pmp/pmp_regs.sail"]},{"DEF_pragma":["file_start","pmp/pmp_control.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"pmpCheckRWX"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpCheckRWX"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"P_id":[{"Id":"ent"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"acc"}]}]}]]},{"E_match":[{"E_id":[{"Id":"acc"}]},[{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_R"},[{"E_id":[{"Id":"ent"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_W"},[{"E_id":[{"Id":"ent"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"ReadWrite"},[{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_R"},[{"E_id":[{"Id":"ent"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_W"},[{"E_id":[{"Id":"ent"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_X"},[{"E_id":[{"Id":"ent"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"pmpAddrMatch"},[{"Id":"PMP_NoMatch"},{"Id":"PMP_PartialMatch"},{"Id":"PMP_Match"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"pmpAddrMatch"}]}]}]},{"Id":"undefined_pmpAddrMatch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_pmpAddrMatch"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"PMP_NoMatch"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"pmpAddrMatch"}]}]}]},{"Id":"pmpAddrMatch_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpAddrMatch_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"PMP_NoMatch"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"PMP_PartialMatch"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"PMP_Match"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"pmpAddrMatch"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_pmpAddrMatch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_pmpAddrMatch"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"PMP_NoMatch"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"PMP_PartialMatch"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"PMP_Match"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"pmpAddrMatch"}]}]}]},{"Id":"pmpRangeMatch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpRangeMatch"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"begin"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"end_"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"width"}]}]}]]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_id":[{"Id":"begin"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"end_"}]},{"E_id":[{"Id":"addr"}]}]]}]]},{"E_id":[{"Id":"PMP_NoMatch"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"begin"}]},{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_id":[{"Id":"end_"}]}]]}]]},{"E_id":[{"Id":"PMP_Match"}]},{"E_id":[{"Id":"PMP_PartialMatch"}]}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"pmpAddrMatch"}]}]}]},{"Id":"pmpMatchAddr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpMatchAddr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Pmpcfg_ent"}]},{"P_id":[{"Id":"ent"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"pmpaddr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"prev_pmpaddr"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"addr"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"addr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"width"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"pmpAddrMatchType_encdec_backwards"},[{"E_app":[{"Id":"_get_Pmpcfg_ent_A"},[{"E_id":[{"Id":"ent"}]}]]}]]},[{"Pat_exp":[{"P_id":[{"Id":"OFF"}]},{"E_id":[{"Id":"PMP_NoMatch"}]}]},{"Pat_exp":[{"P_id":[{"Id":"TOR"}]},{"E_block":[[{"E_if":[{"E_app":[{"Operator":">=_u"},[{"E_id":[{"Id":"prev_pmpaddr"}]},{"E_id":[{"Id":"pmpaddr"}]}]]},{"E_id":[{"Id":"PMP_NoMatch"}]},{"E_app":[{"Id":"pmpRangeMatch"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"prev_pmpaddr"}]}]]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"pmpaddr"}]}]]},{"E_lit":[{"L_num":4}]}]]},{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NA4"}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"sys_pmp_grain"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_string":"NA4 cannot be selected when PMP grain G >= 1."}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"begin"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"pmpaddr"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_app":[{"Id":"pmpRangeMatch"},[{"E_id":[{"Id":"begin"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"begin"}]},{"E_lit":[{"L_num":4}]}]]},{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NAPOT"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mask"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"pmpaddr"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"pmpaddr"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"begin_words"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"pmpaddr"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"mask"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_words"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"begin_words"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"mask"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"pmpRangeMatch"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"begin_words"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"end_words"}]},{"E_lit":[{"L_num":4}]}]]},{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_id":[{"Id":"ExceptionType"}]}]}]},{"Id":"accessToFault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"accessToFault"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"acc"}]}]},{"E_match":[{"E_id":[{"Id":"acc"}]},[{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"E_app":[{"Id":"E_Load_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"ReadWrite"},[{"P_wild":[]}]]},{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"E_Fetch_Access_Fault"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"pmpCheck"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmpCheck"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"acc"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"width"}]}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prev_pmpaddr"}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cfg"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"pmpMatchAddr"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"cfg"}]},{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"prev_pmpaddr"}]}]]},[{"Pat_exp":[{"P_id":[{"Id":"PMP_NoMatch"}]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_id":[{"Id":"PMP_PartialMatch"}]},{"E_return":[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"accessToFault"},[{"E_id":[{"Id":"acc"}]}]]}]]}]}]},{"Pat_exp":[{"P_id":[{"Id":"PMP_Match"}]},{"E_return":[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"pmpCheckRWX"},[{"E_id":[{"Id":"cfg"}]},{"E_id":[{"Id":"acc"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"pmpLocked"},[{"E_id":[{"Id":"cfg"}]}]]}]]}]]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"accessToFault"},[{"E_id":[{"Id":"acc"}]}]]}]]}]}]}]}]]}]]}]}]]}]}]]}]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"accessToFault"},[{"E_id":[{"Id":"acc"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset_pmp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset_pmp"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"_update_Pmpcfg_ent_L"},[{"E_app":[{"Id":"_update_Pmpcfg_ent_A"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"pmpcfg_n"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"pmpAddrMatchType_encdec_forwards"},[{"E_id":[{"Id":"OFF"}]}]]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","pmp/pmp_control.sail"]},{"DEF_pragma":["file_start","extensions/I/base_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"uop"},[{"Id":"LUI"},{"Id":"AUIPC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"uop"}]}]}]},{"Id":"undefined_uop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_uop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"LUI"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"uop"}]}]}]},{"Id":"uop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"uop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"LUI"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AUIPC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"uop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_uop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_uop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"LUI"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"AUIPC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"bop"},[{"Id":"BEQ"},{"Id":"BNE"},{"Id":"BLT"},{"Id":"BGE"},{"Id":"BLTU"},{"Id":"BGEU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bop"}]}]}]},{"Id":"undefined_bop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_bop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"BEQ"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"bop"}]}]}]},{"Id":"bop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"BEQ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"BNE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"BLT"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"BGE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"BLTU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"BGEU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"bop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_bop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_bop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"BEQ"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"BNE"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"BLT"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"BGE"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"BLTU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"BGEU"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"iop"},[{"Id":"ADDI"},{"Id":"SLTI"},{"Id":"SLTIU"},{"Id":"XORI"},{"Id":"ORI"},{"Id":"ANDI"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"iop"}]}]}]},{"Id":"undefined_iop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_iop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ADDI"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"iop"}]}]}]},{"Id":"iop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"iop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ADDI"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"SLTI"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"SLTIU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"XORI"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"ORI"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ANDI"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"iop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_iop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_iop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ADDI"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"SLTI"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"SLTIU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"XORI"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"ORI"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"ANDI"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"sop"},[{"Id":"SLLI"},{"Id":"SRLI"},{"Id":"SRAI"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"sop"}]}]}]},{"Id":"undefined_sop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_sop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"SLLI"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"sop"}]}]}]},{"Id":"sop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"SLLI"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"SRLI"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"SRAI"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"sop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_sop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_sop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"SLLI"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRLI"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRAI"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"rop"},[{"Id":"ADD"},{"Id":"SUB"},{"Id":"SLL"},{"Id":"SLT"},{"Id":"SLTU"},{"Id":"XOR"},{"Id":"SRL"},{"Id":"SRA"},{"Id":"OR"},{"Id":"AND"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"rop"}]}]}]},{"Id":"undefined_rop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_rop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[9]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"rop"}]}]}]},{"Id":"rop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"SUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"SLL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"SLT"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"SLTU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"XOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"SRL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"SRA"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"OR"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AND"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"rop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[9]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_rop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_rop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"SUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"SLL"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"SLT"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"SLTU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"XOR"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRL"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRA"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"OR"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"AND"}]},{"E_lit":[{"L_num":9}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"ropw"},[{"Id":"ADDW"},{"Id":"SUBW"},{"Id":"SLLW"},{"Id":"SRLW"},{"Id":"SRAW"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"ropw"}]}]}]},{"Id":"undefined_ropw"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_ropw"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ADDW"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"ropw"}]}]}]},{"Id":"ropw_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ropw_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ADDW"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"SUBW"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"SLLW"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"SRLW"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"SRAW"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"ropw"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_ropw"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_ropw"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ADDW"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"SUBW"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"SLLW"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRLW"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRAW"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"sopw"},[{"Id":"SLLIW"},{"Id":"SRLIW"},{"Id":"SRAIW"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"sopw"}]}]}]},{"Id":"undefined_sopw"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_sopw"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"SLLIW"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"sopw"}]}]}]},{"Id":"sopw_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sopw_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"SLLIW"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"SRLIW"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"SRAIW"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"sopw"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_sopw"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_sopw"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"SLLIW"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRLIW"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"SRAIW"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/I/base_types.sail"]},{"DEF_pragma":["file_start","extensions/A/aext_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"amoop"},[{"Id":"AMOSWAP"},{"Id":"AMOADD"},{"Id":"AMOXOR"},{"Id":"AMOAND"},{"Id":"AMOOR"},{"Id":"AMOMIN"},{"Id":"AMOMAX"},{"Id":"AMOMINU"},{"Id":"AMOMAXU"},{"Id":"AMOCAS"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"amoop"}]}]}]},{"Id":"undefined_amoop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_amoop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"AMOSWAP"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[9]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"amoop"}]}]}]},{"Id":"amoop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"amoop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"AMOSWAP"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"AMOADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"AMOXOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"AMOAND"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"AMOOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"AMOMIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"AMOMAX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"AMOMINU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"AMOMAXU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AMOCAS"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"amoop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[9]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_amoop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_amoop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"AMOSWAP"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOADD"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOXOR"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOAND"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOOR"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMIN"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMAX"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMINU"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMAXU"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOCAS"}]},{"E_lit":[{"L_num":9}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"maybe_aqrl"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"maybe_aqrl"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":["L_true"]},{"MP_lit":["L_true"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":".aqrl"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":["L_true"]},{"MP_lit":["L_false"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":".aq"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":["L_false"]},{"MP_lit":["L_true"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":".rl"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_tuple":[[{"MP_lit":["L_false"]},{"MP_lit":["L_false"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/A/aext_types.sail"]},{"DEF_pragma":["file_start","extensions/M/mext_types.sail"]},{"DEF_type":{"TD_record":[{"Id":"mul_op"},{"TypQ_tq":[[]]},[[{"Typ_id":[{"Id":"bool"}]},{"Id":"high"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"signed_rs1"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"signed_rs2"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"mul_op"}]}]}]},{"Id":"undefined_mul_op"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_mul_op"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"high"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"signed_rs1"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"signed_rs2"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/M/mext_types.sail"]},{"DEF_pragma":["file_start","extensions/B/bext_types.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"shamt_zba"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"brop_zbb"},[{"Id":"ANDN"},{"Id":"ORN"},{"Id":"XNOR"},{"Id":"MAX"},{"Id":"MAXU"},{"Id":"MIN"},{"Id":"MINU"},{"Id":"ROL"},{"Id":"ROR"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"brop_zbb"}]}]}]},{"Id":"undefined_brop_zbb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_brop_zbb"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ANDN"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[8]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"brop_zbb"}]}]}]},{"Id":"brop_zbb_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"brop_zbb_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ANDN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"ORN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"XNOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"MAX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"MAXU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"MIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"MINU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"ROL"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ROR"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"brop_zbb"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_brop_zbb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_brop_zbb"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ANDN"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ORN"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"XNOR"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"MAX"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"MAXU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"MIN"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"MINU"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"ROL"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"ROR"}]},{"E_lit":[{"L_num":8}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"brop_zbkb"},[{"Id":"PACK"},{"Id":"PACKH"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"brop_zbkb"}]}]}]},{"Id":"undefined_brop_zbkb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_brop_zbkb"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"PACK"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"brop_zbkb"}]}]}]},{"Id":"brop_zbkb_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"brop_zbkb_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"PACK"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"PACKH"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"brop_zbkb"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_brop_zbkb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_brop_zbkb"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"PACK"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"PACKH"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"brop_zbs"},[{"Id":"BCLR"},{"Id":"BEXT"},{"Id":"BINV"},{"Id":"BSET"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"brop_zbs"}]}]}]},{"Id":"undefined_brop_zbs"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_brop_zbs"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"BCLR"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"brop_zbs"}]}]}]},{"Id":"brop_zbs_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"brop_zbs_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"BCLR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"BEXT"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"BINV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"BSET"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"brop_zbs"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_brop_zbs"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_brop_zbs"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"BCLR"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"BEXT"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"BINV"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"BSET"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"bropw_zbb"},[{"Id":"ROLW"},{"Id":"RORW"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bropw_zbb"}]}]}]},{"Id":"undefined_bropw_zbb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_bropw_zbb"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ROLW"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"bropw_zbb"}]}]}]},{"Id":"bropw_zbb_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bropw_zbb_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ROLW"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"RORW"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"bropw_zbb"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_bropw_zbb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_bropw_zbb"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ROLW"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"RORW"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"biop_zbs"},[{"Id":"BCLRI"},{"Id":"BEXTI"},{"Id":"BINVI"},{"Id":"BSETI"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"biop_zbs"}]}]}]},{"Id":"undefined_biop_zbs"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_biop_zbs"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"BCLRI"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"biop_zbs"}]}]}]},{"Id":"biop_zbs_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"biop_zbs_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"BCLRI"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"BEXTI"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"BINVI"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"BSETI"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"biop_zbs"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_biop_zbs"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_biop_zbs"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"BCLRI"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"BEXTI"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"BINVI"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"BSETI"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"extop_zbb"},[{"Id":"SEXTB"},{"Id":"SEXTH"},{"Id":"ZEXTH"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"extop_zbb"}]}]}]},{"Id":"undefined_extop_zbb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_extop_zbb"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"SEXTB"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"extop_zbb"}]}]}]},{"Id":"extop_zbb_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"extop_zbb_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEXTB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"SEXTH"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ZEXTH"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"extop_zbb"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_extop_zbb"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_extop_zbb"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"SEXTB"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"SEXTH"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"ZEXTH"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/B/bext_types.sail"]},{"DEF_pragma":["file_start","extensions/FD/freg_type.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"fregtype"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_id":[{"Id":"flenbits"}]}]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"fregtype"}]},{"P_id":[{"Id":"zero_freg"}]}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"FRegStr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"FRegStr"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregtype"}]},{"P_id":[{"Id":"r"}]}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"r"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}]}]},{"Id":"fregval_from_freg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fregval_from_freg"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregtype"}]},{"P_id":[{"Id":"r"}]}]},{"E_id":[{"Id":"r"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}]}]},{"Id":"fregval_into_freg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fregval_into_freg"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"flenbits"}]},{"P_id":[{"Id":"v"}]}]},{"E_id":[{"Id":"v"}]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_madd_op_H"},[{"Id":"FMADD_H"},{"Id":"FMSUB_H"},{"Id":"FNMSUB_H"},{"Id":"FNMADD_H"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_madd_op_H"}]}]}]},{"Id":"undefined_f_madd_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_madd_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FMADD_H"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_madd_op_H"}]}]}]},{"Id":"f_madd_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_madd_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FMADD_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FMSUB_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FNMSUB_H"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FNMADD_H"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_madd_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_madd_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_madd_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMADD_H"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMSUB_H"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMSUB_H"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMADD_H"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_rm_op_H"},[{"Id":"FADD_H"},{"Id":"FSUB_H"},{"Id":"FMUL_H"},{"Id":"FDIV_H"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_rm_op_H"}]}]}]},{"Id":"undefined_f_bin_rm_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_rm_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FADD_H"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_rm_op_H"}]}]}]},{"Id":"f_bin_rm_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_rm_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FADD_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FSUB_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FMUL_H"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FDIV_H"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_rm_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_rm_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_rm_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FADD_H"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSUB_H"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMUL_H"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FDIV_H"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_ff_op_H"},[{"Id":"FSQRT_H"},{"Id":"FCVT_H_S"},{"Id":"FCVT_H_D"},{"Id":"FCVT_S_H"},{"Id":"FCVT_D_H"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_ff_op_H"}]}]}]},{"Id":"undefined_f_un_rm_ff_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_ff_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FSQRT_H"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_ff_op_H"}]}]}]},{"Id":"f_un_rm_ff_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_ff_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FSQRT_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_H_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FCVT_H_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FCVT_S_H"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_D_H"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_ff_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_ff_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_ff_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FSQRT_H"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_H_S"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_H_D"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_S_H"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_D_H"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_fx_op_H"},[{"Id":"FCVT_W_H"},{"Id":"FCVT_WU_H"},{"Id":"FCVT_L_H"},{"Id":"FCVT_LU_H"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_fx_op_H"}]}]}]},{"Id":"undefined_f_un_rm_fx_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_fx_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCVT_W_H"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_fx_op_H"}]}]}]},{"Id":"f_un_rm_fx_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_fx_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCVT_W_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_WU_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FCVT_L_H"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_LU_H"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_fx_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_fx_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_fx_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCVT_W_H"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_WU_H"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_L_H"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_LU_H"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_xf_op_H"},[{"Id":"FCVT_H_W"},{"Id":"FCVT_H_WU"},{"Id":"FCVT_H_L"},{"Id":"FCVT_H_LU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_xf_op_H"}]}]}]},{"Id":"undefined_f_un_rm_xf_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_xf_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCVT_H_W"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_xf_op_H"}]}]}]},{"Id":"f_un_rm_xf_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_xf_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCVT_H_W"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_H_WU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FCVT_H_L"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_H_LU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_xf_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_xf_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_xf_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCVT_H_W"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_H_WU"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_H_L"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_H_LU"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_x_op_H"},[{"Id":"FCLASS_H"},{"Id":"FMV_X_H"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_x_op_H"}]}]}]},{"Id":"undefined_f_un_x_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_x_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCLASS_H"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_x_op_H"}]}]}]},{"Id":"f_un_x_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_x_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCLASS_H"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMV_X_H"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_x_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_x_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_x_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCLASS_H"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMV_X_H"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_f_op_H"},[{"Id":"FMV_H_X"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_f_op_H"}]}]}]},{"Id":"undefined_f_un_f_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_f_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FMV_H_X"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_f_op_H"}]}]}]},{"Id":"f_un_f_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_f_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMV_H_X"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_f_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_f_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_f_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMV_H_X"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_f_op_H"},[{"Id":"FSGNJ_H"},{"Id":"FSGNJN_H"},{"Id":"FSGNJX_H"},{"Id":"FMIN_H"},{"Id":"FMAX_H"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_f_op_H"}]}]}]},{"Id":"undefined_f_bin_f_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_f_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FSGNJ_H"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_f_op_H"}]}]}]},{"Id":"f_bin_f_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_f_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FSGNJ_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FSGNJN_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FSGNJX_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FMIN_H"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMAX_H"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_f_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_f_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_f_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FSGNJ_H"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSGNJN_H"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSGNJX_H"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMIN_H"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMAX_H"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_x_op_H"},[{"Id":"FEQ_H"},{"Id":"FLT_H"},{"Id":"FLE_H"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_x_op_H"}]}]}]},{"Id":"undefined_f_bin_x_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_x_op_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FEQ_H"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_x_op_H"}]}]}]},{"Id":"f_bin_x_op_H_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_x_op_H_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FEQ_H"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FLT_H"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FLE_H"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_x_op_H"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_x_op_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_x_op_H"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FEQ_H"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FLT_H"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FLE_H"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"rounding_mode"},[{"Id":"RM_RNE"},{"Id":"RM_RTZ"},{"Id":"RM_RDN"},{"Id":"RM_RUP"},{"Id":"RM_RMM"},{"Id":"RM_DYN"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"rounding_mode"}]}]}]},{"Id":"undefined_rounding_mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_rounding_mode"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"RM_RNE"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"rounding_mode"}]}]}]},{"Id":"rounding_mode_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rounding_mode_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"RM_RNE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"RM_RTZ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"RM_RDN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"RM_RUP"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"RM_RMM"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"RM_DYN"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"rounding_mode"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_rounding_mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_rounding_mode"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"RM_RNE"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"RM_RTZ"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"RM_RDN"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"RM_RUP"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"RM_RMM"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"RM_DYN"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_madd_op_S"},[{"Id":"FMADD_S"},{"Id":"FMSUB_S"},{"Id":"FNMSUB_S"},{"Id":"FNMADD_S"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_madd_op_S"}]}]}]},{"Id":"undefined_f_madd_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_madd_op_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FMADD_S"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_madd_op_S"}]}]}]},{"Id":"f_madd_op_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_madd_op_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FMADD_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FMSUB_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FNMSUB_S"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FNMADD_S"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_madd_op_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_madd_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_madd_op_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMADD_S"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMSUB_S"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMSUB_S"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMADD_S"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_rm_op_S"},[{"Id":"FADD_S"},{"Id":"FSUB_S"},{"Id":"FMUL_S"},{"Id":"FDIV_S"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_rm_op_S"}]}]}]},{"Id":"undefined_f_bin_rm_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_rm_op_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FADD_S"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_rm_op_S"}]}]}]},{"Id":"f_bin_rm_op_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_rm_op_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FADD_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FSUB_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FMUL_S"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FDIV_S"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_rm_op_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_rm_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_rm_op_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FADD_S"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSUB_S"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMUL_S"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FDIV_S"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_ff_op_S"},[{"Id":"FSQRT_S"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_ff_op_S"}]}]}]},{"Id":"undefined_f_un_rm_ff_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_ff_op_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FSQRT_S"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_ff_op_S"}]}]}]},{"Id":"f_un_rm_ff_op_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_ff_op_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FSQRT_S"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_ff_op_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_ff_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_ff_op_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FSQRT_S"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_fx_op_S"},[{"Id":"FCVT_W_S"},{"Id":"FCVT_WU_S"},{"Id":"FCVT_L_S"},{"Id":"FCVT_LU_S"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_fx_op_S"}]}]}]},{"Id":"undefined_f_un_rm_fx_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_fx_op_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCVT_W_S"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_fx_op_S"}]}]}]},{"Id":"f_un_rm_fx_op_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_fx_op_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCVT_W_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_WU_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FCVT_L_S"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_LU_S"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_fx_op_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_fx_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_fx_op_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCVT_W_S"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_WU_S"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_L_S"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_LU_S"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_xf_op_S"},[{"Id":"FCVT_S_W"},{"Id":"FCVT_S_WU"},{"Id":"FCVT_S_L"},{"Id":"FCVT_S_LU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_xf_op_S"}]}]}]},{"Id":"undefined_f_un_rm_xf_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_xf_op_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCVT_S_W"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_xf_op_S"}]}]}]},{"Id":"f_un_rm_xf_op_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_xf_op_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCVT_S_W"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_S_WU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FCVT_S_L"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_S_LU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_xf_op_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_xf_op_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_xf_op_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCVT_S_W"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_S_WU"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_S_L"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_S_LU"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_op_f_S"},[{"Id":"FMV_W_X"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_op_f_S"}]}]}]},{"Id":"undefined_f_un_op_f_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_op_f_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FMV_W_X"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_op_f_S"}]}]}]},{"Id":"f_un_op_f_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_op_f_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMV_W_X"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_op_f_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_op_f_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_op_f_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMV_W_X"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_op_x_S"},[{"Id":"FCLASS_S"},{"Id":"FMV_X_W"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_op_x_S"}]}]}]},{"Id":"undefined_f_un_op_x_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_op_x_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCLASS_S"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_op_x_S"}]}]}]},{"Id":"f_un_op_x_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_op_x_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCLASS_S"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMV_X_W"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_op_x_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_op_x_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_op_x_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCLASS_S"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMV_X_W"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_op_f_S"},[{"Id":"FSGNJ_S"},{"Id":"FSGNJN_S"},{"Id":"FSGNJX_S"},{"Id":"FMIN_S"},{"Id":"FMAX_S"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_op_f_S"}]}]}]},{"Id":"undefined_f_bin_op_f_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_op_f_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FSGNJ_S"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_op_f_S"}]}]}]},{"Id":"f_bin_op_f_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_op_f_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FSGNJ_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FSGNJN_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FSGNJX_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FMIN_S"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMAX_S"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_op_f_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_op_f_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_op_f_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FSGNJ_S"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSGNJN_S"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSGNJX_S"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMIN_S"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMAX_S"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_op_x_S"},[{"Id":"FEQ_S"},{"Id":"FLT_S"},{"Id":"FLE_S"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_op_x_S"}]}]}]},{"Id":"undefined_f_bin_op_x_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_op_x_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FEQ_S"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_op_x_S"}]}]}]},{"Id":"f_bin_op_x_S_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_op_x_S_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FEQ_S"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FLT_S"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FLE_S"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_op_x_S"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_op_x_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_op_x_S"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FEQ_S"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FLT_S"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FLE_S"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_madd_op_D"},[{"Id":"FMADD_D"},{"Id":"FMSUB_D"},{"Id":"FNMSUB_D"},{"Id":"FNMADD_D"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_madd_op_D"}]}]}]},{"Id":"undefined_f_madd_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_madd_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FMADD_D"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_madd_op_D"}]}]}]},{"Id":"f_madd_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_madd_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FMADD_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FMSUB_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FNMSUB_D"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FNMADD_D"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_madd_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_madd_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_madd_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMADD_D"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMSUB_D"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMSUB_D"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMADD_D"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_rm_op_D"},[{"Id":"FADD_D"},{"Id":"FSUB_D"},{"Id":"FMUL_D"},{"Id":"FDIV_D"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_rm_op_D"}]}]}]},{"Id":"undefined_f_bin_rm_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_rm_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FADD_D"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_rm_op_D"}]}]}]},{"Id":"f_bin_rm_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_rm_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FADD_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FSUB_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FMUL_D"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FDIV_D"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_rm_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_rm_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_rm_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FADD_D"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSUB_D"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMUL_D"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FDIV_D"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_ff_op_D"},[{"Id":"FSQRT_D"},{"Id":"FCVT_S_D"},{"Id":"FCVT_D_S"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_ff_op_D"}]}]}]},{"Id":"undefined_f_un_rm_ff_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_ff_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FSQRT_D"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_ff_op_D"}]}]}]},{"Id":"f_un_rm_ff_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_ff_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FSQRT_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_S_D"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_D_S"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_ff_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_ff_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_ff_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FSQRT_D"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_S_D"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_D_S"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_fx_op_D"},[{"Id":"FCVT_W_D"},{"Id":"FCVT_WU_D"},{"Id":"FCVT_L_D"},{"Id":"FCVT_LU_D"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_fx_op_D"}]}]}]},{"Id":"undefined_f_un_rm_fx_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_fx_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCVT_W_D"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_fx_op_D"}]}]}]},{"Id":"f_un_rm_fx_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_fx_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCVT_W_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_WU_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FCVT_L_D"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_LU_D"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_fx_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_fx_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_fx_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCVT_W_D"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_WU_D"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_L_D"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_LU_D"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_rm_xf_op_D"},[{"Id":"FCVT_D_W"},{"Id":"FCVT_D_WU"},{"Id":"FCVT_D_L"},{"Id":"FCVT_D_LU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_rm_xf_op_D"}]}]}]},{"Id":"undefined_f_un_rm_xf_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_rm_xf_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCVT_D_W"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_rm_xf_op_D"}]}]}]},{"Id":"f_un_rm_xf_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_rm_xf_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCVT_D_W"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FCVT_D_WU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FCVT_D_L"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FCVT_D_LU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_rm_xf_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_rm_xf_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_rm_xf_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCVT_D_W"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_D_WU"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_D_L"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FCVT_D_LU"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_f_op_D"},[{"Id":"FSGNJ_D"},{"Id":"FSGNJN_D"},{"Id":"FSGNJX_D"},{"Id":"FMIN_D"},{"Id":"FMAX_D"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_f_op_D"}]}]}]},{"Id":"undefined_f_bin_f_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_f_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FSGNJ_D"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_f_op_D"}]}]}]},{"Id":"f_bin_f_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_f_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FSGNJ_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FSGNJN_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FSGNJX_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FMIN_D"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMAX_D"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_f_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[4]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_f_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_f_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FSGNJ_D"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSGNJN_D"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FSGNJX_D"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMIN_D"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMAX_D"}]},{"E_lit":[{"L_num":4}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_bin_x_op_D"},[{"Id":"FEQ_D"},{"Id":"FLT_D"},{"Id":"FLE_D"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_bin_x_op_D"}]}]}]},{"Id":"undefined_f_bin_x_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_bin_x_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FEQ_D"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_bin_x_op_D"}]}]}]},{"Id":"f_bin_x_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_bin_x_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FEQ_D"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FLT_D"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FLE_D"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_bin_x_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_bin_x_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_bin_x_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FEQ_D"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FLT_D"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FLE_D"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_x_op_D"},[{"Id":"FCLASS_D"},{"Id":"FMV_X_D"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_x_op_D"}]}]}]},{"Id":"undefined_f_un_x_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_x_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FCLASS_D"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_x_op_D"}]}]}]},{"Id":"f_un_x_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_x_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FCLASS_D"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMV_X_D"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_x_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_x_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_x_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FCLASS_D"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FMV_X_D"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"f_un_f_op_D"},[{"Id":"FMV_D_X"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"f_un_f_op_D"}]}]}]},{"Id":"undefined_f_un_f_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_f_un_f_op_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FMV_D_X"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"f_un_f_op_D"}]}]}]},{"Id":"f_un_f_op_D_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_un_f_op_D_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FMV_D_X"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"f_un_f_op_D"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_f_un_f_op_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_f_un_f_op_D"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMV_D_X"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/FD/freg_type.sail"]},{"DEF_pragma":["file_start","extensions/FD/fdext_regs.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[16,32,64,128]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"canonical_NaN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"canonical_NaN"},{"Pat_exp":[{"P_id":[{"Id":"n"}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":9}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":22}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":51}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":15}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":111}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"canonical_NaN_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"canonical_NaN_H"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"canonical_NaN"},[{"E_lit":[{"L_num":16}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"canonical_NaN_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"canonical_NaN_S"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"canonical_NaN"},[{"E_lit":[{"L_num":32}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"canonical_NaN_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"canonical_NaN_D"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"canonical_NaN"},[{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"canonical_NaN_Q"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"canonical_NaN_Q"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"canonical_NaN"},[{"E_lit":[{"L_num":128}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"nan_box"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nan_box"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]}]]}]]},{"E_id":[{"Id":"x"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64,128]]},{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"nan_unbox"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nan_unbox"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"m"}]},{"P_id":[{"Id":"x"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_id":[{"Id":"x"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"x"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"canonical_NaN"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]}]}]}]}]]}},{"DEF_type":{"TD_variant":[{"Id":"fregidx"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Id":"Fregidx"}]}],true]}},{"DEF_type":{"TD_variant":[{"Id":"fregno"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Id":"Fregno"}]}],true]}},{"DEF_type":{"TD_variant":[{"Id":"cfregidx"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Id":"Cfregidx"}]}],true]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"fregidx_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fregidx_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_app":[{"Id":"Fregidx"},[{"P_id":[{"Id":"r"}]}]]}]},{"E_id":[{"Id":"r"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"cfregidx"}]}],{"Typ_id":[{"Id":"fregidx"}]}]}]},{"Id":"cfregidx_to_fregidx"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cfregidx_to_fregidx"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"cfregidx"}]},{"P_app":[{"Id":"Cfregidx"},[{"P_id":[{"Id":"b"}]}]]}]},{"E_app":[{"Id":"Fregidx"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"01"}]},{"E_id":[{"Id":"b"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cfregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_cfreg"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_cfreg"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Cfregidx"},[{"MP_id":[{"Id":"r"}]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"r"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_id":[{"Id":"regidx"}]}]}]},{"Id":"fregidx_to_regidx"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fregidx_to_regidx"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_app":[{"Id":"Fregidx"},[{"P_id":[{"Id":"b"}]}]]}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"trunc"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_id":[{"Id":"b"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_freg"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_freg"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Fregidx"},[{"MP_id":[{"Id":"r"}]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"r"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"freg_write_callback"},{"pure":true,"bindings":[["c","freg_write_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"freg_write_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f0"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f1"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f2"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f3"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f4"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f5"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f6"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f7"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f8"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f9"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f10"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f11"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f12"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f13"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f14"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f15"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f16"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f17"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f18"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f19"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f20"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f21"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f22"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f23"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f24"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f25"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f26"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f27"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f28"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f29"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f30"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"fregtype"}]},{"Id":"f31"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"dirty_fd_context"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dirty_fd_context"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:110.28-110.29"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":13}]}]},{"E_app":[{"Id":"extStatus_to_bits"},[{"E_id":[{"Id":"Dirty"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_app":[{"Id":"long_csr_write_callback"},[{"E_lit":[{"L_string":"mstatus"}]},{"E_lit":[{"L_string":"mstatush"}]},{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"dirty_fd_context_if_present"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dirty_fd_context_if_present"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"neq_bool"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:117.55-117.56"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"dirty_fd_context"},[{"E_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregno"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}]}]},{"Id":"rF"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregno"}]},{"P_app":[{"Id":"Fregno"},[{"P_id":[{"Id":"r"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:122.28-122.29"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"fregtype"}]},{"P_id":[{"Id":"v"}]}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"f0"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"f1"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"f2"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"f3"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"f4"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"f5"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"f6"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"f7"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"f8"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"f9"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"f10"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_id":[{"Id":"f11"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_id":[{"Id":"f12"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_id":[{"Id":"f13"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_id":[{"Id":"f14"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_id":[{"Id":"f15"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_id":[{"Id":"f16"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_id":[{"Id":"f17"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_id":[{"Id":"f18"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":19}]},{"E_id":[{"Id":"f19"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":20}]},{"E_id":[{"Id":"f20"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":21}]},{"E_id":[{"Id":"f21"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":22}]},{"E_id":[{"Id":"f22"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":23}]},{"E_id":[{"Id":"f23"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":24}]},{"E_id":[{"Id":"f24"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":25}]},{"E_id":[{"Id":"f25"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":26}]},{"E_id":[{"Id":"f26"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":27}]},{"E_id":[{"Id":"f27"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":28}]},{"E_id":[{"Id":"f28"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":29}]},{"E_id":[{"Id":"f29"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":30}]},{"E_id":[{"Id":"f30"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":31}]},{"E_id":[{"Id":"f31"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_block":[[{"E_assert":[{"E_lit":["L_false"]},{"E_lit":[{"L_string":"invalid floating point register number"}]}]},{"E_exit":[{"E_lit":["L_unit"]}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"fregval_from_freg"},[{"E_id":[{"Id":"v"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregno"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregno"}]},{"P_app":[{"Id":"Fregno"},[{"P_id":[{"Id":"r"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"flenbits"}]},{"P_id":[{"Id":"in_v"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:163.28-163.29"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"fregval_into_freg"},[{"E_id":[{"Id":"in_v"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_assign":[{"LE_id":[{"Id":"f0"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_assign":[{"LE_id":[{"Id":"f1"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_assign":[{"LE_id":[{"Id":"f2"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_assign":[{"LE_id":[{"Id":"f3"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_assign":[{"LE_id":[{"Id":"f4"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_assign":[{"LE_id":[{"Id":"f5"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_assign":[{"LE_id":[{"Id":"f6"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_assign":[{"LE_id":[{"Id":"f7"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_assign":[{"LE_id":[{"Id":"f8"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_assign":[{"LE_id":[{"Id":"f9"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_assign":[{"LE_id":[{"Id":"f10"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_assign":[{"LE_id":[{"Id":"f11"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_assign":[{"LE_id":[{"Id":"f12"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_assign":[{"LE_id":[{"Id":"f13"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_assign":[{"LE_id":[{"Id":"f14"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_assign":[{"LE_id":[{"Id":"f15"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_assign":[{"LE_id":[{"Id":"f16"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_assign":[{"LE_id":[{"Id":"f17"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_assign":[{"LE_id":[{"Id":"f18"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":19}]},{"E_assign":[{"LE_id":[{"Id":"f19"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":20}]},{"E_assign":[{"LE_id":[{"Id":"f20"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":21}]},{"E_assign":[{"LE_id":[{"Id":"f21"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":22}]},{"E_assign":[{"LE_id":[{"Id":"f22"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":23}]},{"E_assign":[{"LE_id":[{"Id":"f23"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":24}]},{"E_assign":[{"LE_id":[{"Id":"f24"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":25}]},{"E_assign":[{"LE_id":[{"Id":"f25"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":26}]},{"E_assign":[{"LE_id":[{"Id":"f26"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":27}]},{"E_assign":[{"LE_id":[{"Id":"f27"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":28}]},{"E_assign":[{"LE_id":[{"Id":"f28"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":29}]},{"E_assign":[{"LE_id":[{"Id":"f29"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":30}]},{"E_assign":[{"LE_id":[{"Id":"f30"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_wild":[]},{"E_assign":[{"LE_id":[{"Id":"f31"}]},{"E_id":[{"Id":"v"}]}]}]}]]},{"E_app":[{"Id":"freg_write_callback"},[{"E_app":[{"Id":"Fregidx"},[{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"r"}]}]]}]]},{"E_id":[{"Id":"in_v"}]}]]},{"E_app":[{"Id":"dirty_fd_context"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}]}]},{"Id":"rF_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_app":[{"Id":"Fregidx"},[{"P_id":[{"Id":"i"}]}]]}]},{"E_app":[{"Id":"rF"},[{"E_app":[{"Id":"Fregno"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_if":["NC_true",{"Nexp_constant":[8]},{"Nexp_constant":[4]}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_bits"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_app":[{"Id":"Fregidx"},[{"P_id":[{"Id":"i"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"flenbits"}]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"wF"},[{"E_app":[{"Id":"Fregno"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"i"}]}]]}]]},{"E_id":[{"Id":"data"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Id":"F"},[{"Id":"rF_bits"},{"Id":"wF_bits"},{"Id":"rF"},{"Id":"wF"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"rF_BF16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_BF16"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_app":[{"Id":"nan_unbox"},[{"E_lit":[{"L_num":16}]},{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_BF16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_BF16"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"nan_box"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"data"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"rF_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_H"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:221.19-221.20"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:222.59-222.60"}]}]},{"E_app":[{"Id":"nan_unbox"},[{"E_lit":[{"L_num":16}]},{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_H"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:227.19-227.20"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:228.59-228.60"}]}]},{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"nan_box"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"data"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"rF_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_S"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:233.19-233.20"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:234.59-234.60"}]}]},{"E_app":[{"Id":"nan_unbox"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_S"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:239.19-239.20"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:240.59-240.60"}]}]},{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"nan_box"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"data"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"rF_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_D"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:245.19-245.20"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:246.59-246.60"}]}]},{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"i"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_D"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:251.19-251.20"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:252.59-252.60"}]}]},{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"data"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Id":"F_BF16"},[{"Id":"rF_BF16"},{"Id":"wF_BF16"}]]},{"DEF_overload":[{"Id":"F_H"},[{"Id":"rF_H"},{"Id":"wF_H"}]]},{"DEF_overload":[{"Id":"F_S"},[{"Id":"rF_S"},{"Id":"wF_S"}]]},{"DEF_overload":[{"Id":"F_D"},[{"Id":"rF_D"},{"Id":"wF_D"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"rF_or_X_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_or_X_H"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:262.19-262.20"}]}]},{"E_assert":[{"E_app":[{"Id":"neq_bool"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:263.55-263.56"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"rF_or_X_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_or_X_S"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:270.19-270.20"}]}]},{"E_assert":[{"E_app":[{"Id":"neq_bool"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:271.55-271.56"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"rF_or_X_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rF_or_X_D"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:278.19-278.20"}]}]},{"E_assert":[{"E_app":[{"Id":"neq_bool"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:279.55-279.56"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"i"}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ridx"}]},{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"regidx_bits"},[{"E_id":[{"Id":"ridx"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:286.42-286.43"}]}]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"ridx"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"rX_bits"},[{"E_app":[{"Id":"regidx_offset_range"},[{"E_id":[{"Id":"ridx"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"ridx"}]}]]}]]}]}]]}]}]]}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_or_X_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_or_X_H"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:292.19-292.20"}]}]},{"E_assert":[{"E_app":[{"Id":"neq_bool"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:293.55-293.56"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"wF_H"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"data"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"data"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_or_X_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_or_X_S"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:300.19-300.20"}]}]},{"E_assert":[{"E_app":[{"Id":"neq_bool"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:301.55-301.56"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"data"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"data"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wF_or_X_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wF_or_X_D"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"fregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:308.20-308.21"}]}]},{"E_assert":[{"E_app":[{"Id":"neq_bool"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:309.55-309.56"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"data"}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"data"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ridx"}]},{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"regidx_bits"},[{"E_id":[{"Id":"ridx"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_lit":[{"L_string":"extensions/FD/fdext_regs.sail:316.43-316.44"}]}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"ridx"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"ridx"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"data"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_app":[{"Id":"regidx_offset_range"},[{"E_id":[{"Id":"ridx"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"data"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]},{"E_lit":["L_unit"]}]}]]}]}]]}]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"F_or_X_H"},[{"Id":"rF_or_X_H"},{"Id":"wF_or_X_H"}]]},{"DEF_overload":[{"Id":"F_or_X_S"},[{"Id":"rF_or_X_S"},{"Id":"wF_or_X_S"}]]},{"DEF_overload":[{"Id":"F_or_X_D"},[{"Id":"rF_or_X_D"},{"Id":"wF_or_X_D"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"freg_abi_name_raw"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"freg_abi_name_raw"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fa7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fs11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ft11"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"freg_arch_name_raw"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"freg_arch_name_raw"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f17"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f18"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f19"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f20"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f21"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f22"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f23"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f24"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f25"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f26"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f27"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f28"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f29"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f30"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"f31"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"freg_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"freg_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"Fregidx"},[{"MP_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"get_config_use_abi_names"},[{"E_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"freg_abi_name_raw"},[{"MP_id":[{"Id":"i"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"Fregidx"},[{"MP_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"get_config_use_abi_names"},[{"E_lit":["L_unit"]}]]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"freg_arch_name_raw"},[{"MP_id":[{"Id":"i"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"freg_or_reg_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"freg_or_reg_name"},{"Typ_annot_opt_none":[]},[{"MCL_forwards":[{"Pat_when":[{"P_id":[{"Id":"f"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]},{"E_app":[{"Id":"reg_name_forwards"},[{"E_app":[{"Id":"fregidx_to_regidx"},[{"E_id":[{"Id":"f"}]}]]}]]}]}]},{"MCL_backwards":[{"Pat_when":[{"P_app":[{"Id":"reg_name"},[{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]},{"E_app":[{"Id":"Fregidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"f"}]}]},{"MPat_pat":[{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"f"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cfregidx"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"cfreg_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"cfreg_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Cfregidx"},[{"MP_id":[{"Id":"i"}]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"freg_name"},[{"MP_app":[{"Id":"Fregidx"},[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_typ":[{"MP_id":[{"Id":"i"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]}]]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Fcsr"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Fcsr"}]}]}]},{"Id":"undefined_Fcsr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Fcsr"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Fcsr"}]}]}]},{"Id":"Mk_Fcsr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Fcsr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Fcsr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_Fcsr_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Fcsr_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Fcsr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"Fcsr"}]}]}]},{"Id":"_update_Fcsr_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Fcsr_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Fcsr_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Fcsr"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Fcsr_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Fcsr_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Fcsr_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Fcsr_bits"},{"Id":"_set_Fcsr_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Fcsr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"_get_Fcsr_FFLAGS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Fcsr_FFLAGS"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Fcsr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_id":[{"Id":"Fcsr"}]}]}]},{"Id":"_update_Fcsr_FFLAGS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Fcsr_FFLAGS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_FFLAGS"},[{"Id":"_update_Fcsr_FFLAGS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Fcsr"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Fcsr_FFLAGS"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Fcsr_FFLAGS"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Fcsr_FFLAGS"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_FFLAGS"},[{"Id":"_get_Fcsr_FFLAGS"},{"Id":"_set_Fcsr_FFLAGS"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Fcsr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"_get_Fcsr_FRM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Fcsr_FRM"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Fcsr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"Fcsr"}]}]}]},{"Id":"_update_Fcsr_FRM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Fcsr_FRM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_FRM"},[{"Id":"_update_Fcsr_FRM"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Fcsr"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Fcsr_FRM"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Fcsr_FRM"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Fcsr_FRM"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_FRM"},[{"Id":"_get_Fcsr_FRM"},{"Id":"_set_Fcsr_FRM"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Fcsr"}]},{"Id":"fcsr"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_fcsr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_fcsr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"frm"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"fflags"}]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"fcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":5}]}]},{"E_id":[{"Id":"frm"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"fcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"fflags"}]}]},{"E_app":[{"Id":"dirty_fd_context_if_present"},[{"E_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"accrue_fflags"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"accrue_fflags"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"flags"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"f"}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"_get_Fcsr_FFLAGS"},[{"E_id":[{"Id":"fcsr"}]}]]},{"E_id":[{"Id":"flags"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_Fcsr_FFLAGS"},[{"E_id":[{"Id":"fcsr"}]}]]},{"E_id":[{"Id":"f"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"fcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"f"}]}]},{"E_app":[{"Id":"dirty_fd_context_if_present"},[{"E_lit":["L_unit"]}]]}]]},{"E_lit":["L_unit"]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/FD/fdext_regs.sail"]},{"DEF_pragma":["file_start","extensions/FD/fdext_control.sail"]},{"DEF_pragma":["file_end","extensions/FD/fdext_control.sail"]},{"DEF_pragma":["file_start","extensions/V/vreg_type.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"vlenbits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"vlen"}]}]}]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"vvfunct6"},[{"Id":"VV_VADD"},{"Id":"VV_VSUB"},{"Id":"VV_VMINU"},{"Id":"VV_VMIN"},{"Id":"VV_VMAXU"},{"Id":"VV_VMAX"},{"Id":"VV_VAND"},{"Id":"VV_VOR"},{"Id":"VV_VXOR"},{"Id":"VV_VRGATHER"},{"Id":"VV_VRGATHEREI16"},{"Id":"VV_VSADDU"},{"Id":"VV_VSADD"},{"Id":"VV_VSSUBU"},{"Id":"VV_VSSUB"},{"Id":"VV_VSLL"},{"Id":"VV_VSMUL"},{"Id":"VV_VSRL"},{"Id":"VV_VSRA"},{"Id":"VV_VSSRL"},{"Id":"VV_VSSRA"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vvfunct6"}]}]}]},{"Id":"undefined_vvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VV_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[20]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vvfunct6"}]}]}]},{"Id":"vvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VV_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VV_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VV_VMINU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VV_VMIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VV_VMAXU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"VV_VMAX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"VV_VAND"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"VV_VOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"VV_VXOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"VV_VRGATHER"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"VV_VRGATHEREI16"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_id":[{"Id":"VV_VSADDU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_id":[{"Id":"VV_VSADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_id":[{"Id":"VV_VSSUBU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_id":[{"Id":"VV_VSSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_id":[{"Id":"VV_VSLL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_id":[{"Id":"VV_VSMUL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_id":[{"Id":"VV_VSRL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_id":[{"Id":"VV_VSRA"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":19}]},{"E_id":[{"Id":"VV_VSSRL"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VV_VSSRA"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[20]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VV_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMINU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMIN"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMAXU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMAX"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VAND"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VOR"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VXOR"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VRGATHER"}]},{"E_lit":[{"L_num":9}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VRGATHEREI16"}]},{"E_lit":[{"L_num":10}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSADDU"}]},{"E_lit":[{"L_num":11}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSADD"}]},{"E_lit":[{"L_num":12}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSUBU"}]},{"E_lit":[{"L_num":13}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSUB"}]},{"E_lit":[{"L_num":14}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSLL"}]},{"E_lit":[{"L_num":15}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSMUL"}]},{"E_lit":[{"L_num":16}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSRL"}]},{"E_lit":[{"L_num":17}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSRA"}]},{"E_lit":[{"L_num":18}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSRL"}]},{"E_lit":[{"L_num":19}]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSRA"}]},{"E_lit":[{"L_num":20}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vvcmpfunct6"},[{"Id":"VVCMP_VMSEQ"},{"Id":"VVCMP_VMSNE"},{"Id":"VVCMP_VMSLTU"},{"Id":"VVCMP_VMSLT"},{"Id":"VVCMP_VMSLEU"},{"Id":"VVCMP_VMSLE"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vvcmpfunct6"}]}]}]},{"Id":"undefined_vvcmpfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vvcmpfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VVCMP_VMSEQ"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vvcmpfunct6"}]}]}]},{"Id":"vvcmpfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vvcmpfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VVCMP_VMSEQ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VVCMP_VMSNE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VVCMP_VMSLTU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VVCMP_VMSLT"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VVCMP_VMSLEU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VVCMP_VMSLE"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vvcmpfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vvcmpfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vvcmpfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSEQ"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSNE"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLTU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLT"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLEU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLE"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vvmfunct6"},[{"Id":"VVM_VMADC"},{"Id":"VVM_VMSBC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vvmfunct6"}]}]}]},{"Id":"undefined_vvmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vvmfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VVM_VMADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vvmfunct6"}]}]}]},{"Id":"vvmfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vvmfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VVM_VMADC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VVM_VMSBC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vvmfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vvmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vvmfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVM_VMADC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVM_VMSBC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vvmcfunct6"},[{"Id":"VVMC_VMADC"},{"Id":"VVMC_VMSBC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vvmcfunct6"}]}]}]},{"Id":"undefined_vvmcfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vvmcfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VVMC_VMADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vvmcfunct6"}]}]}]},{"Id":"vvmcfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vvmcfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VVMC_VMADC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VVMC_VMSBC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vvmcfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vvmcfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vvmcfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVMC_VMADC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVMC_VMSBC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vvmsfunct6"},[{"Id":"VVMS_VADC"},{"Id":"VVMS_VSBC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vvmsfunct6"}]}]}]},{"Id":"undefined_vvmsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vvmsfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VVMS_VADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vvmsfunct6"}]}]}]},{"Id":"vvmsfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vvmsfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VVMS_VADC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VVMS_VSBC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vvmsfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vvmsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vvmsfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVMS_VADC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VVMS_VSBC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vxmfunct6"},[{"Id":"VXM_VMADC"},{"Id":"VXM_VMSBC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vxmfunct6"}]}]}]},{"Id":"undefined_vxmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vxmfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VXM_VMADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vxmfunct6"}]}]}]},{"Id":"vxmfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vxmfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VXM_VMADC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VXM_VMSBC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vxmfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vxmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vxmfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXM_VMADC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXM_VMSBC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vxmcfunct6"},[{"Id":"VXMC_VMADC"},{"Id":"VXMC_VMSBC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vxmcfunct6"}]}]}]},{"Id":"undefined_vxmcfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vxmcfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VXMC_VMADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vxmcfunct6"}]}]}]},{"Id":"vxmcfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vxmcfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VXMC_VMADC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VXMC_VMSBC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vxmcfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vxmcfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vxmcfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXMC_VMADC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXMC_VMSBC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vxmsfunct6"},[{"Id":"VXMS_VADC"},{"Id":"VXMS_VSBC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vxmsfunct6"}]}]}]},{"Id":"undefined_vxmsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vxmsfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VXMS_VADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vxmsfunct6"}]}]}]},{"Id":"vxmsfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vxmsfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VXMS_VADC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VXMS_VSBC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vxmsfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vxmsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vxmsfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXMS_VADC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXMS_VSBC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vimfunct6"},[{"Id":"VIM_VMADC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vimfunct6"}]}]}]},{"Id":"undefined_vimfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vimfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VIM_VMADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vimfunct6"}]}]}]},{"Id":"vimfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vimfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VIM_VMADC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vimfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vimfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vimfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VIM_VMADC"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vimcfunct6"},[{"Id":"VIMC_VMADC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vimcfunct6"}]}]}]},{"Id":"undefined_vimcfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vimcfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VIMC_VMADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vimcfunct6"}]}]}]},{"Id":"vimcfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vimcfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VIMC_VMADC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vimcfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vimcfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vimcfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VIMC_VMADC"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vimsfunct6"},[{"Id":"VIMS_VADC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vimsfunct6"}]}]}]},{"Id":"undefined_vimsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vimsfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VIMS_VADC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vimsfunct6"}]}]}]},{"Id":"vimsfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vimsfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VIMS_VADC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vimsfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[0]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vimsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vimsfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VIMS_VADC"}]},{"E_lit":[{"L_num":0}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vxcmpfunct6"},[{"Id":"VXCMP_VMSEQ"},{"Id":"VXCMP_VMSNE"},{"Id":"VXCMP_VMSLTU"},{"Id":"VXCMP_VMSLT"},{"Id":"VXCMP_VMSLEU"},{"Id":"VXCMP_VMSLE"},{"Id":"VXCMP_VMSGTU"},{"Id":"VXCMP_VMSGT"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vxcmpfunct6"}]}]}]},{"Id":"undefined_vxcmpfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vxcmpfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VXCMP_VMSEQ"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vxcmpfunct6"}]}]}]},{"Id":"vxcmpfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vxcmpfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VXCMP_VMSEQ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VXCMP_VMSNE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VXCMP_VMSLTU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VXCMP_VMSLT"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VXCMP_VMSLEU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"VXCMP_VMSLE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"VXCMP_VMSGTU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VXCMP_VMSGT"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vxcmpfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vxcmpfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vxcmpfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSEQ"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSNE"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLTU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLT"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLEU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLE"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSGTU"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSGT"}]},{"E_lit":[{"L_num":7}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vicmpfunct6"},[{"Id":"VICMP_VMSEQ"},{"Id":"VICMP_VMSNE"},{"Id":"VICMP_VMSLEU"},{"Id":"VICMP_VMSLE"},{"Id":"VICMP_VMSGTU"},{"Id":"VICMP_VMSGT"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vicmpfunct6"}]}]}]},{"Id":"undefined_vicmpfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vicmpfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VICMP_VMSEQ"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vicmpfunct6"}]}]}]},{"Id":"vicmpfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vicmpfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VICMP_VMSEQ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VICMP_VMSNE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VICMP_VMSLEU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VICMP_VMSLE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VICMP_VMSGTU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VICMP_VMSGT"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vicmpfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vicmpfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vicmpfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSEQ"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSNE"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSLEU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSLE"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSGTU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSGT"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"nvfunct6"},[{"Id":"NV_VNCLIPU"},{"Id":"NV_VNCLIP"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"nvfunct6"}]}]}]},{"Id":"undefined_nvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_nvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NV_VNCLIPU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"nvfunct6"}]}]}]},{"Id":"nvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NV_VNCLIPU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NV_VNCLIP"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"nvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_nvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_nvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NV_VNCLIPU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"NV_VNCLIP"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"nvsfunct6"},[{"Id":"NVS_VNSRL"},{"Id":"NVS_VNSRA"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"nvsfunct6"}]}]}]},{"Id":"undefined_nvsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_nvsfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NVS_VNSRL"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"nvsfunct6"}]}]}]},{"Id":"nvsfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nvsfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NVS_VNSRL"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NVS_VNSRA"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"nvsfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_nvsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_nvsfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NVS_VNSRL"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"NVS_VNSRA"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"nxfunct6"},[{"Id":"NX_VNCLIPU"},{"Id":"NX_VNCLIP"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"nxfunct6"}]}]}]},{"Id":"undefined_nxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_nxfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NX_VNCLIPU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"nxfunct6"}]}]}]},{"Id":"nxfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nxfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NX_VNCLIPU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NX_VNCLIP"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"nxfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_nxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_nxfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NX_VNCLIPU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"NX_VNCLIP"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"nxsfunct6"},[{"Id":"NXS_VNSRL"},{"Id":"NXS_VNSRA"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"nxsfunct6"}]}]}]},{"Id":"undefined_nxsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_nxsfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NXS_VNSRL"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"nxsfunct6"}]}]}]},{"Id":"nxsfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nxsfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NXS_VNSRL"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NXS_VNSRA"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"nxsfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_nxsfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_nxsfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NXS_VNSRL"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"NXS_VNSRA"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"mmfunct6"},[{"Id":"MM_VMAND"},{"Id":"MM_VMNAND"},{"Id":"MM_VMANDN"},{"Id":"MM_VMXOR"},{"Id":"MM_VMOR"},{"Id":"MM_VMNOR"},{"Id":"MM_VMORN"},{"Id":"MM_VMXNOR"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"mmfunct6"}]}]}]},{"Id":"undefined_mmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_mmfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"MM_VMAND"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"mmfunct6"}]}]}]},{"Id":"mmfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mmfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"MM_VMAND"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"MM_VMNAND"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"MM_VMANDN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"MM_VMXOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"MM_VMOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"MM_VMNOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"MM_VMORN"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"MM_VMXNOR"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"mmfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_mmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_mmfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"MM_VMAND"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMNAND"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMANDN"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMXOR"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMOR"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMNOR"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMORN"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMXNOR"}]},{"E_lit":[{"L_num":7}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"nifunct6"},[{"Id":"NI_VNCLIPU"},{"Id":"NI_VNCLIP"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"nifunct6"}]}]}]},{"Id":"undefined_nifunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_nifunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NI_VNCLIPU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"nifunct6"}]}]}]},{"Id":"nifunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nifunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NI_VNCLIPU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NI_VNCLIP"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"nifunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_nifunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_nifunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NI_VNCLIPU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"NI_VNCLIP"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"nisfunct6"},[{"Id":"NIS_VNSRL"},{"Id":"NIS_VNSRA"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"nisfunct6"}]}]}]},{"Id":"undefined_nisfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_nisfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NIS_VNSRL"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"nisfunct6"}]}]}]},{"Id":"nisfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nisfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NIS_VNSRL"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NIS_VNSRA"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"nisfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_nisfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_nisfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NIS_VNSRL"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"NIS_VNSRA"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"wvvfunct6"},[{"Id":"WVV_VADD"},{"Id":"WVV_VSUB"},{"Id":"WVV_VADDU"},{"Id":"WVV_VSUBU"},{"Id":"WVV_VWMUL"},{"Id":"WVV_VWMULU"},{"Id":"WVV_VWMULSU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"wvvfunct6"}]}]}]},{"Id":"undefined_wvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_wvvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WVV_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"wvvfunct6"}]}]}]},{"Id":"wvvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wvvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WVV_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"WVV_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"WVV_VADDU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"WVV_VSUBU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"WVV_VWMUL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"WVV_VWMULU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WVV_VWMULSU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"wvvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_wvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_wvvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WVV_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VADDU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VSUBU"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VWMUL"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VWMULU"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VWMULSU"}]},{"E_lit":[{"L_num":6}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"wvfunct6"},[{"Id":"WV_VADD"},{"Id":"WV_VSUB"},{"Id":"WV_VADDU"},{"Id":"WV_VSUBU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"wvfunct6"}]}]}]},{"Id":"undefined_wvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_wvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WV_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"wvfunct6"}]}]}]},{"Id":"wvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WV_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"WV_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"WV_VADDU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WV_VSUBU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"wvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_wvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_wvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WV_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WV_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WV_VADDU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"WV_VSUBU"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"wvxfunct6"},[{"Id":"WVX_VADD"},{"Id":"WVX_VSUB"},{"Id":"WVX_VADDU"},{"Id":"WVX_VSUBU"},{"Id":"WVX_VWMUL"},{"Id":"WVX_VWMULU"},{"Id":"WVX_VWMULSU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"wvxfunct6"}]}]}]},{"Id":"undefined_wvxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_wvxfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WVX_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"wvxfunct6"}]}]}]},{"Id":"wvxfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wvxfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WVX_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"WVX_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"WVX_VADDU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"WVX_VSUBU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"WVX_VWMUL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"WVX_VWMULU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WVX_VWMULSU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"wvxfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_wvxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_wvxfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WVX_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VADDU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VSUBU"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VWMUL"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VWMULU"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VWMULSU"}]},{"E_lit":[{"L_num":6}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"wxfunct6"},[{"Id":"WX_VADD"},{"Id":"WX_VSUB"},{"Id":"WX_VADDU"},{"Id":"WX_VSUBU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"wxfunct6"}]}]}]},{"Id":"undefined_wxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_wxfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WX_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"wxfunct6"}]}]}]},{"Id":"wxfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wxfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WX_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"WX_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"WX_VADDU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WX_VSUBU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"wxfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_wxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_wxfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WX_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WX_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WX_VADDU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"WX_VSUBU"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vextfunct6"},[{"Id":"VEXT2_ZVF2"},{"Id":"VEXT2_SVF2"},{"Id":"VEXT4_ZVF4"},{"Id":"VEXT4_SVF4"},{"Id":"VEXT8_ZVF8"},{"Id":"VEXT8_SVF8"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vextfunct6"}]}]}]},{"Id":"undefined_vextfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vextfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VEXT2_ZVF2"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vextfunct6"}]}]}]},{"Id":"vextfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vextfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VEXT2_ZVF2"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VEXT2_SVF2"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VEXT4_ZVF4"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VEXT4_SVF4"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VEXT8_ZVF8"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VEXT8_SVF8"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vextfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vextfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vextfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VEXT2_ZVF2"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT2_SVF2"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT4_ZVF4"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT4_SVF4"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT8_ZVF8"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT8_SVF8"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vxfunct6"},[{"Id":"VX_VADD"},{"Id":"VX_VSUB"},{"Id":"VX_VRSUB"},{"Id":"VX_VMINU"},{"Id":"VX_VMIN"},{"Id":"VX_VMAXU"},{"Id":"VX_VMAX"},{"Id":"VX_VAND"},{"Id":"VX_VOR"},{"Id":"VX_VXOR"},{"Id":"VX_VSADDU"},{"Id":"VX_VSADD"},{"Id":"VX_VSSUBU"},{"Id":"VX_VSSUB"},{"Id":"VX_VSLL"},{"Id":"VX_VSMUL"},{"Id":"VX_VSRL"},{"Id":"VX_VSRA"},{"Id":"VX_VSSRL"},{"Id":"VX_VSSRA"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vxfunct6"}]}]}]},{"Id":"undefined_vxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vxfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VX_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[19]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vxfunct6"}]}]}]},{"Id":"vxfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vxfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VX_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VX_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VX_VRSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VX_VMINU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VX_VMIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"VX_VMAXU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"VX_VMAX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"VX_VAND"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"VX_VOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"VX_VXOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"VX_VSADDU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_id":[{"Id":"VX_VSADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_id":[{"Id":"VX_VSSUBU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_id":[{"Id":"VX_VSSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_id":[{"Id":"VX_VSLL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_id":[{"Id":"VX_VSMUL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_id":[{"Id":"VX_VSRL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_id":[{"Id":"VX_VSRA"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_id":[{"Id":"VX_VSSRL"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VX_VSSRA"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vxfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[19]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vxfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VX_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VRSUB"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMINU"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMIN"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMAXU"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMAX"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VAND"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VOR"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VXOR"}]},{"E_lit":[{"L_num":9}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSADDU"}]},{"E_lit":[{"L_num":10}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSADD"}]},{"E_lit":[{"L_num":11}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSUBU"}]},{"E_lit":[{"L_num":12}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSUB"}]},{"E_lit":[{"L_num":13}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSLL"}]},{"E_lit":[{"L_num":14}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSMUL"}]},{"E_lit":[{"L_num":15}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSRL"}]},{"E_lit":[{"L_num":16}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSRA"}]},{"E_lit":[{"L_num":17}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSRL"}]},{"E_lit":[{"L_num":18}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSRA"}]},{"E_lit":[{"L_num":19}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vifunct6"},[{"Id":"VI_VADD"},{"Id":"VI_VRSUB"},{"Id":"VI_VAND"},{"Id":"VI_VOR"},{"Id":"VI_VXOR"},{"Id":"VI_VSADDU"},{"Id":"VI_VSADD"},{"Id":"VI_VSLL"},{"Id":"VI_VSRL"},{"Id":"VI_VSRA"},{"Id":"VI_VSSRL"},{"Id":"VI_VSSRA"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vifunct6"}]}]}]},{"Id":"undefined_vifunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vifunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VI_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[11]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vifunct6"}]}]}]},{"Id":"vifunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vifunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VI_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VI_VRSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VI_VAND"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VI_VOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VI_VXOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"VI_VSADDU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"VI_VSADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"VI_VSLL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"VI_VSRL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"VI_VSRA"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"VI_VSSRL"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VI_VSSRA"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vifunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[11]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vifunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vifunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VI_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VRSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VAND"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VOR"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VXOR"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSADDU"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSADD"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSLL"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSRL"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSRA"}]},{"E_lit":[{"L_num":9}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSSRL"}]},{"E_lit":[{"L_num":10}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSSRA"}]},{"E_lit":[{"L_num":11}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vxsgfunct6"},[{"Id":"VX_VSLIDEUP"},{"Id":"VX_VSLIDEDOWN"},{"Id":"VX_VRGATHER"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vxsgfunct6"}]}]}]},{"Id":"undefined_vxsgfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vxsgfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VX_VSLIDEUP"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vxsgfunct6"}]}]}]},{"Id":"vxsgfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vxsgfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VX_VSLIDEUP"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VX_VSLIDEDOWN"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VX_VRGATHER"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vxsgfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vxsgfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vxsgfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VX_VSLIDEUP"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSLIDEDOWN"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VRGATHER"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"visgfunct6"},[{"Id":"VI_VSLIDEUP"},{"Id":"VI_VSLIDEDOWN"},{"Id":"VI_VRGATHER"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"visgfunct6"}]}]}]},{"Id":"undefined_visgfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_visgfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VI_VSLIDEUP"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"visgfunct6"}]}]}]},{"Id":"visgfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"visgfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VI_VSLIDEUP"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VI_VSLIDEDOWN"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VI_VRGATHER"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"visgfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_visgfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_visgfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VI_VSLIDEUP"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSLIDEDOWN"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VRGATHER"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"mvvfunct6"},[{"Id":"MVV_VAADDU"},{"Id":"MVV_VAADD"},{"Id":"MVV_VASUBU"},{"Id":"MVV_VASUB"},{"Id":"MVV_VMUL"},{"Id":"MVV_VMULH"},{"Id":"MVV_VMULHU"},{"Id":"MVV_VMULHSU"},{"Id":"MVV_VDIVU"},{"Id":"MVV_VDIV"},{"Id":"MVV_VREMU"},{"Id":"MVV_VREM"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"mvvfunct6"}]}]}]},{"Id":"undefined_mvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_mvvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"MVV_VAADDU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[11]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"mvvfunct6"}]}]}]},{"Id":"mvvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mvvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"MVV_VAADDU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"MVV_VAADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"MVV_VASUBU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"MVV_VASUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"MVV_VMUL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"MVV_VMULH"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"MVV_VMULHU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"MVV_VMULHSU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"MVV_VDIVU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"MVV_VDIV"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"MVV_VREMU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"MVV_VREM"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"mvvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[11]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_mvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_mvvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVV_VAADDU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VAADD"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VASUBU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VASUB"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMUL"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMULH"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMULHU"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMULHSU"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VDIVU"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VDIV"}]},{"E_lit":[{"L_num":9}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREMU"}]},{"E_lit":[{"L_num":10}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREM"}]},{"E_lit":[{"L_num":11}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"mvvmafunct6"},[{"Id":"MVV_VMACC"},{"Id":"MVV_VNMSAC"},{"Id":"MVV_VMADD"},{"Id":"MVV_VNMSUB"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"mvvmafunct6"}]}]}]},{"Id":"undefined_mvvmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_mvvmafunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"MVV_VMACC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"mvvmafunct6"}]}]}]},{"Id":"mvvmafunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mvvmafunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"MVV_VMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"MVV_VNMSAC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"MVV_VMADD"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"MVV_VNMSUB"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"mvvmafunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_mvvmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_mvvmafunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVV_VMACC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VNMSAC"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMADD"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VNMSUB"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"rmvvfunct6"},[{"Id":"MVV_VREDSUM"},{"Id":"MVV_VREDAND"},{"Id":"MVV_VREDOR"},{"Id":"MVV_VREDXOR"},{"Id":"MVV_VREDMINU"},{"Id":"MVV_VREDMIN"},{"Id":"MVV_VREDMAXU"},{"Id":"MVV_VREDMAX"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"rmvvfunct6"}]}]}]},{"Id":"undefined_rmvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_rmvvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"MVV_VREDSUM"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"rmvvfunct6"}]}]}]},{"Id":"rmvvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rmvvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"MVV_VREDSUM"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"MVV_VREDAND"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"MVV_VREDOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"MVV_VREDXOR"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"MVV_VREDMINU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"MVV_VREDMIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"MVV_VREDMAXU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"MVV_VREDMAX"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"rmvvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_rmvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_rmvvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDSUM"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDAND"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDOR"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDXOR"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMINU"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMIN"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMAXU"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMAX"}]},{"E_lit":[{"L_num":7}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"rivvfunct6"},[{"Id":"IVV_VWREDSUMU"},{"Id":"IVV_VWREDSUM"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"rivvfunct6"}]}]}]},{"Id":"undefined_rivvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_rivvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"IVV_VWREDSUMU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"rivvfunct6"}]}]}]},{"Id":"rivvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rivvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"IVV_VWREDSUMU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"IVV_VWREDSUM"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"rivvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_rivvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_rivvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"IVV_VWREDSUMU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"IVV_VWREDSUM"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"rfvvfunct6"},[{"Id":"FVV_VFREDOSUM"},{"Id":"FVV_VFREDUSUM"},{"Id":"FVV_VFREDMAX"},{"Id":"FVV_VFREDMIN"},{"Id":"FVV_VFWREDOSUM"},{"Id":"FVV_VFWREDUSUM"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"rfvvfunct6"}]}]}]},{"Id":"undefined_rfvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_rfvvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FVV_VFREDOSUM"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"rfvvfunct6"}]}]}]},{"Id":"rfvvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rfvvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FVV_VFREDOSUM"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FVV_VFREDUSUM"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FVV_VFREDMAX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FVV_VFREDMIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"FVV_VFWREDOSUM"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FVV_VFWREDUSUM"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"rfvvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_rfvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_rfvvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDOSUM"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDUSUM"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDMAX"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDMIN"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFWREDOSUM"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFWREDUSUM"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"wmvvfunct6"},[{"Id":"WMVV_VWMACCU"},{"Id":"WMVV_VWMACC"},{"Id":"WMVV_VWMACCSU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"wmvvfunct6"}]}]}]},{"Id":"undefined_wmvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_wmvvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WMVV_VWMACCU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"wmvvfunct6"}]}]}]},{"Id":"wmvvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wmvvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WMVV_VWMACCU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"WMVV_VWMACC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WMVV_VWMACCSU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"wmvvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_wmvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_wmvvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WMVV_VWMACCU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVV_VWMACC"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVV_VWMACCSU"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"mvxfunct6"},[{"Id":"MVX_VAADDU"},{"Id":"MVX_VAADD"},{"Id":"MVX_VASUBU"},{"Id":"MVX_VASUB"},{"Id":"MVX_VSLIDE1UP"},{"Id":"MVX_VSLIDE1DOWN"},{"Id":"MVX_VMUL"},{"Id":"MVX_VMULH"},{"Id":"MVX_VMULHU"},{"Id":"MVX_VMULHSU"},{"Id":"MVX_VDIVU"},{"Id":"MVX_VDIV"},{"Id":"MVX_VREMU"},{"Id":"MVX_VREM"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"mvxfunct6"}]}]}]},{"Id":"undefined_mvxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_mvxfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"MVX_VAADDU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[13]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"mvxfunct6"}]}]}]},{"Id":"mvxfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mvxfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"MVX_VAADDU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"MVX_VAADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"MVX_VASUBU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"MVX_VASUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"MVX_VSLIDE1UP"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"MVX_VSLIDE1DOWN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"MVX_VMUL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"MVX_VMULH"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"MVX_VMULHU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"MVX_VMULHSU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"MVX_VDIVU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_id":[{"Id":"MVX_VDIV"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_id":[{"Id":"MVX_VREMU"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"MVX_VREM"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"mvxfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[13]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_mvxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_mvxfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVX_VAADDU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VAADD"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VASUBU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VASUB"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VSLIDE1UP"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VSLIDE1DOWN"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMUL"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMULH"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMULHU"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMULHSU"}]},{"E_lit":[{"L_num":9}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VDIVU"}]},{"E_lit":[{"L_num":10}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VDIV"}]},{"E_lit":[{"L_num":11}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VREMU"}]},{"E_lit":[{"L_num":12}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VREM"}]},{"E_lit":[{"L_num":13}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"mvxmafunct6"},[{"Id":"MVX_VMACC"},{"Id":"MVX_VNMSAC"},{"Id":"MVX_VMADD"},{"Id":"MVX_VNMSUB"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"mvxmafunct6"}]}]}]},{"Id":"undefined_mvxmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_mvxmafunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"MVX_VMACC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"mvxmafunct6"}]}]}]},{"Id":"mvxmafunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mvxmafunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"MVX_VMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"MVX_VNMSAC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"MVX_VMADD"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"MVX_VNMSUB"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"mvxmafunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_mvxmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_mvxmafunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVX_VMACC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VNMSAC"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMADD"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VNMSUB"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"wmvxfunct6"},[{"Id":"WMVX_VWMACCU"},{"Id":"WMVX_VWMACC"},{"Id":"WMVX_VWMACCUS"},{"Id":"WMVX_VWMACCSU"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"wmvxfunct6"}]}]}]},{"Id":"undefined_wmvxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_wmvxfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WMVX_VWMACCU"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"wmvxfunct6"}]}]}]},{"Id":"wmvxfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wmvxfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WMVX_VWMACCU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"WMVX_VWMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"WMVX_VWMACCUS"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WMVX_VWMACCSU"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"wmvxfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_wmvxfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_wmvxfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACCU"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACC"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACCUS"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACCSU"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"maskfunct3"},[{"Id":"VV_VMERGE"},{"Id":"VI_VMERGE"},{"Id":"VX_VMERGE"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"maskfunct3"}]}]}]},{"Id":"undefined_maskfunct3"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_maskfunct3"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VV_VMERGE"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"maskfunct3"}]}]}]},{"Id":"maskfunct3_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"maskfunct3_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VV_VMERGE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VI_VMERGE"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VX_VMERGE"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"maskfunct3"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_maskfunct3"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_maskfunct3"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VV_VMERGE"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VMERGE"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMERGE"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vlewidth"},[{"Id":"VLE8"},{"Id":"VLE16"},{"Id":"VLE32"},{"Id":"VLE64"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vlewidth"}]}]}]},{"Id":"undefined_vlewidth"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vlewidth"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VLE8"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vlewidth"}]}]}]},{"Id":"vlewidth_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vlewidth_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VLE8"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VLE16"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VLE32"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VLE64"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vlewidth"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vlewidth"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vlewidth"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VLE8"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VLE16"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VLE32"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VLE64"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fvvfunct6"},[{"Id":"FVV_VADD"},{"Id":"FVV_VSUB"},{"Id":"FVV_VMIN"},{"Id":"FVV_VMAX"},{"Id":"FVV_VSGNJ"},{"Id":"FVV_VSGNJN"},{"Id":"FVV_VSGNJX"},{"Id":"FVV_VDIV"},{"Id":"FVV_VMUL"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fvvfunct6"}]}]}]},{"Id":"undefined_fvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fvvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FVV_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[8]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fvvfunct6"}]}]}]},{"Id":"fvvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fvvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FVV_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FVV_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FVV_VMIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FVV_VMAX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"FVV_VSGNJ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"FVV_VSGNJN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"FVV_VSGNJX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"FVV_VDIV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FVV_VMUL"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fvvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fvvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMIN"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMAX"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSGNJ"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSGNJN"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSGNJX"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VDIV"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMUL"}]},{"E_lit":[{"L_num":8}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fvvmafunct6"},[{"Id":"FVV_VMADD"},{"Id":"FVV_VNMADD"},{"Id":"FVV_VMSUB"},{"Id":"FVV_VNMSUB"},{"Id":"FVV_VMACC"},{"Id":"FVV_VNMACC"},{"Id":"FVV_VMSAC"},{"Id":"FVV_VNMSAC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fvvmafunct6"}]}]}]},{"Id":"undefined_fvvmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fvvmafunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FVV_VMADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fvvmafunct6"}]}]}]},{"Id":"fvvmafunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fvvmafunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FVV_VMADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FVV_VNMADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FVV_VMSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FVV_VNMSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"FVV_VMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"FVV_VNMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"FVV_VMSAC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FVV_VNMSAC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fvvmafunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fvvmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fvvmafunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VMADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMADD"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMSUB"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMSUB"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMACC"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMACC"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMSAC"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMSAC"}]},{"E_lit":[{"L_num":7}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fwvvfunct6"},[{"Id":"FWVV_VADD"},{"Id":"FWVV_VSUB"},{"Id":"FWVV_VMUL"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fwvvfunct6"}]}]}]},{"Id":"undefined_fwvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fwvvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FWVV_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fwvvfunct6"}]}]}]},{"Id":"fwvvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fwvvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FWVV_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FWVV_VSUB"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FWVV_VMUL"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fwvvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fwvvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fwvvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVV_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VMUL"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fwvvmafunct6"},[{"Id":"FWVV_VMACC"},{"Id":"FWVV_VNMACC"},{"Id":"FWVV_VMSAC"},{"Id":"FWVV_VNMSAC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fwvvmafunct6"}]}]}]},{"Id":"undefined_fwvvmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fwvvmafunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FWVV_VMACC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fwvvmafunct6"}]}]}]},{"Id":"fwvvmafunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fwvvmafunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FWVV_VMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FWVV_VNMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FWVV_VMSAC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FWVV_VNMSAC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fwvvmafunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fwvvmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fwvvmafunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVV_VMACC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VNMACC"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VMSAC"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VNMSAC"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fwvfunct6"},[{"Id":"FWV_VADD"},{"Id":"FWV_VSUB"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fwvfunct6"}]}]}]},{"Id":"undefined_fwvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fwvfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FWV_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fwvfunct6"}]}]}]},{"Id":"fwvfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fwvfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FWV_VADD"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FWV_VSUB"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fwvfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fwvfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fwvfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWV_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_VSUB"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fvvmfunct6"},[{"Id":"FVVM_VMFEQ"},{"Id":"FVVM_VMFLE"},{"Id":"FVVM_VMFLT"},{"Id":"FVVM_VMFNE"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fvvmfunct6"}]}]}]},{"Id":"undefined_fvvmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fvvmfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FVVM_VMFEQ"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fvvmfunct6"}]}]}]},{"Id":"fvvmfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fvvmfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FVVM_VMFEQ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FVVM_VMFLE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FVVM_VMFLT"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FVVM_VMFNE"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fvvmfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fvvmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fvvmfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFEQ"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFLE"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFLT"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFNE"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vfunary0"},[{"Id":"FV_CVT_XU_F"},{"Id":"FV_CVT_X_F"},{"Id":"FV_CVT_F_XU"},{"Id":"FV_CVT_F_X"},{"Id":"FV_CVT_RTZ_XU_F"},{"Id":"FV_CVT_RTZ_X_F"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vfunary0"}]}]}]},{"Id":"undefined_vfunary0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vfunary0"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FV_CVT_XU_F"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vfunary0"}]}]}]},{"Id":"vfunary0_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vfunary0_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FV_CVT_XU_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FV_CVT_X_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FV_CVT_F_XU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FV_CVT_F_X"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"FV_CVT_RTZ_XU_F"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FV_CVT_RTZ_X_F"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vfunary0"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vfunary0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vfunary0"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_XU_F"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_X_F"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_F_XU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_F_X"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_RTZ_XU_F"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_RTZ_X_F"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vfwunary0"},[{"Id":"FWV_CVT_XU_F"},{"Id":"FWV_CVT_X_F"},{"Id":"FWV_CVT_F_XU"},{"Id":"FWV_CVT_F_X"},{"Id":"FWV_CVT_F_F"},{"Id":"FWV_CVT_RTZ_XU_F"},{"Id":"FWV_CVT_RTZ_X_F"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vfwunary0"}]}]}]},{"Id":"undefined_vfwunary0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vfwunary0"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FWV_CVT_XU_F"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vfwunary0"}]}]}]},{"Id":"vfwunary0_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vfwunary0_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FWV_CVT_XU_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FWV_CVT_X_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FWV_CVT_F_XU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FWV_CVT_F_X"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"FWV_CVT_F_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"FWV_CVT_RTZ_XU_F"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FWV_CVT_RTZ_X_F"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vfwunary0"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vfwunary0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vfwunary0"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_XU_F"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_X_F"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_F_XU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_F_X"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_F_F"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_RTZ_XU_F"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_RTZ_X_F"}]},{"E_lit":[{"L_num":6}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vfnunary0"},[{"Id":"FNV_CVT_XU_F"},{"Id":"FNV_CVT_X_F"},{"Id":"FNV_CVT_F_XU"},{"Id":"FNV_CVT_F_X"},{"Id":"FNV_CVT_F_F"},{"Id":"FNV_CVT_ROD_F_F"},{"Id":"FNV_CVT_RTZ_XU_F"},{"Id":"FNV_CVT_RTZ_X_F"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vfnunary0"}]}]}]},{"Id":"undefined_vfnunary0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vfnunary0"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FNV_CVT_XU_F"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vfnunary0"}]}]}]},{"Id":"vfnunary0_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vfnunary0_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FNV_CVT_XU_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FNV_CVT_X_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FNV_CVT_F_XU"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"FNV_CVT_F_X"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"FNV_CVT_F_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"FNV_CVT_ROD_F_F"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"FNV_CVT_RTZ_XU_F"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FNV_CVT_RTZ_X_F"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vfnunary0"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vfnunary0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vfnunary0"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_XU_F"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_X_F"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_F_XU"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_F_X"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_F_F"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_ROD_F_F"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_RTZ_XU_F"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_RTZ_X_F"}]},{"E_lit":[{"L_num":7}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vfunary1"},[{"Id":"FVV_VSQRT"},{"Id":"FVV_VRSQRT7"},{"Id":"FVV_VREC7"},{"Id":"FVV_VCLASS"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vfunary1"}]}]}]},{"Id":"undefined_vfunary1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vfunary1"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FVV_VSQRT"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vfunary1"}]}]}]},{"Id":"vfunary1_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vfunary1_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FVV_VSQRT"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FVV_VRSQRT7"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FVV_VREC7"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FVV_VCLASS"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vfunary1"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vfunary1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vfunary1"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VSQRT"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VRSQRT7"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VREC7"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VCLASS"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fvffunct6"},[{"Id":"VF_VADD"},{"Id":"VF_VSUB"},{"Id":"VF_VMIN"},{"Id":"VF_VMAX"},{"Id":"VF_VSGNJ"},{"Id":"VF_VSGNJN"},{"Id":"VF_VSGNJX"},{"Id":"VF_VDIV"},{"Id":"VF_VRDIV"},{"Id":"VF_VMUL"},{"Id":"VF_VRSUB"},{"Id":"VF_VSLIDE1UP"},{"Id":"VF_VSLIDE1DOWN"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fvffunct6"}]}]}]},{"Id":"undefined_fvffunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fvffunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VF_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[12]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fvffunct6"}]}]}]},{"Id":"fvffunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fvffunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VF_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VF_VSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VF_VMIN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VF_VMAX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VF_VSGNJ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"VF_VSGNJN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"VF_VSGNJX"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"VF_VDIV"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"VF_VRDIV"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"VF_VMUL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"VF_VRSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_id":[{"Id":"VF_VSLIDE1UP"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VF_VSLIDE1DOWN"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fvffunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[12]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fvffunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fvffunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VF_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMIN"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMAX"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSGNJ"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSGNJN"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSGNJX"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VDIV"}]},{"E_lit":[{"L_num":7}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VRDIV"}]},{"E_lit":[{"L_num":8}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMUL"}]},{"E_lit":[{"L_num":9}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VRSUB"}]},{"E_lit":[{"L_num":10}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSLIDE1UP"}]},{"E_lit":[{"L_num":11}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSLIDE1DOWN"}]},{"E_lit":[{"L_num":12}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fvfmafunct6"},[{"Id":"VF_VMADD"},{"Id":"VF_VNMADD"},{"Id":"VF_VMSUB"},{"Id":"VF_VNMSUB"},{"Id":"VF_VMACC"},{"Id":"VF_VNMACC"},{"Id":"VF_VMSAC"},{"Id":"VF_VNMSAC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fvfmafunct6"}]}]}]},{"Id":"undefined_fvfmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fvfmafunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VF_VMADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fvfmafunct6"}]}]}]},{"Id":"fvfmafunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fvfmafunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VF_VMADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VF_VNMADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VF_VMSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VF_VNMSUB"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VF_VMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"VF_VNMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"VF_VMSAC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VF_VNMSAC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fvfmafunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[7]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fvfmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fvfmafunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VF_VMADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMADD"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMSUB"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMSUB"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMACC"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMACC"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMSAC"}]},{"E_lit":[{"L_num":6}]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMSAC"}]},{"E_lit":[{"L_num":7}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fwvffunct6"},[{"Id":"FWVF_VADD"},{"Id":"FWVF_VSUB"},{"Id":"FWVF_VMUL"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fwvffunct6"}]}]}]},{"Id":"undefined_fwvffunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fwvffunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FWVF_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fwvffunct6"}]}]}]},{"Id":"fwvffunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fwvffunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FWVF_VADD"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FWVF_VSUB"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FWVF_VMUL"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fwvffunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fwvffunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fwvffunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVF_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VSUB"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VMUL"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fwvfmafunct6"},[{"Id":"FWVF_VMACC"},{"Id":"FWVF_VNMACC"},{"Id":"FWVF_VMSAC"},{"Id":"FWVF_VNMSAC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fwvfmafunct6"}]}]}]},{"Id":"undefined_fwvfmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fwvfmafunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FWVF_VMACC"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fwvfmafunct6"}]}]}]},{"Id":"fwvfmafunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fwvfmafunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FWVF_VMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"FWVF_VNMACC"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"FWVF_VMSAC"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FWVF_VNMSAC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fwvfmafunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fwvfmafunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fwvfmafunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVF_VMACC"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VNMACC"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VMSAC"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VNMSAC"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fwffunct6"},[{"Id":"FWF_VADD"},{"Id":"FWF_VSUB"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fwffunct6"}]}]}]},{"Id":"undefined_fwffunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fwffunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"FWF_VADD"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fwffunct6"}]}]}]},{"Id":"fwffunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fwffunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"FWF_VADD"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"FWF_VSUB"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fwffunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fwffunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fwffunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWF_VADD"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"FWF_VSUB"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"fvfmfunct6"},[{"Id":"VFM_VMFEQ"},{"Id":"VFM_VMFLE"},{"Id":"VFM_VMFLT"},{"Id":"VFM_VMFNE"},{"Id":"VFM_VMFGT"},{"Id":"VFM_VMFGE"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"fvfmfunct6"}]}]}]},{"Id":"undefined_fvfmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_fvfmfunct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VFM_VMFEQ"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"fvfmfunct6"}]}]}]},{"Id":"fvfmfunct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fvfmfunct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VFM_VMFEQ"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"VFM_VMFLE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"VFM_VMFLT"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"VFM_VMFNE"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"VFM_VMFGT"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VFM_VMFGE"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fvfmfunct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[5]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_fvfmfunct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_fvfmfunct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFEQ"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFLE"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFLT"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFNE"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFGT"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFGE"}]},{"E_lit":[{"L_num":5}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"vmlsop"},[{"Id":"VLM"},{"Id":"VSM"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"vmlsop"}]}]}]},{"Id":"undefined_vmlsop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_vmlsop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"VLM"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"vmlsop"}]}]}]},{"Id":"vmlsop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vmlsop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"VLM"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"VSM"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vmlsop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_vmlsop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_vmlsop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"VLM"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"VSM"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vreg_type.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_regs.sail"]},{"DEF_type":{"TD_variant":[{"Id":"vregidx"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Id":"Vregidx"}]}],true]}},{"DEF_type":{"TD_variant":[{"Id":"vregno"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Id":"Vregno"}]}],true]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_id":[{"Id":"vregno"}]}]}]},{"Id":"vregidx_to_vregno"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vregidx_to_vregno"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_app":[{"Id":"Vregidx"},[{"P_id":[{"Id":"b"}]}]]}]},{"E_app":[{"Id":"Vregno"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"b"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregno"}]}],{"Typ_id":[{"Id":"vregidx"}]}]}]},{"Id":"vregno_to_vregidx"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vregno_to_vregidx"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"vregno"}]},{"P_app":[{"Id":"Vregno"},[{"P_id":[{"Id":"b"}]}]]}]},{"E_app":[{"Id":"Vregidx"},[{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"b"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_id":[{"Id":"vregidx"}]}]}]},{"Id":"vregidx_offset"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vregidx_offset"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_app":[{"Id":"Vregidx"},[{"P_id":[{"Id":"r"}]}]]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"o"}]}]}]]},{"E_app":[{"Id":"Vregidx"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"o"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}],{"Typ_id":[{"Id":"vregidx"}]}]}]},{"Id":"vregidx_offset_range"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vregidx_offset_range"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_app":[{"Id":"Vregidx"},[{"P_id":[{"Id":"r"}]}]]}]},{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"P_id":[{"Id":"o"}]}]}]]},{"E_app":[{"Id":"Vregidx"},[{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"o"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Operator":"+"},[{"Id":"vregidx_offset"},{"Id":"vregidx_offset_range"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"vregidx_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vregidx_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_app":[{"Id":"Vregidx"},[{"P_id":[{"Id":"b"}]}]]}]},{"E_id":[{"Id":"b"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_vreg"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vreg"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Vregidx"},[{"MP_id":[{"Id":"r"}]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"r"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_exp":[{"Nexp_constant":[7]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"vreg_write_callback"},{"pure":true,"bindings":[["c","vreg_write_callback"]]}]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vreg_write_callback"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"zvreg"}]}]},{"E_app":[{"Id":"Vregidx"},[{"E_lit":[{"L_bin":"00000"}]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr0"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr1"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr2"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr3"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr4"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr5"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr6"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr7"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr8"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr9"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr10"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr11"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr12"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr13"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr14"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr15"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr16"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr17"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr18"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr19"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr20"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr21"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr22"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr23"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr24"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr25"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr26"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr27"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr28"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr29"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr30"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"vr31"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vreg_name_raw"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vreg_name_raw"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v17"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v18"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v19"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v20"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v21"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v22"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v23"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v24"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v25"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11010"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v26"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v27"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v28"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11101"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v29"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11110"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v30"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"v31"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vreg_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vreg_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"Vregidx"},[{"MP_id":[{"Id":"i"}]}]]}]},{"MPat_pat":[{"MP_app":[{"Id":"vreg_name_raw"},[{"MP_id":[{"Id":"i"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregno"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_exp":[{"Nexp_constant":[7]}]}]}]]}]}]},{"Id":"rV"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rV"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"vregno"}]},{"P_app":[{"Id":"Vregno"},[{"P_id":[{"Id":"r"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"vr0"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"vr1"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"vr2"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"vr3"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"vr4"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"vr5"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_id":[{"Id":"vr6"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_id":[{"Id":"vr7"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_id":[{"Id":"vr8"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_id":[{"Id":"vr9"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_id":[{"Id":"vr10"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_id":[{"Id":"vr11"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_id":[{"Id":"vr12"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_id":[{"Id":"vr13"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_id":[{"Id":"vr14"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_id":[{"Id":"vr15"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_id":[{"Id":"vr16"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_id":[{"Id":"vr17"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_id":[{"Id":"vr18"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":19}]},{"E_id":[{"Id":"vr19"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":20}]},{"E_id":[{"Id":"vr20"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":21}]},{"E_id":[{"Id":"vr21"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":22}]},{"E_id":[{"Id":"vr22"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":23}]},{"E_id":[{"Id":"vr23"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":24}]},{"E_id":[{"Id":"vr24"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":25}]},{"E_id":[{"Id":"vr25"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":26}]},{"E_id":[{"Id":"vr26"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":27}]},{"E_id":[{"Id":"vr27"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":28}]},{"E_id":[{"Id":"vr28"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":29}]},{"E_id":[{"Id":"vr29"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":30}]},{"E_id":[{"Id":"vr30"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"vr31"}]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"dirty_v_context"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dirty_v_context"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_regs.sail:138.33-138.34"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]}]},{"E_app":[{"Id":"extStatus_to_bits"},[{"E_id":[{"Id":"Dirty"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_app":[{"Id":"long_csr_write_callback"},[{"E_lit":[{"L_string":"mstatus"}]},{"E_lit":[{"L_string":"mstatush"}]},{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregno"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_exp":[{"Nexp_constant":[7]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wV"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wV"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregno"}]},{"P_app":[{"Id":"Vregno"},[{"P_id":[{"Id":"r"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"vlenbits"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_assign":[{"LE_id":[{"Id":"vr0"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_assign":[{"LE_id":[{"Id":"vr1"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_assign":[{"LE_id":[{"Id":"vr2"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_assign":[{"LE_id":[{"Id":"vr3"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_assign":[{"LE_id":[{"Id":"vr4"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_assign":[{"LE_id":[{"Id":"vr5"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":6}]},{"E_assign":[{"LE_id":[{"Id":"vr6"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":7}]},{"E_assign":[{"LE_id":[{"Id":"vr7"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_assign":[{"LE_id":[{"Id":"vr8"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":9}]},{"E_assign":[{"LE_id":[{"Id":"vr9"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":10}]},{"E_assign":[{"LE_id":[{"Id":"vr10"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":11}]},{"E_assign":[{"LE_id":[{"Id":"vr11"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":12}]},{"E_assign":[{"LE_id":[{"Id":"vr12"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":13}]},{"E_assign":[{"LE_id":[{"Id":"vr13"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":14}]},{"E_assign":[{"LE_id":[{"Id":"vr14"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":15}]},{"E_assign":[{"LE_id":[{"Id":"vr15"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_assign":[{"LE_id":[{"Id":"vr16"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":17}]},{"E_assign":[{"LE_id":[{"Id":"vr17"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":18}]},{"E_assign":[{"LE_id":[{"Id":"vr18"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":19}]},{"E_assign":[{"LE_id":[{"Id":"vr19"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":20}]},{"E_assign":[{"LE_id":[{"Id":"vr20"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":21}]},{"E_assign":[{"LE_id":[{"Id":"vr21"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":22}]},{"E_assign":[{"LE_id":[{"Id":"vr22"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":23}]},{"E_assign":[{"LE_id":[{"Id":"vr23"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":24}]},{"E_assign":[{"LE_id":[{"Id":"vr24"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":25}]},{"E_assign":[{"LE_id":[{"Id":"vr25"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":26}]},{"E_assign":[{"LE_id":[{"Id":"vr26"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":27}]},{"E_assign":[{"LE_id":[{"Id":"vr27"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":28}]},{"E_assign":[{"LE_id":[{"Id":"vr28"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":29}]},{"E_assign":[{"LE_id":[{"Id":"vr29"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":30}]},{"E_assign":[{"LE_id":[{"Id":"vr30"}]},{"E_id":[{"Id":"v"}]}]}]},{"Pat_exp":[{"P_wild":[]},{"E_assign":[{"LE_id":[{"Id":"vr31"}]},{"E_id":[{"Id":"v"}]}]}]}]]},{"E_app":[{"Id":"dirty_v_context"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"vreg_write_callback"},[{"E_app":[{"Id":"vregno_to_vregidx"},[{"E_app":[{"Id":"Vregno"},[{"E_id":[{"Id":"r"}]}]]}]]},{"E_id":[{"Id":"v"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_exp":[{"Nexp_constant":[7]}]}]}]]}]}]},{"Id":"rV_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rV_bits"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rV"},[{"E_app":[{"Id":"vregidx_to_vregno"},[{"E_id":[{"Id":"i"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_exp":[{"Nexp_constant":[7]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"wV_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wV_bits"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vlenbits"}]},{"P_id":[{"Id":"data"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"wV"},[{"E_app":[{"Id":"vregidx_to_vregno"},[{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"data"}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Id":"V"},[{"Id":"rV_bits"},{"Id":"wV_bits"},{"Id":"rV"},{"Id":"wV"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"init_vregs"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_vregs"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"vlenbits"}]},{"P_id":[{"Id":"zero_vreg"}]}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"pow2"},[{"E_lit":[{"L_num":7}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"vr0"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr1"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr2"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr3"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr4"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr5"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr6"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr7"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr8"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr9"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr10"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr11"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr12"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr13"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr14"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr15"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr16"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr17"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr18"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr19"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr20"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr21"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr22"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr23"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr24"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr25"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr26"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr27"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr28"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr29"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr30"}]},{"E_id":[{"Id":"zero_vreg"}]}]},{"E_assign":[{"LE_id":[{"Id":"vr31"}]},{"E_id":[{"Id":"zero_vreg"}]}]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"vstart"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"vl"},null]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"VLENB"}]}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_lit":[{"L_num":8}]}]]}]]}]}},{"DEF_type":{"TD_record":[{"Id":"Vtype"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_id":[{"Id":"xlen"}]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"undefined_Vtype"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Vtype"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"Mk_Vtype"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Vtype"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_Vtype_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vtype_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"_update_Vtype_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vtype_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Vtype_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vtype"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vtype_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vtype_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vtype_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Vtype_bits"},{"Id":"_set_Vtype_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[9]}]}]}]]}]}]},{"Id":"_get_Vtype_reserved"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vtype_reserved"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[9]}]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"_update_Vtype_reserved"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vtype_reserved"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_reserved"},[{"Id":"_update_Vtype_reserved"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vtype"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[9]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vtype_reserved"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vtype_reserved"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vtype_reserved"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_reserved"},[{"Id":"_get_Vtype_reserved"},{"Id":"_set_Vtype_reserved"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"_get_Vtype_vill"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vtype_vill"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"_update_Vtype_vill"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vtype_vill"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_vill"},[{"Id":"_update_Vtype_vill"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vtype"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_sum":[{"Nexp_minus":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]},{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]},{"Nexp_constant":[1]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vtype_vill"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vtype_vill"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vtype_vill"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_vill"},[{"Id":"_get_Vtype_vill"},{"Id":"_set_Vtype_vill"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"_get_Vtype_vlmul"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vtype_vlmul"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"_update_Vtype_vlmul"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vtype_vlmul"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_vlmul"},[{"Id":"_update_Vtype_vlmul"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vtype"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vtype_vlmul"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vtype_vlmul"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vtype_vlmul"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_vlmul"},[{"Id":"_get_Vtype_vlmul"},{"Id":"_set_Vtype_vlmul"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Vtype_vma"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vtype_vma"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"_update_Vtype_vma"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vtype_vma"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_vma"},[{"Id":"_update_Vtype_vma"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vtype"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vtype_vma"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vtype_vma"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vtype_vma"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_vma"},[{"Id":"_get_Vtype_vma"},{"Id":"_set_Vtype_vma"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"_get_Vtype_vsew"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vtype_vsew"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"_update_Vtype_vsew"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vtype_vsew"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_vsew"},[{"Id":"_update_Vtype_vsew"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vtype"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vtype_vsew"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vtype_vsew"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vtype_vsew"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_vsew"},[{"Id":"_get_Vtype_vsew"},{"Id":"_set_Vtype_vsew"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Vtype_vta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vtype_vta"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vtype"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Vtype"}]}]}]},{"Id":"_update_Vtype_vta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vtype_vta"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_vta"},[{"Id":"_update_Vtype_vta"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vtype"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vtype_vta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vtype_vta"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vtype_vta"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_vta"},[{"Id":"_get_Vtype_vta"},{"Id":"_set_Vtype_vta"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Vtype"}]},{"Id":"vtype"},null]}},{"DEF_type":{"TD_abbrev":[{"Id":"SEW_pow"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"LMUL_pow"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_constant":[3]}]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_invalid_sew_pow"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_invalid_sew_pow"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"v"}]}]},{"E_app":[{"Operator":">_u"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_bin":"011"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_invalid_lmul_pow"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_invalid_lmul_pow"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"v"}]}]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_bin":"100"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"get_sew_pow"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_sew_pow"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sew_pow"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"_get_Vtype_vsew"},[{"E_id":[{"Id":"vtype"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"sew_pow"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_string":"Reserved SEW stored in vtype register. This should be impossible."}]}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"sew_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"sew_bitsize"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"is_sew_bitsize"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]}]]},{"A_bool":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"get_sew"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_sew"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"get_sew_bytes"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_sew_bytes"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_constant":[3]}]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"get_lmul_pow"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_lmul_pow"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"lmul_pow"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"_get_Vtype_vlmul"},[{"E_id":[{"Id":"vtype"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"lmul_pow"}]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":4}]}]]}]]},{"E_lit":[{"L_string":"Reserved LMUL stored in vtype register. This should be impossible."}]}]},{"E_id":[{"Id":"lmul_pow"}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"agtype"},[{"Id":"UNDISTURBED"},{"Id":"AGNOSTIC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"agtype"}]}]}]},{"Id":"undefined_agtype"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_agtype"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"UNDISTURBED"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"agtype"}]}]}]},{"Id":"agtype_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"agtype_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"UNDISTURBED"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AGNOSTIC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"agtype"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_agtype"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_agtype"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"agtype"}]}]}]},{"Id":"decode_agtype"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"decode_agtype"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"ag"}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"ag"}]},[{"Pat_exp":[{"P_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"UNDISTURBED"}]}]},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_wild":[]}]},{"E_id":[{"Id":"AGNOSTIC"}]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"agtype"}]}]}]},{"Id":"get_vtype_vma"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_vtype_vma"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"decode_agtype"},[{"E_app":[{"Id":"_get_Vtype_vma"},[{"E_id":[{"Id":"vtype"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"agtype"}]}]}]},{"Id":"get_vtype_vta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_vtype_vta"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"decode_agtype"},[{"E_app":[{"Id":"_get_Vtype_vta"},[{"E_id":[{"Id":"vtype"}]}]]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"Vcsr"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Vcsr"}]}]}]},{"Id":"undefined_Vcsr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Vcsr"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"Vcsr"}]}]}]},{"Id":"Mk_Vcsr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_Vcsr"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vcsr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"_get_Vcsr_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vcsr_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vcsr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"Vcsr"}]}]}]},{"Id":"_update_Vcsr_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vcsr_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_Vcsr_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vcsr"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vcsr_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vcsr_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vcsr_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_Vcsr_bits"},{"Id":"_set_Vcsr_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vcsr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_Vcsr_vxrm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vcsr_vxrm"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vcsr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"Vcsr"}]}]}]},{"Id":"_update_Vcsr_vxrm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vcsr_vxrm"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_vxrm"},[{"Id":"_update_Vcsr_vxrm"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vcsr"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vcsr_vxrm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vcsr_vxrm"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vcsr_vxrm"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_vxrm"},[{"Id":"_get_Vcsr_vxrm"},{"Id":"_set_Vcsr_vxrm"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vcsr"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_Vcsr_vxsat"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_Vcsr_vxsat"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Vcsr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"Vcsr"}]}]}]},{"Id":"_update_Vcsr_vxsat"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_Vcsr_vxsat"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_vxsat"},[{"Id":"_update_Vcsr_vxsat"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"Vcsr"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_Vcsr_vxsat"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_Vcsr_vxsat"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_Vcsr_vxsat"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_vxsat"},[{"Id":"_get_Vcsr_vxsat"},{"Id":"_set_Vcsr_vxsat"}]]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"Vcsr"}]},{"Id":"vcsr"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"set_vstart"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"set_vstart"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"value"}]}]},{"E_block":[[{"E_app":[{"Id":"dirty_v_context"},[{"E_lit":["L_unit"]}]]},{"E_assign":[{"LE_id":[{"Id":"vstart"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"vlen_exp"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"vstart"}]},{"E_id":[{"Id":"vstart"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_write_vcsr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_write_vcsr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_id":[{"Id":"vxrm_val"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vxsat_val"}]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]}]},{"E_id":[{"Id":"vxrm_val"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"vxsat_val"}]}]},{"E_app":[{"Id":"dirty_v_context"},[{"E_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_regs.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_control.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"get_num_elem"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_num_elem"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"LMUL_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_reg"}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"LMUL_pow_reg"}]}]]},{"E_id":[{"Id":"vlen"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:34.21-34.22"}]}]},{"E_id":[{"Id":"num_elem"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]}]}]},{"Id":"read_single_vreg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_single_vreg"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"vrid"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_id":[{"Id":"vlen"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:42.31-42.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"bv"}]},{"E_app":[{"Id":"rV_bits"},[{"E_id":[{"Id":"vrid"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"start_index"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"bv"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"start_index"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"start_index"}]}]]}]}]]}]}]]}]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_single_vreg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_single_vreg"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"vrid"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"r"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"pow2"},[{"E_lit":[{"L_num":7}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"vlen"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:60.20-60.21"}]}]},{"E_for":[{"Id":"i"},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":1}]},"Ord_dec",{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"r"}]},{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"r"}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"r"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"pow2"},[{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]}]},{"E_app":[{"Id":"wV_bits"},[{"E_id":[{"Id":"vrid"}]},{"E_id":[{"Id":"r"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]}]}]},{"Id":"read_vreg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_vreg"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"LMUL_pow"}]},{"P_id":[{"Id":"vrid"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vrid_val"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"vregidx_bits"},[{"E_id":[{"Id":"vrid"}]}]]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_reg"}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"vrid_val"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"LMUL_pow_reg"}]}]]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assert":[{"E_lit":["L_false"]},{"E_lit":[{"L_string":"invalid register group: vrid overflow the largest number"}]}]}]]},{"E_if":[{"E_app":[{"Id":"neq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"vrid_val"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"LMUL_pow_reg"}]}]]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_block":[[{"E_assert":[{"E_lit":["L_false"]},{"E_lit":[{"L_string":"invalid register group: vrid is not a multiple of EMUL"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_id":[{"Id":"vlen"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"result"}]},{"E_app":[{"Id":"read_single_vreg"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"vrid"}]}]]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"num_elem_single"}]},{"TP_var":[{"Var":"'num_elem_single"}]}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:90.34-90.35"}]}]},{"E_for":[{"Id":"i_lmul"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"LMUL_pow_reg"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r_start_i"}]}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i_lmul"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r_end_i"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"r_start_i"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vrid_lmul"}]}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vrid"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"i_lmul"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'num_elem_single"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"single_result"}]}]},{"E_app":[{"Id":"read_single_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"vrid_lmul"}]}]]}]},{"E_block":[[{"E_for":[{"Id":"r_i"},{"E_id":[{"Id":"r_start_i"}]},{"E_id":[{"Id":"r_end_i"}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"s_i"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"r_i"}]},{"E_id":[{"Id":"r_start_i"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"r_i"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"r_i"}]},{"E_id":[{"Id":"num_elem"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:98.42-98.43"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"s_i"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"s_i"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:99.50-99.51"}]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"r_i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"single_result"}]},{"E_id":[{"Id":"s_i"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"read_single_element"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_single_element"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"EEW"}]},{"P_id":[{"Id":"index"}]},{"P_id":[{"Id":"vrid"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"vlen"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:112.20-112.21"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_per_reg"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"reg_in_group"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"reg_in_group"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:119.25-119.26"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vrid"}]},{"E_app":[{"Id":"vregidx_offset_range"},[{"E_id":[{"Id":"vrid"}]},{"E_id":[{"Id":"reg_in_group"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rV_bits"},[{"E_id":[{"Id":"vrid"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"EEW"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"offset"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_vreg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_vreg"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"LMUL_pow"}]},{"P_id":[{"Id":"vrid"}]},{"P_id":[{"Id":"vec"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_reg"}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"num_elem_single"}]},{"TP_var":[{"Var":"'num_elem_single"}]}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:136.30-136.31"}]}]},{"E_for":[{"Id":"i_lmul"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"LMUL_pow_reg"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'num_elem_single"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"single_vec"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vrid_lmul"}]}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vrid"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"i_lmul"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r_start_i"}]}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i_lmul"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r_end_i"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"r_start_i"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_for":[{"Id":"r_i"},{"E_id":[{"Id":"r_start_i"}]},{"E_id":[{"Id":"r_end_i"}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"s_i"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"r_i"}]},{"E_id":[{"Id":"r_start_i"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"r_i"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"r_i"}]},{"E_id":[{"Id":"num_elem"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:144.38-144.39"}]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"s_i"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"s_i"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:145.46-145.47"}]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"single_vec"}]},{"E_id":[{"Id":"s_i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vec"}]},{"E_id":[{"Id":"r_i"}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"write_single_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem_single"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"vrid_lmul"}]},{"E_id":[{"Id":"single_vec"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_single_element"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_single_element"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"EEW"}]},{"P_id":[{"Id":"index"}]},{"P_id":[{"Id":"vrid"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"vlen"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:156.20-156.21"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_per_reg"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"reg_in_group"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"reg_in_group"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:163.25-163.26"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vrid"}]},{"E_app":[{"Id":"vregidx_offset_range"},[{"E_id":[{"Id":"vrid"}]},{"E_id":[{"Id":"reg_in_group"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wV_bits"},[{"E_id":[{"Id":"vrid"}]},{"E_app":[{"Id":"update_subrange_bits"},[{"E_app":[{"Id":"rV_bits"},[{"E_id":[{"Id":"vrid"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"EEW"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"value"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"read_vmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_vmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vrid"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:177.25-177.26"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vreg_val"}]},{"E_app":[{"Id":"rV_bits"},[{"E_id":[{"Id":"vrid"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"vm"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_block":[[{"E_return":[{"E_id":[{"Id":"result"}]}]}]]},{"E_lit":["L_unit"]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vreg_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"read_vmask_carry"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_vmask_carry"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vrid"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:196.25-196.26"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vreg_val"}]},{"E_app":[{"Id":"rV_bits"},[{"E_id":[{"Id":"vrid"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"vm"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_block":[[{"E_return":[{"E_id":[{"Id":"result"}]}]}]]},{"E_lit":["L_unit"]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vreg_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_vmask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_vmask"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"vrid"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lt_int"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_control.sail:215.40-215.41"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vreg_val"}]},{"E_app":[{"Id":"rV_bits"},[{"E_id":[{"Id":"vrid"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"vlenbits"}]},{"Id":"result"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_for":[{"Id":"i"},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"vlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vreg_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_app":[{"Id":"wV_bits"},[{"E_id":[{"Id":"vrid"}]},{"E_id":[{"Id":"result"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_control.sail"]},{"DEF_pragma":["file_start","extensions/K/types_kext.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"xt2"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"xt2"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]},{"E_if":[{"E_app":[{"Id":"bit_to_bool"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]}]]}]]},{"E_lit":[{"L_hex":"1B"}]},{"E_lit":[{"L_hex":"00"}]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"xt3"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"xt3"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"x"}]},{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"x"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"gfmul"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"gfmul"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"x"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"y"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"xor_vec"},[{"E_if":[{"E_app":[{"Id":"bit_to_bool"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"y"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_hex":"00"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_if":[{"E_app":[{"Id":"bit_to_bool"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"y"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"x"}]}]]},{"E_lit":[{"L_hex":"00"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_if":[{"E_app":[{"Id":"bit_to_bool"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"y"}]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_app":[{"Id":"xt2"},[{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"x"}]}]]}]]},{"E_lit":[{"L_hex":"00"}]}]},{"E_if":[{"E_app":[{"Id":"bit_to_bool"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"y"}]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_app":[{"Id":"xt2"},[{"E_app":[{"Id":"xt2"},[{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"x"}]}]]}]]}]]},{"E_lit":[{"L_hex":"00"}]}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_mixcolumn_byte_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_mixcolumn_byte_fwd"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"so"}]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"so"}]},{"E_lit":[{"L_hex":"3"}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"so"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"so"}]},{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"so"}]},{"E_lit":[{"L_hex":"2"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_mixcolumn_byte_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_mixcolumn_byte_inv"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"so"}]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"so"}]},{"E_lit":[{"L_hex":"B"}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"so"}]},{"E_lit":[{"L_hex":"D"}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"so"}]},{"E_lit":[{"L_hex":"9"}]}]]},{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"so"}]},{"E_lit":[{"L_hex":"E"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_mixcolumn_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_mixcolumn_fwd"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s0"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s1"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s2"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s3"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b0"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"s0"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"xt3"},[{"E_id":[{"Id":"s1"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s2"}]},{"E_id":[{"Id":"s3"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b1"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s0"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"s1"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"xt3"},[{"E_id":[{"Id":"s2"}]}]]},{"E_id":[{"Id":"s3"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b2"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s0"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s1"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"s2"}]}]]},{"E_app":[{"Id":"xt3"},[{"E_id":[{"Id":"s3"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b3"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"xt3"},[{"E_id":[{"Id":"s0"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s1"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s2"}]},{"E_app":[{"Id":"xt2"},[{"E_id":[{"Id":"s3"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"b3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"b2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"b1"}]},{"E_id":[{"Id":"b0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_mixcolumn_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_mixcolumn_inv"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s0"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s1"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s2"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"s3"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b0"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s0"}]},{"E_lit":[{"L_hex":"E"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_hex":"B"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_hex":"D"}]}]]},{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s3"}]},{"E_lit":[{"L_hex":"9"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b1"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s0"}]},{"E_lit":[{"L_hex":"9"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_hex":"E"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_hex":"B"}]}]]},{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s3"}]},{"E_lit":[{"L_hex":"D"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b2"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s0"}]},{"E_lit":[{"L_hex":"D"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_hex":"9"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_hex":"E"}]}]]},{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s3"}]},{"E_lit":[{"L_hex":"B"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"b3"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s0"}]},{"E_lit":[{"L_hex":"B"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_hex":"D"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_hex":"9"}]}]]},{"E_app":[{"Id":"gfmul"},[{"E_id":[{"Id":"s3"}]},{"E_lit":[{"L_hex":"E"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"b3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"b2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"b1"}]},{"E_id":[{"Id":"b0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_decode_rcon"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_decode_rcon"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"r"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Operator":"<_u"},[{"E_id":[{"Id":"r"}]},{"E_lit":[{"L_hex":"A"}]}]]},{"E_lit":[{"L_string":"extensions/K/types_kext.sail:77.18-77.19"}]}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_lit":[{"L_hex":"0"}]},{"E_lit":[{"L_hex":"00000001"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"1"}]},{"E_lit":[{"L_hex":"00000002"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"2"}]},{"E_lit":[{"L_hex":"00000004"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"3"}]},{"E_lit":[{"L_hex":"00000008"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"4"}]},{"E_lit":[{"L_hex":"00000010"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"5"}]},{"E_lit":[{"L_hex":"00000020"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"6"}]},{"E_lit":[{"L_hex":"00000040"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"7"}]},{"E_lit":[{"L_hex":"00000080"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"8"}]},{"E_lit":[{"L_hex":"0000001B"}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"9"}]},{"E_lit":[{"L_hex":"00000036"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/K/types_kext.sail"}]},{"E_lit":[{"L_num":89}]},{"E_lit":[{"L_string":"Unexpected AES r"}]}]]}]}]]}]]}]}]}]]}},{"DEF_pragma":["anchor","sm4_sbox_table_doc"]},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[256]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]},{"P_id":[{"Id":"sm4_sbox_table"}]}]},{"E_vector":[[{"E_lit":[{"L_hex":"D6"}]},{"E_lit":[{"L_hex":"90"}]},{"E_lit":[{"L_hex":"E9"}]},{"E_lit":[{"L_hex":"FE"}]},{"E_lit":[{"L_hex":"CC"}]},{"E_lit":[{"L_hex":"E1"}]},{"E_lit":[{"L_hex":"3D"}]},{"E_lit":[{"L_hex":"B7"}]},{"E_lit":[{"L_hex":"16"}]},{"E_lit":[{"L_hex":"B6"}]},{"E_lit":[{"L_hex":"14"}]},{"E_lit":[{"L_hex":"C2"}]},{"E_lit":[{"L_hex":"28"}]},{"E_lit":[{"L_hex":"FB"}]},{"E_lit":[{"L_hex":"2C"}]},{"E_lit":[{"L_hex":"05"}]},{"E_lit":[{"L_hex":"2B"}]},{"E_lit":[{"L_hex":"67"}]},{"E_lit":[{"L_hex":"9A"}]},{"E_lit":[{"L_hex":"76"}]},{"E_lit":[{"L_hex":"2A"}]},{"E_lit":[{"L_hex":"BE"}]},{"E_lit":[{"L_hex":"04"}]},{"E_lit":[{"L_hex":"C3"}]},{"E_lit":[{"L_hex":"AA"}]},{"E_lit":[{"L_hex":"44"}]},{"E_lit":[{"L_hex":"13"}]},{"E_lit":[{"L_hex":"26"}]},{"E_lit":[{"L_hex":"49"}]},{"E_lit":[{"L_hex":"86"}]},{"E_lit":[{"L_hex":"06"}]},{"E_lit":[{"L_hex":"99"}]},{"E_lit":[{"L_hex":"9C"}]},{"E_lit":[{"L_hex":"42"}]},{"E_lit":[{"L_hex":"50"}]},{"E_lit":[{"L_hex":"F4"}]},{"E_lit":[{"L_hex":"91"}]},{"E_lit":[{"L_hex":"EF"}]},{"E_lit":[{"L_hex":"98"}]},{"E_lit":[{"L_hex":"7A"}]},{"E_lit":[{"L_hex":"33"}]},{"E_lit":[{"L_hex":"54"}]},{"E_lit":[{"L_hex":"0B"}]},{"E_lit":[{"L_hex":"43"}]},{"E_lit":[{"L_hex":"ED"}]},{"E_lit":[{"L_hex":"CF"}]},{"E_lit":[{"L_hex":"AC"}]},{"E_lit":[{"L_hex":"62"}]},{"E_lit":[{"L_hex":"E4"}]},{"E_lit":[{"L_hex":"B3"}]},{"E_lit":[{"L_hex":"1C"}]},{"E_lit":[{"L_hex":"A9"}]},{"E_lit":[{"L_hex":"C9"}]},{"E_lit":[{"L_hex":"08"}]},{"E_lit":[{"L_hex":"E8"}]},{"E_lit":[{"L_hex":"95"}]},{"E_lit":[{"L_hex":"80"}]},{"E_lit":[{"L_hex":"DF"}]},{"E_lit":[{"L_hex":"94"}]},{"E_lit":[{"L_hex":"FA"}]},{"E_lit":[{"L_hex":"75"}]},{"E_lit":[{"L_hex":"8F"}]},{"E_lit":[{"L_hex":"3F"}]},{"E_lit":[{"L_hex":"A6"}]},{"E_lit":[{"L_hex":"47"}]},{"E_lit":[{"L_hex":"07"}]},{"E_lit":[{"L_hex":"A7"}]},{"E_lit":[{"L_hex":"FC"}]},{"E_lit":[{"L_hex":"F3"}]},{"E_lit":[{"L_hex":"73"}]},{"E_lit":[{"L_hex":"17"}]},{"E_lit":[{"L_hex":"BA"}]},{"E_lit":[{"L_hex":"83"}]},{"E_lit":[{"L_hex":"59"}]},{"E_lit":[{"L_hex":"3C"}]},{"E_lit":[{"L_hex":"19"}]},{"E_lit":[{"L_hex":"E6"}]},{"E_lit":[{"L_hex":"85"}]},{"E_lit":[{"L_hex":"4F"}]},{"E_lit":[{"L_hex":"A8"}]},{"E_lit":[{"L_hex":"68"}]},{"E_lit":[{"L_hex":"6B"}]},{"E_lit":[{"L_hex":"81"}]},{"E_lit":[{"L_hex":"B2"}]},{"E_lit":[{"L_hex":"71"}]},{"E_lit":[{"L_hex":"64"}]},{"E_lit":[{"L_hex":"DA"}]},{"E_lit":[{"L_hex":"8B"}]},{"E_lit":[{"L_hex":"F8"}]},{"E_lit":[{"L_hex":"EB"}]},{"E_lit":[{"L_hex":"0F"}]},{"E_lit":[{"L_hex":"4B"}]},{"E_lit":[{"L_hex":"70"}]},{"E_lit":[{"L_hex":"56"}]},{"E_lit":[{"L_hex":"9D"}]},{"E_lit":[{"L_hex":"35"}]},{"E_lit":[{"L_hex":"1E"}]},{"E_lit":[{"L_hex":"24"}]},{"E_lit":[{"L_hex":"0E"}]},{"E_lit":[{"L_hex":"5E"}]},{"E_lit":[{"L_hex":"63"}]},{"E_lit":[{"L_hex":"58"}]},{"E_lit":[{"L_hex":"D1"}]},{"E_lit":[{"L_hex":"A2"}]},{"E_lit":[{"L_hex":"25"}]},{"E_lit":[{"L_hex":"22"}]},{"E_lit":[{"L_hex":"7C"}]},{"E_lit":[{"L_hex":"3B"}]},{"E_lit":[{"L_hex":"01"}]},{"E_lit":[{"L_hex":"21"}]},{"E_lit":[{"L_hex":"78"}]},{"E_lit":[{"L_hex":"87"}]},{"E_lit":[{"L_hex":"D4"}]},{"E_lit":[{"L_hex":"00"}]},{"E_lit":[{"L_hex":"46"}]},{"E_lit":[{"L_hex":"57"}]},{"E_lit":[{"L_hex":"9F"}]},{"E_lit":[{"L_hex":"D3"}]},{"E_lit":[{"L_hex":"27"}]},{"E_lit":[{"L_hex":"52"}]},{"E_lit":[{"L_hex":"4C"}]},{"E_lit":[{"L_hex":"36"}]},{"E_lit":[{"L_hex":"02"}]},{"E_lit":[{"L_hex":"E7"}]},{"E_lit":[{"L_hex":"A0"}]},{"E_lit":[{"L_hex":"C4"}]},{"E_lit":[{"L_hex":"C8"}]},{"E_lit":[{"L_hex":"9E"}]},{"E_lit":[{"L_hex":"EA"}]},{"E_lit":[{"L_hex":"BF"}]},{"E_lit":[{"L_hex":"8A"}]},{"E_lit":[{"L_hex":"D2"}]},{"E_lit":[{"L_hex":"40"}]},{"E_lit":[{"L_hex":"C7"}]},{"E_lit":[{"L_hex":"38"}]},{"E_lit":[{"L_hex":"B5"}]},{"E_lit":[{"L_hex":"A3"}]},{"E_lit":[{"L_hex":"F7"}]},{"E_lit":[{"L_hex":"F2"}]},{"E_lit":[{"L_hex":"CE"}]},{"E_lit":[{"L_hex":"F9"}]},{"E_lit":[{"L_hex":"61"}]},{"E_lit":[{"L_hex":"15"}]},{"E_lit":[{"L_hex":"A1"}]},{"E_lit":[{"L_hex":"E0"}]},{"E_lit":[{"L_hex":"AE"}]},{"E_lit":[{"L_hex":"5D"}]},{"E_lit":[{"L_hex":"A4"}]},{"E_lit":[{"L_hex":"9B"}]},{"E_lit":[{"L_hex":"34"}]},{"E_lit":[{"L_hex":"1A"}]},{"E_lit":[{"L_hex":"55"}]},{"E_lit":[{"L_hex":"AD"}]},{"E_lit":[{"L_hex":"93"}]},{"E_lit":[{"L_hex":"32"}]},{"E_lit":[{"L_hex":"30"}]},{"E_lit":[{"L_hex":"F5"}]},{"E_lit":[{"L_hex":"8C"}]},{"E_lit":[{"L_hex":"B1"}]},{"E_lit":[{"L_hex":"E3"}]},{"E_lit":[{"L_hex":"1D"}]},{"E_lit":[{"L_hex":"F6"}]},{"E_lit":[{"L_hex":"E2"}]},{"E_lit":[{"L_hex":"2E"}]},{"E_lit":[{"L_hex":"82"}]},{"E_lit":[{"L_hex":"66"}]},{"E_lit":[{"L_hex":"CA"}]},{"E_lit":[{"L_hex":"60"}]},{"E_lit":[{"L_hex":"C0"}]},{"E_lit":[{"L_hex":"29"}]},{"E_lit":[{"L_hex":"23"}]},{"E_lit":[{"L_hex":"AB"}]},{"E_lit":[{"L_hex":"0D"}]},{"E_lit":[{"L_hex":"53"}]},{"E_lit":[{"L_hex":"4E"}]},{"E_lit":[{"L_hex":"6F"}]},{"E_lit":[{"L_hex":"D5"}]},{"E_lit":[{"L_hex":"DB"}]},{"E_lit":[{"L_hex":"37"}]},{"E_lit":[{"L_hex":"45"}]},{"E_lit":[{"L_hex":"DE"}]},{"E_lit":[{"L_hex":"FD"}]},{"E_lit":[{"L_hex":"8E"}]},{"E_lit":[{"L_hex":"2F"}]},{"E_lit":[{"L_hex":"03"}]},{"E_lit":[{"L_hex":"FF"}]},{"E_lit":[{"L_hex":"6A"}]},{"E_lit":[{"L_hex":"72"}]},{"E_lit":[{"L_hex":"6D"}]},{"E_lit":[{"L_hex":"6C"}]},{"E_lit":[{"L_hex":"5B"}]},{"E_lit":[{"L_hex":"51"}]},{"E_lit":[{"L_hex":"8D"}]},{"E_lit":[{"L_hex":"1B"}]},{"E_lit":[{"L_hex":"AF"}]},{"E_lit":[{"L_hex":"92"}]},{"E_lit":[{"L_hex":"BB"}]},{"E_lit":[{"L_hex":"DD"}]},{"E_lit":[{"L_hex":"BC"}]},{"E_lit":[{"L_hex":"7F"}]},{"E_lit":[{"L_hex":"11"}]},{"E_lit":[{"L_hex":"D9"}]},{"E_lit":[{"L_hex":"5C"}]},{"E_lit":[{"L_hex":"41"}]},{"E_lit":[{"L_hex":"1F"}]},{"E_lit":[{"L_hex":"10"}]},{"E_lit":[{"L_hex":"5A"}]},{"E_lit":[{"L_hex":"D8"}]},{"E_lit":[{"L_hex":"0A"}]},{"E_lit":[{"L_hex":"C1"}]},{"E_lit":[{"L_hex":"31"}]},{"E_lit":[{"L_hex":"88"}]},{"E_lit":[{"L_hex":"A5"}]},{"E_lit":[{"L_hex":"CD"}]},{"E_lit":[{"L_hex":"7B"}]},{"E_lit":[{"L_hex":"BD"}]},{"E_lit":[{"L_hex":"2D"}]},{"E_lit":[{"L_hex":"74"}]},{"E_lit":[{"L_hex":"D0"}]},{"E_lit":[{"L_hex":"12"}]},{"E_lit":[{"L_hex":"B8"}]},{"E_lit":[{"L_hex":"E5"}]},{"E_lit":[{"L_hex":"B4"}]},{"E_lit":[{"L_hex":"B0"}]},{"E_lit":[{"L_hex":"89"}]},{"E_lit":[{"L_hex":"69"}]},{"E_lit":[{"L_hex":"97"}]},{"E_lit":[{"L_hex":"4A"}]},{"E_lit":[{"L_hex":"0C"}]},{"E_lit":[{"L_hex":"96"}]},{"E_lit":[{"L_hex":"77"}]},{"E_lit":[{"L_hex":"7E"}]},{"E_lit":[{"L_hex":"65"}]},{"E_lit":[{"L_hex":"B9"}]},{"E_lit":[{"L_hex":"F1"}]},{"E_lit":[{"L_hex":"09"}]},{"E_lit":[{"L_hex":"C5"}]},{"E_lit":[{"L_hex":"6E"}]},{"E_lit":[{"L_hex":"C6"}]},{"E_lit":[{"L_hex":"84"}]},{"E_lit":[{"L_hex":"18"}]},{"E_lit":[{"L_hex":"F0"}]},{"E_lit":[{"L_hex":"7D"}]},{"E_lit":[{"L_hex":"EC"}]},{"E_lit":[{"L_hex":"3A"}]},{"E_lit":[{"L_hex":"DC"}]},{"E_lit":[{"L_hex":"4D"}]},{"E_lit":[{"L_hex":"20"}]},{"E_lit":[{"L_hex":"79"}]},{"E_lit":[{"L_hex":"EE"}]},{"E_lit":[{"L_hex":"5F"}]},{"E_lit":[{"L_hex":"3E"}]},{"E_lit":[{"L_hex":"D7"}]},{"E_lit":[{"L_hex":"CB"}]},{"E_lit":[{"L_hex":"39"}]},{"E_lit":[{"L_hex":"48"}]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[256]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]},{"P_id":[{"Id":"aes_sbox_fwd_table"}]}]},{"E_vector":[[{"E_lit":[{"L_hex":"63"}]},{"E_lit":[{"L_hex":"7C"}]},{"E_lit":[{"L_hex":"77"}]},{"E_lit":[{"L_hex":"7B"}]},{"E_lit":[{"L_hex":"F2"}]},{"E_lit":[{"L_hex":"6B"}]},{"E_lit":[{"L_hex":"6F"}]},{"E_lit":[{"L_hex":"C5"}]},{"E_lit":[{"L_hex":"30"}]},{"E_lit":[{"L_hex":"01"}]},{"E_lit":[{"L_hex":"67"}]},{"E_lit":[{"L_hex":"2B"}]},{"E_lit":[{"L_hex":"FE"}]},{"E_lit":[{"L_hex":"D7"}]},{"E_lit":[{"L_hex":"AB"}]},{"E_lit":[{"L_hex":"76"}]},{"E_lit":[{"L_hex":"CA"}]},{"E_lit":[{"L_hex":"82"}]},{"E_lit":[{"L_hex":"C9"}]},{"E_lit":[{"L_hex":"7D"}]},{"E_lit":[{"L_hex":"FA"}]},{"E_lit":[{"L_hex":"59"}]},{"E_lit":[{"L_hex":"47"}]},{"E_lit":[{"L_hex":"F0"}]},{"E_lit":[{"L_hex":"AD"}]},{"E_lit":[{"L_hex":"D4"}]},{"E_lit":[{"L_hex":"A2"}]},{"E_lit":[{"L_hex":"AF"}]},{"E_lit":[{"L_hex":"9C"}]},{"E_lit":[{"L_hex":"A4"}]},{"E_lit":[{"L_hex":"72"}]},{"E_lit":[{"L_hex":"C0"}]},{"E_lit":[{"L_hex":"B7"}]},{"E_lit":[{"L_hex":"FD"}]},{"E_lit":[{"L_hex":"93"}]},{"E_lit":[{"L_hex":"26"}]},{"E_lit":[{"L_hex":"36"}]},{"E_lit":[{"L_hex":"3F"}]},{"E_lit":[{"L_hex":"F7"}]},{"E_lit":[{"L_hex":"CC"}]},{"E_lit":[{"L_hex":"34"}]},{"E_lit":[{"L_hex":"A5"}]},{"E_lit":[{"L_hex":"E5"}]},{"E_lit":[{"L_hex":"F1"}]},{"E_lit":[{"L_hex":"71"}]},{"E_lit":[{"L_hex":"D8"}]},{"E_lit":[{"L_hex":"31"}]},{"E_lit":[{"L_hex":"15"}]},{"E_lit":[{"L_hex":"04"}]},{"E_lit":[{"L_hex":"C7"}]},{"E_lit":[{"L_hex":"23"}]},{"E_lit":[{"L_hex":"C3"}]},{"E_lit":[{"L_hex":"18"}]},{"E_lit":[{"L_hex":"96"}]},{"E_lit":[{"L_hex":"05"}]},{"E_lit":[{"L_hex":"9A"}]},{"E_lit":[{"L_hex":"07"}]},{"E_lit":[{"L_hex":"12"}]},{"E_lit":[{"L_hex":"80"}]},{"E_lit":[{"L_hex":"E2"}]},{"E_lit":[{"L_hex":"EB"}]},{"E_lit":[{"L_hex":"27"}]},{"E_lit":[{"L_hex":"B2"}]},{"E_lit":[{"L_hex":"75"}]},{"E_lit":[{"L_hex":"09"}]},{"E_lit":[{"L_hex":"83"}]},{"E_lit":[{"L_hex":"2C"}]},{"E_lit":[{"L_hex":"1A"}]},{"E_lit":[{"L_hex":"1B"}]},{"E_lit":[{"L_hex":"6E"}]},{"E_lit":[{"L_hex":"5A"}]},{"E_lit":[{"L_hex":"A0"}]},{"E_lit":[{"L_hex":"52"}]},{"E_lit":[{"L_hex":"3B"}]},{"E_lit":[{"L_hex":"D6"}]},{"E_lit":[{"L_hex":"B3"}]},{"E_lit":[{"L_hex":"29"}]},{"E_lit":[{"L_hex":"E3"}]},{"E_lit":[{"L_hex":"2F"}]},{"E_lit":[{"L_hex":"84"}]},{"E_lit":[{"L_hex":"53"}]},{"E_lit":[{"L_hex":"D1"}]},{"E_lit":[{"L_hex":"00"}]},{"E_lit":[{"L_hex":"ED"}]},{"E_lit":[{"L_hex":"20"}]},{"E_lit":[{"L_hex":"FC"}]},{"E_lit":[{"L_hex":"B1"}]},{"E_lit":[{"L_hex":"5B"}]},{"E_lit":[{"L_hex":"6A"}]},{"E_lit":[{"L_hex":"CB"}]},{"E_lit":[{"L_hex":"BE"}]},{"E_lit":[{"L_hex":"39"}]},{"E_lit":[{"L_hex":"4A"}]},{"E_lit":[{"L_hex":"4C"}]},{"E_lit":[{"L_hex":"58"}]},{"E_lit":[{"L_hex":"CF"}]},{"E_lit":[{"L_hex":"D0"}]},{"E_lit":[{"L_hex":"EF"}]},{"E_lit":[{"L_hex":"AA"}]},{"E_lit":[{"L_hex":"FB"}]},{"E_lit":[{"L_hex":"43"}]},{"E_lit":[{"L_hex":"4D"}]},{"E_lit":[{"L_hex":"33"}]},{"E_lit":[{"L_hex":"85"}]},{"E_lit":[{"L_hex":"45"}]},{"E_lit":[{"L_hex":"F9"}]},{"E_lit":[{"L_hex":"02"}]},{"E_lit":[{"L_hex":"7F"}]},{"E_lit":[{"L_hex":"50"}]},{"E_lit":[{"L_hex":"3C"}]},{"E_lit":[{"L_hex":"9F"}]},{"E_lit":[{"L_hex":"A8"}]},{"E_lit":[{"L_hex":"51"}]},{"E_lit":[{"L_hex":"A3"}]},{"E_lit":[{"L_hex":"40"}]},{"E_lit":[{"L_hex":"8F"}]},{"E_lit":[{"L_hex":"92"}]},{"E_lit":[{"L_hex":"9D"}]},{"E_lit":[{"L_hex":"38"}]},{"E_lit":[{"L_hex":"F5"}]},{"E_lit":[{"L_hex":"BC"}]},{"E_lit":[{"L_hex":"B6"}]},{"E_lit":[{"L_hex":"DA"}]},{"E_lit":[{"L_hex":"21"}]},{"E_lit":[{"L_hex":"10"}]},{"E_lit":[{"L_hex":"FF"}]},{"E_lit":[{"L_hex":"F3"}]},{"E_lit":[{"L_hex":"D2"}]},{"E_lit":[{"L_hex":"CD"}]},{"E_lit":[{"L_hex":"0C"}]},{"E_lit":[{"L_hex":"13"}]},{"E_lit":[{"L_hex":"EC"}]},{"E_lit":[{"L_hex":"5F"}]},{"E_lit":[{"L_hex":"97"}]},{"E_lit":[{"L_hex":"44"}]},{"E_lit":[{"L_hex":"17"}]},{"E_lit":[{"L_hex":"C4"}]},{"E_lit":[{"L_hex":"A7"}]},{"E_lit":[{"L_hex":"7E"}]},{"E_lit":[{"L_hex":"3D"}]},{"E_lit":[{"L_hex":"64"}]},{"E_lit":[{"L_hex":"5D"}]},{"E_lit":[{"L_hex":"19"}]},{"E_lit":[{"L_hex":"73"}]},{"E_lit":[{"L_hex":"60"}]},{"E_lit":[{"L_hex":"81"}]},{"E_lit":[{"L_hex":"4F"}]},{"E_lit":[{"L_hex":"DC"}]},{"E_lit":[{"L_hex":"22"}]},{"E_lit":[{"L_hex":"2A"}]},{"E_lit":[{"L_hex":"90"}]},{"E_lit":[{"L_hex":"88"}]},{"E_lit":[{"L_hex":"46"}]},{"E_lit":[{"L_hex":"EE"}]},{"E_lit":[{"L_hex":"B8"}]},{"E_lit":[{"L_hex":"14"}]},{"E_lit":[{"L_hex":"DE"}]},{"E_lit":[{"L_hex":"5E"}]},{"E_lit":[{"L_hex":"0B"}]},{"E_lit":[{"L_hex":"DB"}]},{"E_lit":[{"L_hex":"E0"}]},{"E_lit":[{"L_hex":"32"}]},{"E_lit":[{"L_hex":"3A"}]},{"E_lit":[{"L_hex":"0A"}]},{"E_lit":[{"L_hex":"49"}]},{"E_lit":[{"L_hex":"06"}]},{"E_lit":[{"L_hex":"24"}]},{"E_lit":[{"L_hex":"5C"}]},{"E_lit":[{"L_hex":"C2"}]},{"E_lit":[{"L_hex":"D3"}]},{"E_lit":[{"L_hex":"AC"}]},{"E_lit":[{"L_hex":"62"}]},{"E_lit":[{"L_hex":"91"}]},{"E_lit":[{"L_hex":"95"}]},{"E_lit":[{"L_hex":"E4"}]},{"E_lit":[{"L_hex":"79"}]},{"E_lit":[{"L_hex":"E7"}]},{"E_lit":[{"L_hex":"C8"}]},{"E_lit":[{"L_hex":"37"}]},{"E_lit":[{"L_hex":"6D"}]},{"E_lit":[{"L_hex":"8D"}]},{"E_lit":[{"L_hex":"D5"}]},{"E_lit":[{"L_hex":"4E"}]},{"E_lit":[{"L_hex":"A9"}]},{"E_lit":[{"L_hex":"6C"}]},{"E_lit":[{"L_hex":"56"}]},{"E_lit":[{"L_hex":"F4"}]},{"E_lit":[{"L_hex":"EA"}]},{"E_lit":[{"L_hex":"65"}]},{"E_lit":[{"L_hex":"7A"}]},{"E_lit":[{"L_hex":"AE"}]},{"E_lit":[{"L_hex":"08"}]},{"E_lit":[{"L_hex":"BA"}]},{"E_lit":[{"L_hex":"78"}]},{"E_lit":[{"L_hex":"25"}]},{"E_lit":[{"L_hex":"2E"}]},{"E_lit":[{"L_hex":"1C"}]},{"E_lit":[{"L_hex":"A6"}]},{"E_lit":[{"L_hex":"B4"}]},{"E_lit":[{"L_hex":"C6"}]},{"E_lit":[{"L_hex":"E8"}]},{"E_lit":[{"L_hex":"DD"}]},{"E_lit":[{"L_hex":"74"}]},{"E_lit":[{"L_hex":"1F"}]},{"E_lit":[{"L_hex":"4B"}]},{"E_lit":[{"L_hex":"BD"}]},{"E_lit":[{"L_hex":"8B"}]},{"E_lit":[{"L_hex":"8A"}]},{"E_lit":[{"L_hex":"70"}]},{"E_lit":[{"L_hex":"3E"}]},{"E_lit":[{"L_hex":"B5"}]},{"E_lit":[{"L_hex":"66"}]},{"E_lit":[{"L_hex":"48"}]},{"E_lit":[{"L_hex":"03"}]},{"E_lit":[{"L_hex":"F6"}]},{"E_lit":[{"L_hex":"0E"}]},{"E_lit":[{"L_hex":"61"}]},{"E_lit":[{"L_hex":"35"}]},{"E_lit":[{"L_hex":"57"}]},{"E_lit":[{"L_hex":"B9"}]},{"E_lit":[{"L_hex":"86"}]},{"E_lit":[{"L_hex":"C1"}]},{"E_lit":[{"L_hex":"1D"}]},{"E_lit":[{"L_hex":"9E"}]},{"E_lit":[{"L_hex":"E1"}]},{"E_lit":[{"L_hex":"F8"}]},{"E_lit":[{"L_hex":"98"}]},{"E_lit":[{"L_hex":"11"}]},{"E_lit":[{"L_hex":"69"}]},{"E_lit":[{"L_hex":"D9"}]},{"E_lit":[{"L_hex":"8E"}]},{"E_lit":[{"L_hex":"94"}]},{"E_lit":[{"L_hex":"9B"}]},{"E_lit":[{"L_hex":"1E"}]},{"E_lit":[{"L_hex":"87"}]},{"E_lit":[{"L_hex":"E9"}]},{"E_lit":[{"L_hex":"CE"}]},{"E_lit":[{"L_hex":"55"}]},{"E_lit":[{"L_hex":"28"}]},{"E_lit":[{"L_hex":"DF"}]},{"E_lit":[{"L_hex":"8C"}]},{"E_lit":[{"L_hex":"A1"}]},{"E_lit":[{"L_hex":"89"}]},{"E_lit":[{"L_hex":"0D"}]},{"E_lit":[{"L_hex":"BF"}]},{"E_lit":[{"L_hex":"E6"}]},{"E_lit":[{"L_hex":"42"}]},{"E_lit":[{"L_hex":"68"}]},{"E_lit":[{"L_hex":"41"}]},{"E_lit":[{"L_hex":"99"}]},{"E_lit":[{"L_hex":"2D"}]},{"E_lit":[{"L_hex":"0F"}]},{"E_lit":[{"L_hex":"B0"}]},{"E_lit":[{"L_hex":"54"}]},{"E_lit":[{"L_hex":"BB"}]},{"E_lit":[{"L_hex":"16"}]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[256]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]},{"P_id":[{"Id":"aes_sbox_inv_table"}]}]},{"E_vector":[[{"E_lit":[{"L_hex":"52"}]},{"E_lit":[{"L_hex":"09"}]},{"E_lit":[{"L_hex":"6A"}]},{"E_lit":[{"L_hex":"D5"}]},{"E_lit":[{"L_hex":"30"}]},{"E_lit":[{"L_hex":"36"}]},{"E_lit":[{"L_hex":"A5"}]},{"E_lit":[{"L_hex":"38"}]},{"E_lit":[{"L_hex":"BF"}]},{"E_lit":[{"L_hex":"40"}]},{"E_lit":[{"L_hex":"A3"}]},{"E_lit":[{"L_hex":"9E"}]},{"E_lit":[{"L_hex":"81"}]},{"E_lit":[{"L_hex":"F3"}]},{"E_lit":[{"L_hex":"D7"}]},{"E_lit":[{"L_hex":"FB"}]},{"E_lit":[{"L_hex":"7C"}]},{"E_lit":[{"L_hex":"E3"}]},{"E_lit":[{"L_hex":"39"}]},{"E_lit":[{"L_hex":"82"}]},{"E_lit":[{"L_hex":"9B"}]},{"E_lit":[{"L_hex":"2F"}]},{"E_lit":[{"L_hex":"FF"}]},{"E_lit":[{"L_hex":"87"}]},{"E_lit":[{"L_hex":"34"}]},{"E_lit":[{"L_hex":"8E"}]},{"E_lit":[{"L_hex":"43"}]},{"E_lit":[{"L_hex":"44"}]},{"E_lit":[{"L_hex":"C4"}]},{"E_lit":[{"L_hex":"DE"}]},{"E_lit":[{"L_hex":"E9"}]},{"E_lit":[{"L_hex":"CB"}]},{"E_lit":[{"L_hex":"54"}]},{"E_lit":[{"L_hex":"7B"}]},{"E_lit":[{"L_hex":"94"}]},{"E_lit":[{"L_hex":"32"}]},{"E_lit":[{"L_hex":"A6"}]},{"E_lit":[{"L_hex":"C2"}]},{"E_lit":[{"L_hex":"23"}]},{"E_lit":[{"L_hex":"3D"}]},{"E_lit":[{"L_hex":"EE"}]},{"E_lit":[{"L_hex":"4C"}]},{"E_lit":[{"L_hex":"95"}]},{"E_lit":[{"L_hex":"0B"}]},{"E_lit":[{"L_hex":"42"}]},{"E_lit":[{"L_hex":"FA"}]},{"E_lit":[{"L_hex":"C3"}]},{"E_lit":[{"L_hex":"4E"}]},{"E_lit":[{"L_hex":"08"}]},{"E_lit":[{"L_hex":"2E"}]},{"E_lit":[{"L_hex":"A1"}]},{"E_lit":[{"L_hex":"66"}]},{"E_lit":[{"L_hex":"28"}]},{"E_lit":[{"L_hex":"D9"}]},{"E_lit":[{"L_hex":"24"}]},{"E_lit":[{"L_hex":"B2"}]},{"E_lit":[{"L_hex":"76"}]},{"E_lit":[{"L_hex":"5B"}]},{"E_lit":[{"L_hex":"A2"}]},{"E_lit":[{"L_hex":"49"}]},{"E_lit":[{"L_hex":"6D"}]},{"E_lit":[{"L_hex":"8B"}]},{"E_lit":[{"L_hex":"D1"}]},{"E_lit":[{"L_hex":"25"}]},{"E_lit":[{"L_hex":"72"}]},{"E_lit":[{"L_hex":"F8"}]},{"E_lit":[{"L_hex":"F6"}]},{"E_lit":[{"L_hex":"64"}]},{"E_lit":[{"L_hex":"86"}]},{"E_lit":[{"L_hex":"68"}]},{"E_lit":[{"L_hex":"98"}]},{"E_lit":[{"L_hex":"16"}]},{"E_lit":[{"L_hex":"D4"}]},{"E_lit":[{"L_hex":"A4"}]},{"E_lit":[{"L_hex":"5C"}]},{"E_lit":[{"L_hex":"CC"}]},{"E_lit":[{"L_hex":"5D"}]},{"E_lit":[{"L_hex":"65"}]},{"E_lit":[{"L_hex":"B6"}]},{"E_lit":[{"L_hex":"92"}]},{"E_lit":[{"L_hex":"6C"}]},{"E_lit":[{"L_hex":"70"}]},{"E_lit":[{"L_hex":"48"}]},{"E_lit":[{"L_hex":"50"}]},{"E_lit":[{"L_hex":"FD"}]},{"E_lit":[{"L_hex":"ED"}]},{"E_lit":[{"L_hex":"B9"}]},{"E_lit":[{"L_hex":"DA"}]},{"E_lit":[{"L_hex":"5E"}]},{"E_lit":[{"L_hex":"15"}]},{"E_lit":[{"L_hex":"46"}]},{"E_lit":[{"L_hex":"57"}]},{"E_lit":[{"L_hex":"A7"}]},{"E_lit":[{"L_hex":"8D"}]},{"E_lit":[{"L_hex":"9D"}]},{"E_lit":[{"L_hex":"84"}]},{"E_lit":[{"L_hex":"90"}]},{"E_lit":[{"L_hex":"D8"}]},{"E_lit":[{"L_hex":"AB"}]},{"E_lit":[{"L_hex":"00"}]},{"E_lit":[{"L_hex":"8C"}]},{"E_lit":[{"L_hex":"BC"}]},{"E_lit":[{"L_hex":"D3"}]},{"E_lit":[{"L_hex":"0A"}]},{"E_lit":[{"L_hex":"F7"}]},{"E_lit":[{"L_hex":"E4"}]},{"E_lit":[{"L_hex":"58"}]},{"E_lit":[{"L_hex":"05"}]},{"E_lit":[{"L_hex":"B8"}]},{"E_lit":[{"L_hex":"B3"}]},{"E_lit":[{"L_hex":"45"}]},{"E_lit":[{"L_hex":"06"}]},{"E_lit":[{"L_hex":"D0"}]},{"E_lit":[{"L_hex":"2C"}]},{"E_lit":[{"L_hex":"1E"}]},{"E_lit":[{"L_hex":"8F"}]},{"E_lit":[{"L_hex":"CA"}]},{"E_lit":[{"L_hex":"3F"}]},{"E_lit":[{"L_hex":"0F"}]},{"E_lit":[{"L_hex":"02"}]},{"E_lit":[{"L_hex":"C1"}]},{"E_lit":[{"L_hex":"AF"}]},{"E_lit":[{"L_hex":"BD"}]},{"E_lit":[{"L_hex":"03"}]},{"E_lit":[{"L_hex":"01"}]},{"E_lit":[{"L_hex":"13"}]},{"E_lit":[{"L_hex":"8A"}]},{"E_lit":[{"L_hex":"6B"}]},{"E_lit":[{"L_hex":"3A"}]},{"E_lit":[{"L_hex":"91"}]},{"E_lit":[{"L_hex":"11"}]},{"E_lit":[{"L_hex":"41"}]},{"E_lit":[{"L_hex":"4F"}]},{"E_lit":[{"L_hex":"67"}]},{"E_lit":[{"L_hex":"DC"}]},{"E_lit":[{"L_hex":"EA"}]},{"E_lit":[{"L_hex":"97"}]},{"E_lit":[{"L_hex":"F2"}]},{"E_lit":[{"L_hex":"CF"}]},{"E_lit":[{"L_hex":"CE"}]},{"E_lit":[{"L_hex":"F0"}]},{"E_lit":[{"L_hex":"B4"}]},{"E_lit":[{"L_hex":"E6"}]},{"E_lit":[{"L_hex":"73"}]},{"E_lit":[{"L_hex":"96"}]},{"E_lit":[{"L_hex":"AC"}]},{"E_lit":[{"L_hex":"74"}]},{"E_lit":[{"L_hex":"22"}]},{"E_lit":[{"L_hex":"E7"}]},{"E_lit":[{"L_hex":"AD"}]},{"E_lit":[{"L_hex":"35"}]},{"E_lit":[{"L_hex":"85"}]},{"E_lit":[{"L_hex":"E2"}]},{"E_lit":[{"L_hex":"F9"}]},{"E_lit":[{"L_hex":"37"}]},{"E_lit":[{"L_hex":"E8"}]},{"E_lit":[{"L_hex":"1C"}]},{"E_lit":[{"L_hex":"75"}]},{"E_lit":[{"L_hex":"DF"}]},{"E_lit":[{"L_hex":"6E"}]},{"E_lit":[{"L_hex":"47"}]},{"E_lit":[{"L_hex":"F1"}]},{"E_lit":[{"L_hex":"1A"}]},{"E_lit":[{"L_hex":"71"}]},{"E_lit":[{"L_hex":"1D"}]},{"E_lit":[{"L_hex":"29"}]},{"E_lit":[{"L_hex":"C5"}]},{"E_lit":[{"L_hex":"89"}]},{"E_lit":[{"L_hex":"6F"}]},{"E_lit":[{"L_hex":"B7"}]},{"E_lit":[{"L_hex":"62"}]},{"E_lit":[{"L_hex":"0E"}]},{"E_lit":[{"L_hex":"AA"}]},{"E_lit":[{"L_hex":"18"}]},{"E_lit":[{"L_hex":"BE"}]},{"E_lit":[{"L_hex":"1B"}]},{"E_lit":[{"L_hex":"FC"}]},{"E_lit":[{"L_hex":"56"}]},{"E_lit":[{"L_hex":"3E"}]},{"E_lit":[{"L_hex":"4B"}]},{"E_lit":[{"L_hex":"C6"}]},{"E_lit":[{"L_hex":"D2"}]},{"E_lit":[{"L_hex":"79"}]},{"E_lit":[{"L_hex":"20"}]},{"E_lit":[{"L_hex":"9A"}]},{"E_lit":[{"L_hex":"DB"}]},{"E_lit":[{"L_hex":"C0"}]},{"E_lit":[{"L_hex":"FE"}]},{"E_lit":[{"L_hex":"78"}]},{"E_lit":[{"L_hex":"CD"}]},{"E_lit":[{"L_hex":"5A"}]},{"E_lit":[{"L_hex":"F4"}]},{"E_lit":[{"L_hex":"1F"}]},{"E_lit":[{"L_hex":"DD"}]},{"E_lit":[{"L_hex":"A8"}]},{"E_lit":[{"L_hex":"33"}]},{"E_lit":[{"L_hex":"88"}]},{"E_lit":[{"L_hex":"07"}]},{"E_lit":[{"L_hex":"C7"}]},{"E_lit":[{"L_hex":"31"}]},{"E_lit":[{"L_hex":"B1"}]},{"E_lit":[{"L_hex":"12"}]},{"E_lit":[{"L_hex":"10"}]},{"E_lit":[{"L_hex":"59"}]},{"E_lit":[{"L_hex":"27"}]},{"E_lit":[{"L_hex":"80"}]},{"E_lit":[{"L_hex":"EC"}]},{"E_lit":[{"L_hex":"5F"}]},{"E_lit":[{"L_hex":"60"}]},{"E_lit":[{"L_hex":"51"}]},{"E_lit":[{"L_hex":"7F"}]},{"E_lit":[{"L_hex":"A9"}]},{"E_lit":[{"L_hex":"19"}]},{"E_lit":[{"L_hex":"B5"}]},{"E_lit":[{"L_hex":"4A"}]},{"E_lit":[{"L_hex":"0D"}]},{"E_lit":[{"L_hex":"2D"}]},{"E_lit":[{"L_hex":"E5"}]},{"E_lit":[{"L_hex":"7A"}]},{"E_lit":[{"L_hex":"9F"}]},{"E_lit":[{"L_hex":"93"}]},{"E_lit":[{"L_hex":"C9"}]},{"E_lit":[{"L_hex":"9C"}]},{"E_lit":[{"L_hex":"EF"}]},{"E_lit":[{"L_hex":"A0"}]},{"E_lit":[{"L_hex":"E0"}]},{"E_lit":[{"L_hex":"3B"}]},{"E_lit":[{"L_hex":"4D"}]},{"E_lit":[{"L_hex":"AE"}]},{"E_lit":[{"L_hex":"2A"}]},{"E_lit":[{"L_hex":"F5"}]},{"E_lit":[{"L_hex":"B0"}]},{"E_lit":[{"L_hex":"C8"}]},{"E_lit":[{"L_hex":"EB"}]},{"E_lit":[{"L_hex":"BB"}]},{"E_lit":[{"L_hex":"3C"}]},{"E_lit":[{"L_hex":"83"}]},{"E_lit":[{"L_hex":"53"}]},{"E_lit":[{"L_hex":"99"}]},{"E_lit":[{"L_hex":"61"}]},{"E_lit":[{"L_hex":"17"}]},{"E_lit":[{"L_hex":"2B"}]},{"E_lit":[{"L_hex":"04"}]},{"E_lit":[{"L_hex":"7E"}]},{"E_lit":[{"L_hex":"BA"}]},{"E_lit":[{"L_hex":"77"}]},{"E_lit":[{"L_hex":"D6"}]},{"E_lit":[{"L_hex":"26"}]},{"E_lit":[{"L_hex":"E1"}]},{"E_lit":[{"L_hex":"69"}]},{"E_lit":[{"L_hex":"14"}]},{"E_lit":[{"L_hex":"63"}]},{"E_lit":[{"L_hex":"55"}]},{"E_lit":[{"L_hex":"21"}]},{"E_lit":[{"L_hex":"0C"}]},{"E_lit":[{"L_hex":"7D"}]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[256]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"sbox_lookup"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sbox_lookup"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"x"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[256]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]},{"P_id":[{"Id":"table"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"table"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":255}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"x"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"aes_sbox_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_sbox_fwd"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"sbox_lookup"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"aes_sbox_fwd_table"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"aes_sbox_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_sbox_inv"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"sbox_lookup"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"aes_sbox_inv_table"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_subword_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_subword_fwd"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_subword_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_subword_inv"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"sm4_sbox"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sm4_sbox"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"sbox_lookup"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"sm4_sbox_table"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"aes_get_column"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_get_column"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"state"}]}]},{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"c"}]}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"state"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"c"}]}]]},{"E_lit":[{"L_num":31}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"c"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"aes_apply_fwd_sbox_to_each_byte"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_apply_fwd_sbox_to_each_byte"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":56}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":48}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":40}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":39}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"aes_apply_inv_sbox_to_each_byte"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_apply_inv_sbox_to_each_byte"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":56}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":48}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":40}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":39}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"aes_sbox_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_pragma":["anchor","aes_full_round_transformations_doc"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[7]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"getbyte"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"getbyte"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x"}]}]},{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[7]}]}]]},{"P_id":[{"Id":"i"}]}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"aes_rv64_shiftrows_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_rv64_shiftrows_fwd"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"rs2"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"rs1"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"aes_rv64_shiftrows_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_rv64_shiftrows_inv"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"rs2"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"rs1"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"getbyte"},[{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"aes_shift_rows_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_shift_rows_fwd"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic3"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":3}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic2"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic1"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic0"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc0"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc1"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc2"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc3"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc1"}]},{"E_id":[{"Id":"oc0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"aes_shift_rows_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_shift_rows_inv"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic3"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":3}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic2"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic1"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"ic0"}]}]},{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc0"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc1"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc2"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc3"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic0"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic1"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic2"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ic3"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc1"}]},{"E_id":[{"Id":"oc0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"aes_subbytes_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_subbytes_fwd"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc0"}]}]},{"E_app":[{"Id":"aes_subword_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc1"}]}]},{"E_app":[{"Id":"aes_subword_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc2"}]}]},{"E_app":[{"Id":"aes_subword_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc3"}]}]},{"E_app":[{"Id":"aes_subword_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc1"}]},{"E_id":[{"Id":"oc0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"aes_subbytes_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_subbytes_inv"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc0"}]}]},{"E_app":[{"Id":"aes_subword_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc1"}]}]},{"E_app":[{"Id":"aes_subword_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc2"}]}]},{"E_app":[{"Id":"aes_subword_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc3"}]}]},{"E_app":[{"Id":"aes_subword_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc1"}]},{"E_id":[{"Id":"oc0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"aes_mixcolumns_fwd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_mixcolumns_fwd"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc0"}]}]},{"E_app":[{"Id":"aes_mixcolumn_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc1"}]}]},{"E_app":[{"Id":"aes_mixcolumn_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc2"}]}]},{"E_app":[{"Id":"aes_mixcolumn_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc3"}]}]},{"E_app":[{"Id":"aes_mixcolumn_fwd"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc1"}]},{"E_id":[{"Id":"oc0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]}]}]},{"Id":"aes_mixcolumns_inv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"aes_mixcolumns_inv"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc0"}]}]},{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc1"}]}]},{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc2"}]}]},{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"oc3"}]}]},{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"aes_get_column"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc3"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc2"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"oc1"}]},{"E_id":[{"Id":"oc0"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/K/types_kext.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvk_utils.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"zvk_valid_reg_overlap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_valid_reg_overlap"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"rs"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"rd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"emul_pow"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"reg_group_size"}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"emul_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"emul_pow"}]}]]},{"E_lit":[{"L_num":1}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs_int"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"vregidx_bits"},[{"E_id":[{"Id":"rs"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_int"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"vregidx_bits"},[{"E_id":[{"Id":"rd"}]}]]}]]}]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"rs_int"}]},{"E_id":[{"Id":"reg_group_size"}]}]]},{"E_id":[{"Id":"rd_int"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"rd_int"}]},{"E_id":[{"Id":"reg_group_size"}]}]]},{"E_id":[{"Id":"rs_int"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"nat"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"zvk_check_encdec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_check_encdec"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"EGW"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"EGS"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_times_VLEN"}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"abs_int_atom"},[{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"LMUL_pow"}]}]]},{"E_id":[{"Id":"vlen"}]}]]}]}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_id":[{"Id":"EGS"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_id":[{"Id":"EGS"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_times_VLEN"}]},{"E_id":[{"Id":"EGW"}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"zvk_vsha2_funct6"},[{"Id":"ZVK_VSHA2CH_VV"},{"Id":"ZVK_VSHA2CL_VV"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"zvk_vsha2_funct6"}]}]}]},{"Id":"undefined_zvk_vsha2_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_zvk_vsha2_funct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ZVK_VSHA2CH_VV"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"zvk_vsha2_funct6"}]}]}]},{"Id":"zvk_vsha2_funct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_vsha2_funct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ZVK_VSHA2CH_VV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ZVK_VSHA2CL_VV"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"zvk_vsha2_funct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_zvk_vsha2_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_zvk_vsha2_funct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VSHA2CH_VV"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VSHA2CL_VV"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"zvknhab_check_encdec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvknhab_check_encdec"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"zvk_sig0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sig0"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"SEW"}]}]]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"SEW"}]},[{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":3}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]}]]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"zvk_sig1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sig1"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"SEW"}]}]]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"SEW"}]},[{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":17}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":10}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":61}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":6}]}]]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"zvk_sum0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sum0"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"SEW"}]}]]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"SEW"}]},[{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":13}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":22}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":28}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":34}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":39}]}]]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"zvk_sum1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sum1"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"SEW"}]}]]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"SEW"}]},[{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":11}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":25}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":14}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":41}]}]]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"zvk_ch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_ch"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]},{"P_id":[{"Id":"z"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"x"}]}]]},{"E_id":[{"Id":"z"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"zvk_maj"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_maj"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"x"}]},{"P_id":[{"Id":"y"}]},{"P_id":[{"Id":"z"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"y"}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"z"}]}]]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"y"}]},{"E_id":[{"Id":"z"}]}]]}]]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"zvk_vsm4r_funct6"},[{"Id":"ZVK_VSM4R_VV"},{"Id":"ZVK_VSM4R_VS"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"zvk_vsm4r_funct6"}]}]}]},{"Id":"undefined_zvk_vsm4r_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_zvk_vsm4r_funct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ZVK_VSM4R_VV"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"zvk_vsm4r_funct6"}]}]}]},{"Id":"zvk_vsm4r_funct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_vsm4r_funct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ZVK_VSM4R_VV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ZVK_VSM4R_VS"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"zvk_vsm4r_funct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_zvk_vsm4r_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_zvk_vsm4r_funct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VSM4R_VV"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VSM4R_VS"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_round_key"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_round_key"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"S"}]}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"X"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"S"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"S"}]},{"E_lit":[{"L_num":13}]}]]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"S"}]},{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_sm4_round"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sm4_round"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"S"}]}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"X"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"S"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"S"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"S"}]},{"E_lit":[{"L_num":10}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"S"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"S"}]},{"E_lit":[{"L_num":24}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[32]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"P_id":[{"Id":"zvksed_ck"}]}]},{"E_vector":[[{"E_lit":[{"L_hex":"00070E15"}]},{"E_lit":[{"L_hex":"1C232A31"}]},{"E_lit":[{"L_hex":"383F464D"}]},{"E_lit":[{"L_hex":"545B6269"}]},{"E_lit":[{"L_hex":"70777E85"}]},{"E_lit":[{"L_hex":"8C939AA1"}]},{"E_lit":[{"L_hex":"A8AFB6BD"}]},{"E_lit":[{"L_hex":"C4CBD2D9"}]},{"E_lit":[{"L_hex":"E0E7EEF5"}]},{"E_lit":[{"L_hex":"FC030A11"}]},{"E_lit":[{"L_hex":"181F262D"}]},{"E_lit":[{"L_hex":"343B4249"}]},{"E_lit":[{"L_hex":"50575E65"}]},{"E_lit":[{"L_hex":"6C737A81"}]},{"E_lit":[{"L_hex":"888F969D"}]},{"E_lit":[{"L_hex":"A4ABB2B9"}]},{"E_lit":[{"L_hex":"C0C7CED5"}]},{"E_lit":[{"L_hex":"DCE3EAF1"}]},{"E_lit":[{"L_hex":"F8FF060D"}]},{"E_lit":[{"L_hex":"141B2229"}]},{"E_lit":[{"L_hex":"30373E45"}]},{"E_lit":[{"L_hex":"4C535A61"}]},{"E_lit":[{"L_hex":"686F767D"}]},{"E_lit":[{"L_hex":"848B9299"}]},{"E_lit":[{"L_hex":"A0A7AEB5"}]},{"E_lit":[{"L_hex":"BCC3CAD1"}]},{"E_lit":[{"L_hex":"D8DFE6ED"}]},{"E_lit":[{"L_hex":"F4FB0209"}]},{"E_lit":[{"L_hex":"10171E25"}]},{"E_lit":[{"L_hex":"2C333A41"}]},{"E_lit":[{"L_hex":"484F565D"}]},{"E_lit":[{"L_hex":"646B7279"}]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[32]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvksed_box_lookup"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvksed_box_lookup"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"x"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[32]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"P_id":[{"Id":"table"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"table"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":31}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"x"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_sm4_sbox"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sm4_sbox"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"zvksed_box_lookup"},[{"E_id":[{"Id":"x"}]},{"E_id":[{"Id":"zvksed_ck"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_sm4_subword"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sm4_subword"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"sm4_sbox"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":24}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"sm4_sbox"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"sm4_sbox"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"sm4_sbox"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_p0"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_p0"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"X"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"X"}]},{"E_lit":[{"L_num":9}]}]]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"X"}]},{"E_lit":[{"L_num":17}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_p1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_p1"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"X"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"X"}]},{"E_lit":[{"L_num":15}]}]]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"X"}]},{"E_lit":[{"L_num":23}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_sh_w"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sh_w"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"A"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"B"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"C"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"D"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"E"}]}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"zvk_p1"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"A"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"B"}]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"C"}]},{"E_lit":[{"L_num":15}]}]]}]]}]]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"D"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"E"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_ff1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_ff1"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Z"}]}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"X"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"Z"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_ff2"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_ff2"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Z"}]}]}]]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"X"}]},{"E_id":[{"Id":"Y"}]}]]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"X"}]},{"E_id":[{"Id":"Z"}]}]]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"Z"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_ff_j"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_ff_j"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Z"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"J"}]}]}]]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"J"}]},{"E_lit":[{"L_num":15}]}]]},{"E_app":[{"Id":"zvk_ff1"},[{"E_id":[{"Id":"X"}]},{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"Z"}]}]]},{"E_app":[{"Id":"zvk_ff2"},[{"E_id":[{"Id":"X"}]},{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"Z"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_gg1"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_gg1"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Z"}]}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"X"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"Z"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_gg2"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_gg2"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Z"}]}]}]]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"X"}]},{"E_id":[{"Id":"Y"}]}]]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"X"}]}]]},{"E_id":[{"Id":"Z"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_gg_j"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_gg_j"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"X"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"Z"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"J"}]}]}]]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"J"}]},{"E_lit":[{"L_num":15}]}]]},{"E_app":[{"Id":"zvk_gg1"},[{"E_id":[{"Id":"X"}]},{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"Z"}]}]]},{"E_app":[{"Id":"zvk_gg2"},[{"E_id":[{"Id":"X"}]},{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"Z"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"nat"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"zvk_t_j"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_t_j"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"J"}]}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"J"}]},{"E_lit":[{"L_num":15}]}]]},{"E_lit":[{"L_hex":"79CC4519"}]},{"E_lit":[{"L_hex":"7A879D8A"}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[8]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[8]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]}]}]},{"Id":"zvk_sm3_round"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_sm3_round"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[8]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"P_id":[{"Id":"A_H"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"w"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"j"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"t_j"}]},{"E_app":[{"Id":"rotatel"},[{"E_app":[{"Id":"zvk_t_j"},[{"E_id":[{"Id":"j"}]}]]},{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ss1"}]},{"E_app":[{"Id":"rotatel"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"rotatel"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":12}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_id":[{"Id":"t_j"}]}]]},{"E_lit":[{"L_num":7}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ss2"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"ss1"}]},{"E_app":[{"Id":"rotatel"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":12}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"tt1"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_ff_j"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_id":[{"Id":"ss2"}]}]]},{"E_id":[{"Id":"x"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"tt2"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_gg_j"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":6}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":7}]}]]}]]},{"E_id":[{"Id":"ss1"}]}]]},{"E_id":[{"Id":"w"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"A1"}]},{"E_id":[{"Id":"tt1"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"C1"}]},{"E_app":[{"Id":"rotatel"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":9}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"E1"}]},{"E_app":[{"Id":"zvk_p0"},[{"E_id":[{"Id":"tt2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"G1"}]},{"E_app":[{"Id":"rotatel"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_num":19}]}]]}]},{"E_block":[[{"E_vector":[[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":6}]}]]},{"E_id":[{"Id":"G1"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":4}]}]]},{"E_id":[{"Id":"E1"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"C1"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A_H"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"A1"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"zvk_vaesdf_funct6"},[{"Id":"ZVK_VAESDF_VV"},{"Id":"ZVK_VAESDF_VS"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"zvk_vaesdf_funct6"}]}]}]},{"Id":"undefined_zvk_vaesdf_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_zvk_vaesdf_funct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ZVK_VAESDF_VV"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"zvk_vaesdf_funct6"}]}]}]},{"Id":"zvk_vaesdf_funct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_vaesdf_funct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ZVK_VAESDF_VV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ZVK_VAESDF_VS"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"zvk_vaesdf_funct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_zvk_vaesdf_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_zvk_vaesdf_funct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDF_VV"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDF_VS"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"zvk_vaesdm_funct6"},[{"Id":"ZVK_VAESDM_VV"},{"Id":"ZVK_VAESDM_VS"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"zvk_vaesdm_funct6"}]}]}]},{"Id":"undefined_zvk_vaesdm_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_zvk_vaesdm_funct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ZVK_VAESDM_VV"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"zvk_vaesdm_funct6"}]}]}]},{"Id":"zvk_vaesdm_funct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_vaesdm_funct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ZVK_VAESDM_VV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ZVK_VAESDM_VS"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"zvk_vaesdm_funct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_zvk_vaesdm_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_zvk_vaesdm_funct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDM_VV"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDM_VS"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"zvk_vaesef_funct6"},[{"Id":"ZVK_VAESEF_VV"},{"Id":"ZVK_VAESEF_VS"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"zvk_vaesef_funct6"}]}]}]},{"Id":"undefined_zvk_vaesef_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_zvk_vaesef_funct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ZVK_VAESEF_VV"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"zvk_vaesef_funct6"}]}]}]},{"Id":"zvk_vaesef_funct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_vaesef_funct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ZVK_VAESEF_VV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ZVK_VAESEF_VS"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"zvk_vaesef_funct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_zvk_vaesef_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_zvk_vaesef_funct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEF_VV"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEF_VS"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"zvk_vaesem_funct6"},[{"Id":"ZVK_VAESEM_VV"},{"Id":"ZVK_VAESEM_VS"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"zvk_vaesem_funct6"}]}]}]},{"Id":"undefined_zvk_vaesem_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_zvk_vaesem_funct6"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"ZVK_VAESEM_VV"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"zvk_vaesem_funct6"}]}]}]},{"Id":"zvk_vaesem_funct6_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zvk_vaesem_funct6_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"ZVK_VAESEM_VV"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"ZVK_VAESEM_VS"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"zvk_vaesem_funct6"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_zvk_vaesem_funct6"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_zvk_vaesem_funct6"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEM_VV"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEM_VS"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/vector_crypto/zvk_utils.sail"]},{"DEF_pragma":["file_start","extensions/Zicsr/zicsr_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"csrop"},[{"Id":"CSRRW"},{"Id":"CSRRS"},{"Id":"CSRRC"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"csrop"}]}]}]},{"Id":"undefined_csrop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_csrop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"CSRRW"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"csrop"}]}]}]},{"Id":"csrop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csrop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"CSRRW"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"CSRRS"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"CSRRC"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"csrop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_csrop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_csrop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"CSRRW"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"CSRRS"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"CSRRC"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicsr/zicsr_types.sail"]},{"DEF_pragma":["file_start","extensions/Smcntrpmf/smcntrpmf.sail"]},{"DEF_type":{"TD_record":[{"Id":"CountSmcntrpmf"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"undefined_CountSmcntrpmf"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_CountSmcntrpmf"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"Mk_CountSmcntrpmf"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_CountSmcntrpmf"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_CountSmcntrpmf_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_CountSmcntrpmf_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"_update_CountSmcntrpmf_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_CountSmcntrpmf_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_CountSmcntrpmf_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_CountSmcntrpmf_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_CountSmcntrpmf_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_CountSmcntrpmf_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_CountSmcntrpmf_bits"},{"Id":"_set_CountSmcntrpmf_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_CountSmcntrpmf_MINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_CountSmcntrpmf_MINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":62}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"_update_CountSmcntrpmf_MINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_CountSmcntrpmf_MINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":62}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MINH"},[{"Id":"_update_CountSmcntrpmf_MINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_CountSmcntrpmf_MINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_CountSmcntrpmf_MINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_CountSmcntrpmf_MINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MINH"},[{"Id":"_get_CountSmcntrpmf_MINH"},{"Id":"_set_CountSmcntrpmf_MINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_CountSmcntrpmf_SINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_CountSmcntrpmf_SINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":61}]},{"E_lit":[{"L_num":61}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"_update_CountSmcntrpmf_SINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_CountSmcntrpmf_SINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":61}]},{"E_lit":[{"L_num":61}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SINH"},[{"Id":"_update_CountSmcntrpmf_SINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_CountSmcntrpmf_SINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_CountSmcntrpmf_SINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_CountSmcntrpmf_SINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SINH"},[{"Id":"_get_CountSmcntrpmf_SINH"},{"Id":"_set_CountSmcntrpmf_SINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_CountSmcntrpmf_UINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_CountSmcntrpmf_UINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_num":60}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"_update_CountSmcntrpmf_UINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_CountSmcntrpmf_UINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_num":60}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_UINH"},[{"Id":"_update_CountSmcntrpmf_UINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_CountSmcntrpmf_UINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_CountSmcntrpmf_UINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_CountSmcntrpmf_UINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_UINH"},[{"Id":"_get_CountSmcntrpmf_UINH"},{"Id":"_set_CountSmcntrpmf_UINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_CountSmcntrpmf_VSINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_CountSmcntrpmf_VSINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":59}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"_update_CountSmcntrpmf_VSINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_CountSmcntrpmf_VSINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":59}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_VSINH"},[{"Id":"_update_CountSmcntrpmf_VSINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_CountSmcntrpmf_VSINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_CountSmcntrpmf_VSINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_CountSmcntrpmf_VSINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_VSINH"},[{"Id":"_get_CountSmcntrpmf_VSINH"},{"Id":"_set_CountSmcntrpmf_VSINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_CountSmcntrpmf_VUINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_CountSmcntrpmf_VUINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":58}]},{"E_lit":[{"L_num":58}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"_update_CountSmcntrpmf_VUINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_CountSmcntrpmf_VUINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":58}]},{"E_lit":[{"L_num":58}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_VUINH"},[{"Id":"_update_CountSmcntrpmf_VUINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_CountSmcntrpmf_VUINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_CountSmcntrpmf_VUINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_CountSmcntrpmf_VUINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_VUINH"},[{"Id":"_get_CountSmcntrpmf_VUINH"},{"Id":"_set_CountSmcntrpmf_VUINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"CountSmcntrpmf"}]}]}]},{"Id":"legalize_smcntrpmf"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_smcntrpmf"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"P_id":[{"Id":"c"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"value"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"Mk_CountSmcntrpmf"},[{"E_id":[{"Id":"value"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"_update_CountSmcntrpmf_VUINH"},[{"E_app":[{"Id":"_update_CountSmcntrpmf_VSINH"},[{"E_app":[{"Id":"_update_CountSmcntrpmf_UINH"},[{"E_app":[{"Id":"_update_CountSmcntrpmf_SINH"},[{"E_app":[{"Id":"_update_CountSmcntrpmf_MINH"},[{"E_id":[{"Id":"c"}]},{"E_app":[{"Id":"_get_CountSmcntrpmf_MINH"},[{"E_id":[{"Id":"v"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"_get_CountSmcntrpmf_SINH"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[{"Id":"_get_CountSmcntrpmf_UINH"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_H"}]}]]},{"E_app":[{"Id":"_get_CountSmcntrpmf_VSINH"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_H"}]}]]},{"E_app":[{"Id":"_get_CountSmcntrpmf_VUINH"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Id":"mcyclecfg"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Id":"minstretcfg"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"counter_priv_filter_bit"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"counter_priv_filter_bit"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"CountSmcntrpmf"}]},{"P_id":[{"Id":"reg"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]}]]},{"E_match":[{"E_id":[{"Id":"priv"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"_get_CountSmcntrpmf_MINH"},[{"E_id":[{"Id":"reg"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"_get_CountSmcntrpmf_SINH"},[{"E_id":[{"Id":"reg"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"_get_CountSmcntrpmf_VSINH"},[{"E_id":[{"Id":"reg"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"_get_CountSmcntrpmf_UINH"},[{"E_id":[{"Id":"reg"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"_get_CountSmcntrpmf_VUINH"},[{"E_id":[{"Id":"reg"}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Smcntrpmf/smcntrpmf.sail"]},{"DEF_pragma":["file_start","extensions/Zawrs/zawrs_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"wrsop"},[{"Id":"WRS_STO"},{"Id":"WRS_NTO"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"wrsop"}]}]}]},{"Id":"undefined_wrsop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_wrsop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"WRS_STO"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"wrsop"}]}]}]},{"Id":"wrsop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wrsop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"WRS_STO"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"WRS_NTO"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"wrsop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_wrsop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_wrsop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"WRS_STO"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"WRS_NTO"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zawrs/zawrs_types.sail"]},{"DEF_pragma":["file_start","extensions/Zicond/zicond_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"zicondop"},[{"Id":"CZERO_EQZ"},{"Id":"CZERO_NEZ"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"zicondop"}]}]}]},{"Id":"undefined_zicondop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_zicondop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"CZERO_EQZ"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"zicondop"}]}]}]},{"Id":"zicondop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zicondop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"CZERO_EQZ"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"CZERO_NEZ"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"zicondop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_zicondop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_zicondop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"CZERO_EQZ"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"CZERO_NEZ"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicond/zicond_types.sail"]},{"DEF_pragma":["file_start","extensions/Zicbom/zicbom_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"cbop_zicbom"},[{"Id":"CBO_CLEAN"},{"Id":"CBO_FLUSH"},{"Id":"CBO_INVAL"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"cbop_zicbom"}]}]}]},{"Id":"undefined_cbop_zicbom"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_cbop_zicbom"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"CBO_CLEAN"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"cbop_zicbom"}]}]}]},{"Id":"cbop_zicbom_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cbop_zicbom_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"CBO_CLEAN"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"CBO_FLUSH"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"CBO_INVAL"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"cbop_zicbom"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_cbop_zicbom"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_cbop_zicbom"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"CBO_CLEAN"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"CBO_FLUSH"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"CBO_INVAL"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicbom/zicbom_types.sail"]},{"DEF_pragma":["file_start","extensions/Zicbop/zicbop_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"cbop_zicbop"},[{"Id":"PREFETCH_I"},{"Id":"PREFETCH_R"},{"Id":"PREFETCH_W"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"cbop_zicbop"}]}]}]},{"Id":"undefined_cbop_zicbop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_cbop_zicbop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"PREFETCH_I"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"cbop_zicbop"}]}]}]},{"Id":"cbop_zicbop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cbop_zicbop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"PREFETCH_I"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"PREFETCH_R"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"PREFETCH_W"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"cbop_zicbop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_cbop_zicbop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_cbop_zicbop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"PREFETCH_I"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"PREFETCH_R"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"PREFETCH_W"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicbop/zicbop_types.sail"]},{"DEF_pragma":["file_start","extensions/Zihintntl/zihintntl_types.sail"]},{"DEF_type":{"TD_enum":[{"Id":"ntl_type"},[{"Id":"NTL_P1"},{"Id":"NTL_PALL"},{"Id":"NTL_S1"},{"Id":"NTL_ALL"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"ntl_type"}]}]}]},{"Id":"undefined_ntl_type"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_ntl_type"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NTL_P1"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"ntl_type"}]}]}]},{"Id":"ntl_type_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ntl_type_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NTL_P1"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"NTL_PALL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"NTL_S1"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"NTL_ALL"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"ntl_type"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_ntl_type"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_ntl_type"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NTL_P1"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"NTL_PALL"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"NTL_S1"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"NTL_ALL"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"ntl_type"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"ntl_name"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"ntl_name"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_P1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"p1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_PALL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pall"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_S1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"s1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_ALL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"all"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"ntl_type"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_ntl"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_ntl"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_P1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_PALL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_S1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NTL_ALL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zihintntl/zihintntl_types.sail"]},{"DEF_pragma":["file_start","extensions/cfi/cfi_types.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"landing_pad_label"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[20]}]}]]}]}]}},{"DEF_type":{"TD_enum":[{"Id":"Software_Check_Code"},[{"Id":"SWC_NO_INFO"},{"Id":"SWC_LANDING_PAD_FAULT"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Software_Check_Code"}]}]}]},{"Id":"undefined_Software_Check_Code"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Software_Check_Code"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"SWC_NO_INFO"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"Software_Check_Code"}]}]}]},{"Id":"Software_Check_Code_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Software_Check_Code_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"SWC_NO_INFO"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"SWC_LANDING_PAD_FAULT"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Software_Check_Code"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_Software_Check_Code"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_Software_Check_Code"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"SWC_NO_INFO"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"SWC_LANDING_PAD_FAULT"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"Software_Check_Code"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"software_check_cause"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"software_check_cause"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SWC_NO_INFO"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SWC_LANDING_PAD_FAULT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/cfi/cfi_types.sail"]},{"DEF_pragma":["file_start","extensions/cfi/zicfilp_regs.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"get_xLPE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_xLPE"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_match":[{"E_id":[{"Id":"p"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"bool_bits_backwards"},[{"E_app":[{"Id":"_get_Seccfg_MLPE"},[{"E_id":[{"Id":"mseccfg"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"bool_bits_backwards"},[{"E_app":[{"Id":"_get_MEnvcfg_LPE"},[{"E_id":[{"Id":"menvcfg"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"bool_bits_backwards"},[{"E_app":[{"Id":"_get_SEnvcfg_LPE"},[{"E_id":[{"Id":"senvcfg"}]}]]}]]},{"E_app":[{"Id":"bool_bits_backwards"},[{"E_app":[{"Id":"_get_MEnvcfg_LPE"},[{"E_id":[{"Id":"menvcfg"}]}]]}]]}]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/cfi/zicfilp_regs.sail"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/cfi/zicfilp_regs.sail"}]},{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"landing_pad_expectation"},[{"Id":"NO_LP_EXPECTED"},{"Id":"LP_EXPECTED"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"landing_pad_expectation"}]}]}]},{"Id":"undefined_landing_pad_expectation"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_landing_pad_expectation"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NO_LP_EXPECTED"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"landing_pad_expectation"}]}]}]},{"Id":"landing_pad_expectation_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"landing_pad_expectation_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NO_LP_EXPECTED"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"LP_EXPECTED"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"landing_pad_expectation"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_landing_pad_expectation"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_landing_pad_expectation"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NO_LP_EXPECTED"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"LP_EXPECTED"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Id":"elp"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"landing_pad_expectation"}]}]}]},{"Id":"landing_pad_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"landing_pad_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]},{"MPat_pat":[{"MP_id":[{"Id":"NO_LP_EXPECTED"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]},{"MPat_pat":[{"MP_id":[{"Id":"LP_EXPECTED"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"update_elp_state"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"update_elp_state"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_software_guarded_branch"}]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_lit":[{"L_hex":"7"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_return"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_lit":[{"L_hex":"1"}]}]]}]]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"Regidx"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":5}]}]},{"E_lit":[{"L_hex":"5"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"elp"}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"is_software_guarded_branch"}]}]]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"is_return"}]}]]}]]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_landing_pad_expected"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_landing_pad_expected"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"elp"}]},{"E_app":[{"Id":"landing_pad_bits_backwards"},[{"E_id":[{"Id":"LP_EXPECTED"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset_elp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset_elp"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_assign":[{"LE_id":[{"Id":"elp"}]},{"E_app":[{"Id":"landing_pad_bits_backwards"},[{"E_id":[{"Id":"NO_LP_EXPECTED"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"zicfilp_preserve_elp_on_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zicfilp_preserve_elp_on_trap"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"x"}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"x"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":41}]},{"E_lit":[{"L_num":41}]}]},{"E_id":[{"Id":"elp"}]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]}]},{"E_id":[{"Id":"elp"}]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/cfi/zicfilp_regs.sail"}]},{"E_lit":[{"L_num":71}]},{"E_lit":[{"L_string":"Invalid privilege level"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/cfi/zicfilp_regs.sail"}]},{"E_lit":[{"L_num":72}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/cfi/zicfilp_regs.sail"}]},{"E_lit":[{"L_num":73}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]},{"E_app":[{"Id":"reset_elp"},[{"E_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"xRET_type"}]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"zicfilp_restore_elp_on_xret"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"zicfilp_restore_elp_on_xret"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"xRET_type"}]},{"P_id":[{"Id":"xret"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"y"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"pelp"}]}]},{"E_match":[{"E_id":[{"Id":"xret"}]},[{"Pat_exp":[{"P_id":[{"Id":"mRET"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pelp"}]},{"E_app":[{"Id":"_get_Mstatus_MPELP"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":41}]},{"E_lit":[{"L_num":41}]}]},{"E_app":[{"Id":"landing_pad_bits_backwards"},[{"E_id":[{"Id":"NO_LP_EXPECTED"}]}]]}]},{"E_id":[{"Id":"pelp"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"sRET"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pelp"}]},{"E_app":[{"Id":"_get_Mstatus_SPELP"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]}]},{"E_app":[{"Id":"landing_pad_bits_backwards"},[{"E_id":[{"Id":"NO_LP_EXPECTED"}]}]]}]},{"E_id":[{"Id":"pelp"}]}]]}]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"elp"}]},{"E_if":[{"E_app":[{"Id":"get_xLPE"},[{"E_id":[{"Id":"y"}]}]]},{"E_id":[{"Id":"pelp"}]},{"E_app":[{"Id":"landing_pad_bits_backwards"},[{"E_id":[{"Id":"NO_LP_EXPECTED"}]}]]}]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/cfi/zicfilp_regs.sail"]},{"DEF_pragma":["file_start","sys/sys_reservation.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"load_reservation"},{"pure":false,"bindings":[["interpreter","Platform.load_reservation"],["c","load_reservation"],["lem","load_reservation"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[34]},{"Nexp_constant":[64]}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"match_reservation"},{"pure":true,"bindings":[["interpreter","Platform.match_reservation"],["lem","match_reservation"],["c","match_reservation"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"cancel_reservation"},{"pure":false,"bindings":[["interpreter","Platform.cancel_reservation"],["c","cancel_reservation"],["lem","cancel_reservation"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_reservation"},{"pure":true,"bindings":[["interpreter","Platform.valid_reservation"],["c","valid_reservation"],["lem","valid_reservation"]]}]}},{"DEF_pragma":["file_end","sys/sys_reservation.sail"]},{"DEF_pragma":["file_start","sys/sys_control.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Mstatus"}]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"Privilege"}]}]}]},{"Id":"effectivePrivilege"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"effectivePrivilege"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"t"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Mstatus"}]},{"P_id":[{"Id":"m"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"t"}]},{"E_app":[{"Id":"InstructionFetch"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_MPRV"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[{"Id":"privLevel_bits_forwards"},[{"E_tuple":[[{"E_app":[{"Id":"_get_Mstatus_MPP"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":["L_zero"]}]]}]]},{"E_id":[{"Id":"priv"}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"csrAccess"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csrAccess"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"csr"}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":10}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"csrPriv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"csrPriv"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"csr"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":8}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_CSR_priv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_CSR_priv"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]}]]},{"E_app":[{"Operator":">=_u"},[{"E_app":[{"Id":"privLevel_to_bits"},[{"E_id":[{"Id":"p"}]}]]},{"E_app":[{"Id":"csrPriv"},[{"E_id":[{"Id":"csr"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_CSR_access"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_CSR_access"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"isWrite"}]}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"isWrite"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"csrAccess"},[{"E_id":[{"Id":"csr"}]}]]},{"E_lit":[{"L_bin":"11"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_CSR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"isWrite"}]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_CSR_priv"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"p"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_CSR_access"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"isWrite"}]}]]},{"E_app":[{"Id":"is_CSR_accessible"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"p"}]},{"E_id":[{"Id":"isWrite"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"ExceptionType"}]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"Privilege"}]}]}]},{"Id":"exception_delegatee"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"exception_delegatee"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"e"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"exceptionType_bits_forwards"},[{"E_id":[{"Id":"e"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"super"}]},{"E_app":[{"Id":"bit_to_bool"},[{"E_app":[{"Id":"bitvector_access"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"deleg"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_id":[{"Id":"super"}]}]]},{"E_id":[{"Id":"Supervisor"}]},{"E_id":[{"Id":"Machine"}]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Operator":"<_u"},[{"E_app":[{"Id":"privLevel_to_bits"},[{"E_id":[{"Id":"deleg"}]}]]},{"E_app":[{"Id":"privLevel_to_bits"},[{"E_id":[{"Id":"p"}]}]]}]]},{"E_id":[{"Id":"p"}]},{"E_id":[{"Id":"deleg"}]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"InterruptType"}]}]}]]}]}]},{"Id":"findPendingInterrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"findPendingInterrupt"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"ip"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ip"}]},{"E_app":[{"Id":"Mk_Minterrupts"},[{"E_id":[{"Id":"ip"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_MEI"},[{"E_id":[{"Id":"ip"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"I_M_External"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_MSI"},[{"E_id":[{"Id":"ip"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"I_M_Software"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_MTI"},[{"E_id":[{"Id":"ip"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"I_M_Timer"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_SEI"},[{"E_id":[{"Id":"ip"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"I_S_External"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_SSI"},[{"E_id":[{"Id":"ip"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"I_S_Software"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"ip"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"I_S_Timer"}]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]}]}]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"Privilege"}]}]]}]}]]}]}]},{"Id":"getPendingSet"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"getPendingSet"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_block":[[{"E_assert":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_field":[{"E_id":[{"Id":"mideleg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]]},{"E_lit":[{"L_string":"sys/sys_control.sail:70.58-70.59"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"pending_m"}]},{"E_app":[{"Id":"and_vec"},[{"E_field":[{"E_id":[{"Id":"mip"}]},{"Id":"bits"}]},{"E_app":[{"Id":"and_vec"},[{"E_field":[{"E_id":[{"Id":"mie"}]},{"Id":"bits"}]},{"E_app":[{"Id":"not_vec"},[{"E_field":[{"E_id":[{"Id":"mideleg"}]},{"Id":"bits"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pending_s"}]},{"E_app":[{"Id":"and_vec"},[{"E_field":[{"E_id":[{"Id":"mip"}]},{"Id":"bits"}]},{"E_app":[{"Id":"and_vec"},[{"E_field":[{"E_id":[{"Id":"mie"}]},{"Id":"bits"}]},{"E_field":[{"E_id":[{"Id":"mideleg"}]},{"Id":"bits"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mIE"}]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_MIE"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Supervisor"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"User"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sIE"}]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Supervisor"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_SIE"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"User"}]}]]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"mIE"}]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"pending_m"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_tuple":[[{"E_id":[{"Id":"pending_m"}]},{"E_id":[{"Id":"Machine"}]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"sIE"}]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"pending_s"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_tuple":[[{"E_id":[{"Id":"pending_s"}]},{"E_id":[{"Id":"Supervisor"}]}]]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"shouldWakeForInterrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"shouldWakeForInterrupt"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"and_vec"},[{"E_field":[{"E_id":[{"Id":"mip"}]},{"Id":"bits"}]},{"E_field":[{"E_id":[{"Id":"mie"}]},{"Id":"bits"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"InterruptType"}]},{"Typ_id":[{"Id":"Privilege"}]}]]}]}]]}]}]},{"Id":"dispatchInterrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dispatchInterrupt"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"getPendingSet"},[{"E_id":[{"Id":"priv"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_tuple":[[{"P_id":[{"Id":"ip"}]},{"P_id":[{"Id":"p"}]}]]}]]},{"E_match":[{"E_app":[{"Id":"findPendingInterrupt"},[{"E_id":[{"Id":"ip"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"Some"},[{"E_tuple":[[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"p"}]}]]}]]}]}]]}]}]]}]]}]}]}]]}},{"DEF_type":{"TD_variant":[{"Id":"ctl_result"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"sync_exception"}]},{"Id":"CTL_TRAP"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"CTL_SRET"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"CTL_MRET"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"tval"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tval"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]]},{"P_id":[{"Id":"excinfo"}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"excinfo"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_id":[{"Id":"e"}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"track_trap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"track_trap"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_block":[[{"E_app":[{"Id":"long_csr_write_callback"},[{"E_lit":[{"L_string":"mstatus"}]},{"E_lit":[{"L_string":"mstatush"}]},{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]}]]},{"E_match":[{"E_id":[{"Id":"p"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_block":[[{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"mcause"}]},{"E_field":[{"E_id":[{"Id":"mcause"}]},{"Id":"bits"}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"mtval"}]},{"E_id":[{"Id":"mtval"}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"mepc"}]},{"E_id":[{"Id":"mepc"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_block":[[{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"scause"}]},{"E_field":[{"E_id":[{"Id":"scause"}]},{"Id":"bits"}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"stval"}]},{"E_id":[{"Id":"stval"}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"sepc"}]},{"E_id":[{"Id":"sepc"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":148}]},{"E_lit":[{"L_string":"Invalid privilege level"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":149}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":150}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"TrapCause"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]]},{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"trap_handler"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"trap_handler"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"del_priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"TrapCause"}]},{"P_id":[{"Id":"c"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"pc"}]}]},{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]]},{"P_id":[{"Id":"info"}]}]},{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ext_exception"}]}]}]]},{"P_id":[{"Id":"ext"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"trap_callback"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"handling "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"trapCause_to_str"},[{"E_id":[{"Id":"c"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" at priv "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"del_priv"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" with tval "}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"tval"},[{"E_id":[{"Id":"info"}]}]]}]]}]]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"zicfilp_preserve_elp_on_trap"},[{"E_id":[{"Id":"del_priv"}]}]]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_interrupt"}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"trapCause_is_interrupt"},[{"E_id":[{"Id":"c"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cause"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"trapCause_bits_forwards"},[{"E_id":[{"Id":"c"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"del_priv"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mcause"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_id":[{"Id":"is_interrupt"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mcause"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"cause"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]},{"E_app":[{"Id":"_get_Mstatus_MIE"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":11}]}]},{"E_app":[{"Id":"privLevel_to_bits"},[{"E_id":[{"Id":"cur_privilege"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"mtval"}]},{"E_app":[{"Id":"tval"},[{"E_id":[{"Id":"info"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"mepc"}]},{"E_id":[{"Id":"pc"}]}]},{"E_assign":[{"LE_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"del_priv"}]}]},{"E_app":[{"Id":"handle_trap_extension"},[{"E_id":[{"Id":"del_priv"}]},{"E_id":[{"Id":"pc"}]},{"E_id":[{"Id":"ext"}]}]]},{"E_app":[{"Id":"track_trap"},[{"E_id":[{"Id":"del_priv"}]}]]},{"E_app":[{"Id":"prepare_trap_vector"},[{"E_id":[{"Id":"del_priv"}]},{"E_id":[{"Id":"mcause"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_lit":[{"L_string":"no supervisor mode present for delegation"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"scause"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_id":[{"Id":"is_interrupt"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"scause"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"cause"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]},{"E_app":[{"Id":"_get_Mstatus_SIE"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]},{"E_match":[{"E_id":[{"Id":"cur_privilege"}]},[{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_lit":[{"L_bin":"0"}]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_lit":[{"L_bin":"1"}]}]},{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":199}]},{"E_lit":[{"L_string":"invalid privilege for s-mode trap"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":200}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":201}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"stval"}]},{"E_app":[{"Id":"tval"},[{"E_id":[{"Id":"info"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"sepc"}]},{"E_id":[{"Id":"pc"}]}]},{"E_assign":[{"LE_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"del_priv"}]}]},{"E_app":[{"Id":"handle_trap_extension"},[{"E_id":[{"Id":"del_priv"}]},{"E_id":[{"Id":"pc"}]},{"E_id":[{"Id":"ext"}]}]]},{"E_app":[{"Id":"track_trap"},[{"E_id":[{"Id":"del_priv"}]}]]},{"E_app":[{"Id":"prepare_trap_vector"},[{"E_id":[{"Id":"del_priv"}]},{"E_id":[{"Id":"scause"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":214}]},{"E_lit":[{"L_string":"Invalid privilege level"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":215}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":216}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"ctl_result"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"exception_handler"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"exception_handler"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"cur_priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ctl_result"}]},{"P_id":[{"Id":"ctl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"pc"}]}]}]]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"ctl"}]},[{"Pat_exp":[{"P_app":[{"Id":"CTL_TRAP"},[{"P_id":[{"Id":"e"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"del_priv"}]},{"E_app":[{"Id":"exception_delegatee"},[{"E_field":[{"E_id":[{"Id":"e"}]},{"Id":"trap"}]},{"E_id":[{"Id":"cur_priv"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"trapping from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"cur_priv"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" to "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"del_priv"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" to handle "}]},{"E_app":[{"Id":"exceptionType_to_str"},[{"E_field":[{"E_id":[{"Id":"e"}]},{"Id":"trap"}]}]]}]]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"trap_handler"},[{"E_id":[{"Id":"del_priv"}]},{"E_app":[{"Id":"Exception"},[{"E_field":[{"E_id":[{"Id":"e"}]},{"Id":"trap"}]}]]},{"E_id":[{"Id":"pc"}]},{"E_field":[{"E_id":[{"Id":"e"}]},{"Id":"excinfo"}]},{"E_field":[{"E_id":[{"Id":"e"}]},{"Id":"ext"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"CTL_MRET"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prev_priv"}]},{"E_id":[{"Id":"cur_privilege"}]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]},{"E_app":[{"Id":"_get_Mstatus_MPIE"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_assign":[{"LE_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"privLevel_bits_forwards"},[{"E_tuple":[[{"E_app":[{"Id":"_get_Mstatus_MPP"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":["L_zero"]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":11}]}]},{"E_app":[{"Id":"privLevel_to_bits"},[{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_id":[{"Id":"User"}]},{"E_id":[{"Id":"Machine"}]}]}]]}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"zicfilp_restore_elp_on_xret"},[{"E_id":[{"Id":"mRET"}]},{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"long_csr_write_callback"},[{"E_lit":[{"L_string":"mstatus"}]},{"E_lit":[{"L_string":"mstatush"}]},{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]}]]},{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"ret-ing from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"prev_priv"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" to "}]},{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"cur_privilege"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"prepare_xret_target"},[{"E_id":[{"Id":"Machine"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"CTL_SRET"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prev_priv"}]},{"E_id":[{"Id":"cur_privilege"}]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]},{"E_app":[{"Id":"_get_Mstatus_SPIE"},[{"E_id":[{"Id":"mstatus"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_assign":[{"LE_id":[{"Id":"cur_privilege"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_SPP"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_id":[{"Id":"Supervisor"}]},{"E_id":[{"Id":"User"}]}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"zicfilp_restore_elp_on_xret"},[{"E_id":[{"Id":"sRET"}]},{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"long_csr_write_callback"},[{"E_lit":[{"L_string":"mstatus"}]},{"E_lit":[{"L_string":"mstatush"}]},{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]}]]},{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"ret-ing from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"prev_priv"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" to "}]},{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"cur_privilege"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"prepare_xret_target"},[{"E_id":[{"Id":"Supervisor"}]}]]}]]}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"ExceptionType"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]]}]}]},{"Id":"xtval_exception_value"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"xtval_exception_value"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"e"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"excinfo"}]}]}]]},{"E_block":[[{"E_if":[{"E_match":[{"E_id":[{"Id":"e"}]},[{"Pat_exp":[{"P_app":[{"Id":"E_Breakpoint"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Fetch_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Fetch_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Illegal_Instr"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_true"]}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"excinfo"}]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"ExceptionType"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"handle_exception"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"handle_exception"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"xtval"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"e"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"sync_exception"}]},{"P_id":[{"Id":"t"}]}]},{"E_struct":[[{"FE_fexp":[{"Id":"trap"},{"E_id":[{"Id":"e"}]}]},{"FE_fexp":[{"Id":"excinfo"},{"E_app":[{"Id":"xtval_exception_value"},[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"xtval"}]}]]}]},{"FE_fexp":[{"Id":"ext"},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"set_next_pc"},[{"E_app":[{"Id":"exception_handler"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"CTL_TRAP"},[{"E_id":[{"Id":"t"}]}]]},{"E_id":[{"Id":"PC"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"InterruptType"}]},{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"handle_interrupt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"handle_interrupt"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"InterruptType"}]},{"P_id":[{"Id":"i"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"del_priv"}]}]}]]},{"E_app":[{"Id":"set_next_pc"},[{"E_app":[{"Id":"trap_handler"},[{"E_id":[{"Id":"del_priv"}]},{"E_app":[{"Id":"Interrupt"},[{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"PC"}]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset_misa"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset_misa"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_A"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_C"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_B"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":12}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_M"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":20}]},{"E_lit":[{"L_num":20}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_U"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":18}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":21}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_V"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"base_E_enabled"}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"_get_Misa_E"},[{"E_id":[{"Id":"misa"}]}]]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/sys_control.sail"}]},{"E_lit":[{"L_num":312}]},{"E_lit":[{"L_string":"F and Zfinx cannot both be enabled!"}]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"misa"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_D"}]}]]}]]},{"E_lit":[{"L_bin":"0"}]}]}]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"misa"}]},{"E_field":[{"E_id":[{"Id":"misa"}]},{"Id":"bits"}]}]]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"pc_reset_address"},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"set_pc_reset_address"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"set_pc_reset_address"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"addr"}]}]},{"E_assign":[{"LE_id":[{"Id":"pc_reset_address"}]},{"E_app":[{"Id":"trunc"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"addr"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset_sys"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset_sys"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"Machine"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_app":[{"Id":"long_csr_write_callback"},[{"E_lit":[{"L_string":"mstatus"}]},{"E_lit":[{"L_string":"mstatush"}]},{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]}]]},{"E_app":[{"Id":"reset_misa"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"cancel_reservation"},[{"E_lit":["L_unit"]}]]},{"E_assign":[{"LE_id":[{"Id":"PC"}]},{"E_id":[{"Id":"pc_reset_address"}]}]},{"E_assign":[{"LE_id":[{"Id":"nextPC"}]},{"E_id":[{"Id":"pc_reset_address"}]}]},{"E_assign":[{"LE_field":[{"LE_id":[{"Id":"mcause"}]},{"Id":"bits"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"mcause"}]},{"E_field":[{"E_id":[{"Id":"mcause"}]},{"Id":"bits"}]}]]},{"E_app":[{"Id":"reset_pmp"},[{"E_lit":["L_unit"]}]]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_false"]}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_false"]}]}]]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":10}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"vstart"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"vl"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]}]},{"E_lit":[{"L_bin":"00"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vtype"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vtype"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":8}]}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":9}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vtype"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vtype"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]}]},{"E_lit":[{"L_bin":"0"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vtype"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":3}]}]},{"E_lit":[{"L_bin":"000"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vtype"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":0}]}]},{"E_lit":[{"L_bin":"000"}]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"MemoryOpResult"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'a"}]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'a"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'t"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'t"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_var":[{"Var":"'t"}]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"MemoryOpResult_add_meta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"MemoryOpResult_add_meta"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r"}]},{"P_id":[{"Id":"m"}]}]]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"m"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Err"},[{"E_id":[{"Id":"e"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'t"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_var":[{"Var":"'t"}]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_var":[{"Var":"'t"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"MemoryOpResult_drop_meta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"MemoryOpResult_drop_meta"},{"Pat_exp":[{"P_id":[{"Id":"r"}]},{"E_match":[{"E_id":[{"Id":"r"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"v"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Err"},[{"E_id":[{"Id":"e"}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","sys/sys_control.sail"]},{"DEF_pragma":["file_start","sys/platform.sail"]},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"plat_cache_block_size_exp"}]}]},{"E_lit":[{"L_num":6}]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"plat_enable_dirty_update"}]}]},{"E_lit":["L_false"]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"plat_enable_misaligned_access"}]}]},{"E_lit":["L_true"]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"physaddrbits"}]},{"Id":"plat_clint_base"},{"E_app":[{"Id":"to_bits_checked"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_typ":[{"Typ_id":[{"Id":"int"}]},{"E_lit":[{"L_num":33554432}]}]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"physaddrbits"}]},{"Id":"plat_clint_size"},{"E_app":[{"Id":"to_bits_checked"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_typ":[{"Typ_id":[{"Id":"int"}]},{"E_lit":[{"L_num":786432}]}]}]]}]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"physaddrbits"}]}]}]]},{"Id":"htif_tohost_base"},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"htif_tohost_size"}]},{"E_lit":[{"L_num":8}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"enable_htif"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"enable_htif"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"tohost_addr"}]}]},{"E_assign":[{"LE_id":[{"Id":"htif_tohost_base"}]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"trunc"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_id":[{"Id":"tohost_addr"}]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"within_clint"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"within_clint"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"addr_int"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"addr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"clint_base_int"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"plat_clint_base"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"clint_size_int"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"plat_clint_size"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"clint_base_int"}]},{"E_id":[{"Id":"addr_int"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"addr_int"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]}]]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"clint_base_int"}]},{"E_id":[{"Id":"clint_size_int"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"within_htif_writable"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"within_htif_writable"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]}]]},{"E_match":[{"E_id":[{"Id":"htif_tohost_base"}]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"base"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Operator":"<_u"},[{"E_id":[{"Id":"addr"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"base"}]},{"E_id":[{"Id":"htif_tohost_size"}]}]]}]]},{"E_app":[{"Operator":">=_u"},[{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_id":[{"Id":"base"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"within_htif_readable"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"within_htif_readable"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]}]]},{"E_app":[{"Id":"within_htif_writable"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"plat_insns_per_tick"}]}]},{"E_lit":[{"L_num":2}]}]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"mtimecmp"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"stimecmp"},null]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"MSIP_BASE"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_lit":[{"L_hex":"00000"}]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"MTIMECMP_BASE"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_lit":[{"L_hex":"04000"}]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"MTIMECMP_BASE_HI"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_lit":[{"L_hex":"04004"}]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"MTIME_BASE"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_lit":[{"L_hex":"0BFF8"}]}]]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"MTIME_BASE_HI"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_lit":[{"L_hex":"0BFFC"}]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"clint_load"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"clint_load"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"t"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]},{"P_id":[{"Id":"width"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"addr"}]},{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"plat_clint_base"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MSIP_BASE"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"_get_Minterrupts_MSI"},[{"E_id":[{"Id":"mip"}]}]]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]}]]},{"E_app":[{"Id":"_get_Minterrupts_MSI"},[{"E_id":[{"Id":"mip"}]}]]}]]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIMECMP_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<4>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtimecmp"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtimecmp"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIMECMP_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<8>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"mtimecmp"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"mtimecmp"}]}]]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIMECMP_BASE_HI"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint-hi<4>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtimecmp"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtimecmp"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIME_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"mtime"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtime"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIME_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"mtime"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"mtime"}]}]]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIME_BASE_HI"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"mtime"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtime"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_lit":[{"L_string":"] -> "}]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_match":[{"E_id":[{"Id":"t"}]},[{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Fetch_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_id":[{"Id":"Data"}]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Load_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]]}]}]}]}]}]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"clint_dispatch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"clint_dispatch"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mip"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Operator":"<=_u"},[{"E_id":[{"Id":"mtimecmp"}]},{"E_id":[{"Id":"mtime"}]}]]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sstc"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_MEnvcfg_STCE"},[{"E_id":[{"Id":"menvcfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mip"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Operator":"<=_u"},[{"E_id":[{"Id":"stimecmp"}]},{"E_id":[{"Id":"mtime"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint mtime "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"mtime"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" (mip.MTI <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"_get_Minterrupts_MTI"},[{"E_id":[{"Id":"mip"}]}]]}]]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sstc"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":", mip.STI <- "}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"_get_Minterrupts_STI"},[{"E_id":[{"Id":"mip"}]}]]}]]}]]},{"E_lit":[{"L_string":""}]}]},{"E_lit":[{"L_string":")"}]}]]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"clint_store"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"clint_store"},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"data"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"addr"}]},{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"plat_clint_base"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MSIP_BASE"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" (mip.MSI <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"data"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_lit":[{"L_string":")"}]}]]}]]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"mip"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"data"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIMECMP_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<8>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_lit":[{"L_string":" (mtimecmp)"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"mtimecmp"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"data"}]}]]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIMECMP_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<4>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_lit":[{"L_string":" (mtimecmp)"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"mtimecmp"}]},{"E_app":[{"Id":"update_subrange_bits"},[{"E_id":[{"Id":"mtimecmp"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"data"}]}]]}]]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIMECMP_BASE_HI"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<4>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_lit":[{"L_string":" (mtimecmp)"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"mtimecmp"}]},{"E_app":[{"Id":"update_subrange_bits"},[{"E_id":[{"Id":"mtimecmp"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"data"}]}]]}]]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIME_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<8>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_lit":[{"L_string":" (mtime)"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"mtime"}]},{"E_id":[{"Id":"data"}]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIME_BASE"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<4>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_lit":[{"L_string":" (mtime)"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"mtime"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"data"}]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"MTIME_BASE_HI"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint<4>["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_lit":[{"L_string":" (mtime)"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"mtime"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]},{"E_id":[{"Id":"data"}]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"clint["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]},{"E_lit":[{"L_string":" ()"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]]}]}]}]}]}]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"should_inc_mcycle"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"should_inc_mcycle"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Counterin_CY"},[{"E_id":[{"Id":"mcountinhibit"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"counter_priv_filter_bit"},[{"E_id":[{"Id":"mcyclecfg"}]},{"E_id":[{"Id":"priv"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"should_inc_minstret"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"should_inc_minstret"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Counterin_IR"},[{"E_id":[{"Id":"mcountinhibit"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"counter_priv_filter_bit"},[{"E_id":[{"Id":"minstretcfg"}]},{"E_id":[{"Id":"priv"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"tick_clock"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tick_clock"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"should_inc_mcycle"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_assign":[{"LE_id":[{"Id":"mcycle"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"mcycle"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"mtime"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"mtime"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_app":[{"Id":"clint_dispatch"},[{"E_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"plat_term_write"},{"pure":false,"bindings":[["c","plat_term_write"],["lem","plat_term_write"]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"plat_term_read"},{"pure":false,"bindings":[["c","plat_term_read"],["lem","plat_term_read"]]}]}},{"DEF_type":{"TD_record":[{"Id":"htif_cmd"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"htif_cmd"}]}]}]},{"Id":"undefined_htif_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_htif_cmd"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"htif_cmd"}]}]}]},{"Id":"Mk_htif_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_htif_cmd"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_htif_cmd_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_htif_cmd_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"htif_cmd"}]}]}]},{"Id":"_update_htif_cmd_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_htif_cmd_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_htif_cmd_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"htif_cmd"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_htif_cmd_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_htif_cmd_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_htif_cmd_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_htif_cmd_bits"},{"Id":"_set_htif_cmd_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_htif_cmd_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_htif_cmd_cmd"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":48}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"htif_cmd"}]}]}]},{"Id":"_update_htif_cmd_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_htif_cmd_cmd"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":48}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_cmd"},[{"Id":"_update_htif_cmd_cmd"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"htif_cmd"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_htif_cmd_cmd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_htif_cmd_cmd"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_htif_cmd_cmd"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_cmd"},[{"Id":"_get_htif_cmd_cmd"},{"Id":"_set_htif_cmd_cmd"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_htif_cmd_device"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_htif_cmd_device"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":56}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"htif_cmd"}]}]}]},{"Id":"_update_htif_cmd_device"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_htif_cmd_device"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":56}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_device"},[{"Id":"_update_htif_cmd_device"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"htif_cmd"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_htif_cmd_device"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_htif_cmd_device"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_htif_cmd_device"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_device"},[{"Id":"_get_htif_cmd_device"},{"Id":"_set_htif_cmd_device"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[48]}]}]]}]}]},{"Id":"_get_htif_cmd_payload"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_htif_cmd_payload"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"htif_cmd"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[48]}]}]]}],{"Typ_id":[{"Id":"htif_cmd"}]}]}]},{"Id":"_update_htif_cmd_payload"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_htif_cmd_payload"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_payload"},[{"Id":"_update_htif_cmd_payload"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"htif_cmd"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[48]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_htif_cmd_payload"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_htif_cmd_payload"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_htif_cmd_payload"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_payload"},[{"Id":"_get_htif_cmd_payload"},{"Id":"_set_htif_cmd_payload"}]]},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"htif_tohost"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"bool"}]},{"Id":"htif_done"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"htif_exit_code"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"bit"}]},{"Id":"htif_cmd_write"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Id":"htif_payload_writes"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset_htif"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset_htif"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"htif_cmd_write"}]},{"E_lit":["L_zero"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_lit":[{"L_hex":"0"}]}]},{"E_assign":[{"LE_id":[{"Id":"htif_tohost"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"htif_load"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"htif_load"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"acc"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"paddr"}]}]]},{"P_id":[{"Id":"width"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"htif["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_bits_str"},[{"E_id":[{"Id":"paddr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] -> "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"htif_tohost"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"base"}]}]},{"E_match":[{"E_id":[{"Id":"htif_tohost_base"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"base"}]}]]},{"E_id":[{"Id":"base"}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/platform.sail"}]},{"E_lit":[{"L_num":277}]},{"E_lit":[{"L_string":"HTIF load while HTIF isn't enabled"}]}]]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"base"}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"htif_tohost"}]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"base"}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"htif_tohost"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"paddr"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"base"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"htif_tohost"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]},{"E_match":[{"E_id":[{"Id":"acc"}]},[{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Fetch_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_id":[{"Id":"Data"}]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Load_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"htif_store"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"htif_store"},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"paddr"}]}]]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"data"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"htif["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_bits_str"},[{"E_id":[{"Id":"paddr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] <- "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"physaddrbits"}]},{"P_id":[{"Id":"base"}]}]},{"E_match":[{"E_id":[{"Id":"htif_tohost_base"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"base"}]}]]},{"E_id":[{"Id":"base"}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/platform.sail"}]},{"E_lit":[{"L_num":301}]},{"E_lit":[{"L_string":"HTIF store while HTIF isn't enabled"}]}]]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"base"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"htif_cmd_write"}]},{"E_lit":["L_one"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"htif_payload_writes"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"htif_tohost"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"data"}]}]]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"base"}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"htif_tohost"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"htif_payload_writes"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_lit":[{"L_hex":"1"}]}]}]},{"E_assign":[{"LE_id":[{"Id":"htif_tohost"}]},{"E_app":[{"Id":"update_subrange_bits"},[{"E_id":[{"Id":"htif_tohost"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"data"}]}]]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"paddr"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"base"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"data"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"htif_tohost"}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"htif_payload_writes"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_lit":[{"L_hex":"1"}]}]}]},{"E_assign":[{"LE_id":[{"Id":"htif_cmd_write"}]},{"E_lit":["L_one"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_tohost"}]},{"E_app":[{"Id":"update_subrange_bits"},[{"E_id":[{"Id":"htif_tohost"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"data"}]}]]}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]}]}]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_id":[{"Id":"htif_cmd_write"}]},{"E_lit":["L_one"]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"htif_payload_writes"}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"htif_payload_writes"}]}]]},{"E_lit":[{"L_num":2}]}]]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cmd"}]},{"E_app":[{"Id":"Mk_htif_cmd"},[{"E_id":[{"Id":"htif_tohost"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"_get_htif_cmd_device"},[{"E_id":[{"Id":"cmd"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"00"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"htif-syscall-proxy cmd: "}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"_get_htif_cmd_payload"},[{"E_id":[{"Id":"cmd"}]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"_get_htif_cmd_payload"},[{"E_id":[{"Id":"cmd"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"htif_done"}]},{"E_lit":["L_true"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_exit_code"}]},{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_htif_cmd_payload"},[{"E_id":[{"Id":"cmd"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"01"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"htif-term cmd: "}]},{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"_get_htif_cmd_payload"},[{"E_id":[{"Id":"cmd"}]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_match":[{"E_app":[{"Id":"_get_htif_cmd_cmd"},[{"E_id":[{"Id":"cmd"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"00"}]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"01"}]},{"E_app":[{"Id":"plat_term_write"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"_get_htif_cmd_payload"},[{"E_id":[{"Id":"cmd"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"c"}]},{"E_app":[{"Id":"print"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Unknown term cmd: "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"c"}]}]]}]]}]]}]}]]},{"E_app":[{"Id":"reset_htif"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"d"}]},{"E_app":[{"Id":"print"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"htif-???? cmd: "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"data"}]}]]}]]}]]}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Ok"},[{"E_lit":["L_true"]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"within_mmio_readable"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"within_mmio_readable"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]}]]},{"E_if":[{"E_app":[{"Id":"get_config_rvfi"},[{"E_lit":["L_unit"]}]]},{"E_lit":["L_false"]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"within_clint"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"within_htif_readable"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]}]]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"within_mmio_writable"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"within_mmio_writable"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]}]]},{"E_if":[{"E_app":[{"Id":"get_config_rvfi"},[{"E_lit":["L_unit"]}]]},{"E_lit":["L_false"]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"within_clint"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"within_htif_writable"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mmio_read"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mmio_read"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"t"}]}]},{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]}]]},{"E_if":[{"E_app":[{"Id":"within_clint"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"clint_load"},[{"E_id":[{"Id":"t"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_if":[{"E_app":[{"Id":"within_htif_readable"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"htif_load"},[{"E_id":[{"Id":"t"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_match":[{"E_id":[{"Id":"t"}]},[{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Fetch_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_id":[{"Id":"Data"}]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Load_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mmio_write"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mmio_write"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"P_id":[{"Id":"data"}]}]}]]},{"E_if":[{"E_app":[{"Id":"within_clint"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"clint_store"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]}]]},{"E_if":[{"E_app":[{"Id":"within_htif_writable"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"htif_store"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"init_platform"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_platform"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"htif_tohost"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"htif_done"}]},{"E_lit":["L_false"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_exit_code"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"htif_cmd_write"}]},{"E_lit":["L_zero"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":4}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"platform_wfi"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"platform_wfi"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_pragma":["file_end","sys/platform.sail"]},{"DEF_pragma":["file_start","sys/pma.sail"]},{"DEF_type":{"TD_enum":[{"Id":"AtomicSupport"},[{"Id":"AMONone"},{"Id":"AMOSwap"},{"Id":"AMOLogical"},{"Id":"AMOArithmetic"},{"Id":"AMOCASW"},{"Id":"AMOCASD"},{"Id":"AMOCASQ"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"AtomicSupport"}]}]}]},{"Id":"undefined_AtomicSupport"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_AtomicSupport"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"AMONone"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"AtomicSupport"}]}]}]},{"Id":"AtomicSupport_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"AtomicSupport_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"AMONone"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"AMOSwap"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"AMOLogical"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":3}]},{"E_id":[{"Id":"AMOArithmetic"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_id":[{"Id":"AMOCASW"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":5}]},{"E_id":[{"Id":"AMOCASD"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AMOCASQ"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"AtomicSupport"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[6]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_AtomicSupport"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_AtomicSupport"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"AMONone"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOSwap"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOLogical"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOArithmetic"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOCASW"}]},{"E_lit":[{"L_num":4}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOCASD"}]},{"E_lit":[{"L_num":5}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOCASQ"}]},{"E_lit":[{"L_num":6}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"AtomicSupport"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"atomic_support_str"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"atomic_support_str"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMONone"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AMONone"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOSwap"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AMOSwap"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOLogical"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AMOLogical"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOArithmetic"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AMOArithmetic"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOCASW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AMOCASW"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOCASD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AMOCASD"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOCASQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AMOCASQ"}]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"atomic_support_str"}]]},{"DEF_type":{"TD_enum":[{"Id":"Reservability"},[{"Id":"RsrvNone"},{"Id":"RsrvNonEventual"},{"Id":"RsrvEventual"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"Reservability"}]}]}]},{"Id":"undefined_Reservability"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_Reservability"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"RsrvNone"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"Reservability"}]}]}]},{"Id":"Reservability_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Reservability_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"RsrvNone"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"RsrvNonEventual"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"RsrvEventual"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"Reservability"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_Reservability"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_Reservability"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"RsrvNone"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"RsrvNonEventual"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"RsrvEventual"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"Reservability"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"reservability_str"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"reservability_str"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RsrvNone"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"RsrvNone"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RsrvNonEventual"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"RsrvNonEventual"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RsrvEventual"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"RsrvEventual"}]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"reservability_str"}]]},{"DEF_type":{"TD_enum":[{"Id":"misaligned_fault"},[{"Id":"NoFault"},{"Id":"AccessFault"},{"Id":"AlignmentFault"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"misaligned_fault"}]}]}]},{"Id":"undefined_misaligned_fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_misaligned_fault"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"NoFault"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"misaligned_fault"}]}]}]},{"Id":"misaligned_fault_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"misaligned_fault_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"NoFault"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"AccessFault"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"AlignmentFault"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"misaligned_fault"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_misaligned_fault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_misaligned_fault"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"NoFault"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"AccessFault"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"AlignmentFault"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"misaligned_fault"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"misaligned_fault_str"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"misaligned_fault_str"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NoFault"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"NoFault"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AccessFault"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AccessFault"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AlignmentFault"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"AlignmentFault"}]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"misaligned_fault_str"}]]},{"DEF_type":{"TD_record":[{"Id":"PMA"},{"TypQ_tq":[[]]},[[{"Typ_id":[{"Id":"bool"}]},{"Id":"cacheable"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"coherent"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"executable"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"readable"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"writable"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"read_idempotent"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"write_idempotent"}],[{"Typ_id":[{"Id":"misaligned_fault"}]},{"Id":"misaligned_fault"}],[{"Typ_id":[{"Id":"Reservability"}]},{"Id":"reservability"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"supports_cbo_zero"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"PMA"}]}]}]},{"Id":"undefined_PMA"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_PMA"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"cacheable"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"coherent"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"executable"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"readable"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"writable"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"read_idempotent"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"write_idempotent"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"misaligned_fault"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"reservability"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"supports_cbo_zero"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"PMA_Region"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"base"}],[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"size"}],[{"Typ_id":[{"Id":"PMA"}]},{"Id":"attributes"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"include_in_device_tree"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"PMA_Region"}]}]}]},{"Id":"undefined_PMA_Region"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_PMA_Region"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"base"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"size"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"attributes"},{"E_lit":["L_undef"]}]},{"FE_fexp":[{"Id":"include_in_device_tree"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[1]}]},{"A_nexp":[{"Nexp_constant":[4096]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]}]}]},{"Id":"matching_pma"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"matching_pma"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]},{"P_id":[{"Id":"pmas"}]}]},{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"mem_access_width"}]},{"P_id":[{"Id":"width"}]}]}]]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"pmas"}]},[{"Pat_exp":[{"P_list":[[]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_cons":[{"P_id":[{"Id":"pma"}]},{"P_id":[{"Id":"rest"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"range_subset"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"addr"}]}]]}]]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"width"}]}]]},{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"base"}]},{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"size"}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"pma"}]}]]},{"E_app":[{"Id":"matching_pma"},[{"E_id":[{"Id":"rest"}]},{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"PMA"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"pma_attributes_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pma_attributes_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"PMA"}]},{"P_id":[{"Id":"attr"}]}]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"cacheable"}]},{"E_lit":[{"L_string":" cacheable"}]},{"E_lit":[{"L_string":""}]}]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"coherent"}]},{"E_lit":[{"L_string":" coherent"}]},{"E_lit":[{"L_string":""}]}]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"executable"}]},{"E_lit":[{"L_string":" executable"}]},{"E_lit":[{"L_string":""}]}]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"readable"}]},{"E_lit":[{"L_string":" readable"}]},{"E_lit":[{"L_string":""}]}]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"writable"}]},{"E_lit":[{"L_string":" writable"}]},{"E_lit":[{"L_string":""}]}]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"read_idempotent"}]},{"E_lit":[{"L_string":" read-idempotent"}]},{"E_lit":[{"L_string":""}]}]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"write_idempotent"}]},{"E_lit":[{"L_string":" write-idempotent"}]},{"E_lit":[{"L_string":""}]}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" misaligned_fault:"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"misaligned_fault_str_forwards"},[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"misaligned_fault"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"reservability_str_forwards"},[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"reservability"}]}]]},{"E_if":[{"E_field":[{"E_id":[{"Id":"attr"}]},{"Id":"supports_cbo_zero"}]},{"E_lit":[{"L_string":" supports_cbo_zero"}]},{"E_lit":[{"L_string":""}]}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"PMA_Region"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"pma_region_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pma_region_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"PMA_Region"}]},{"P_id":[{"Id":"region"}]}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"base: "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_field":[{"E_id":[{"Id":"region"}]},{"Id":"base"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" size: "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_field":[{"E_id":[{"Id":"region"}]},{"Id":"size"}]}]]},{"E_app":[{"Id":"pma_attributes_to_str"},[{"E_field":[{"E_id":[{"Id":"region"}]},{"Id":"attributes"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"pma_attributes_to_str"},{"Id":"pma_region_to_str"}]]},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]},{"Id":"pma_regions"},{"E_list":[[{"E_struct":[[{"FE_fexp":[{"Id":"base"},{"E_lit":[{"L_bin":"0000000000000000000000000000000000000000000000000001000000000000"}]}]},{"FE_fexp":[{"Id":"size"},{"E_lit":[{"L_bin":"0000000000000000000000000000000000000000000000000001000000000000"}]}]},{"FE_fexp":[{"Id":"attributes"},{"E_struct":[[{"FE_fexp":[{"Id":"cacheable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"coherent"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"executable"},{"E_lit":["L_false"]}]},{"FE_fexp":[{"Id":"readable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"writable"},{"E_lit":["L_false"]}]},{"FE_fexp":[{"Id":"read_idempotent"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"write_idempotent"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"misaligned_fault"},{"E_id":[{"Id":"NoFault"}]}]},{"FE_fexp":[{"Id":"reservability"},{"E_id":[{"Id":"RsrvNone"}]}]},{"FE_fexp":[{"Id":"supports_cbo_zero"},{"E_lit":["L_false"]}]}]]}]},{"FE_fexp":[{"Id":"include_in_device_tree"},{"E_lit":["L_false"]}]}]]},{"E_struct":[[{"FE_fexp":[{"Id":"base"},{"E_lit":[{"L_bin":"0000000000000000000000000000000000000010000000000000000000000000"}]}]},{"FE_fexp":[{"Id":"size"},{"E_lit":[{"L_bin":"0000000000000000000000000000000000000010000000000000000000000000"}]}]},{"FE_fexp":[{"Id":"attributes"},{"E_struct":[[{"FE_fexp":[{"Id":"cacheable"},{"E_lit":["L_false"]}]},{"FE_fexp":[{"Id":"coherent"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"executable"},{"E_lit":["L_false"]}]},{"FE_fexp":[{"Id":"readable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"writable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"read_idempotent"},{"E_lit":["L_false"]}]},{"FE_fexp":[{"Id":"write_idempotent"},{"E_lit":["L_false"]}]},{"FE_fexp":[{"Id":"misaligned_fault"},{"E_id":[{"Id":"AlignmentFault"}]}]},{"FE_fexp":[{"Id":"reservability"},{"E_id":[{"Id":"RsrvNone"}]}]},{"FE_fexp":[{"Id":"supports_cbo_zero"},{"E_lit":["L_false"]}]}]]}]},{"FE_fexp":[{"Id":"include_in_device_tree"},{"E_lit":["L_false"]}]}]]},{"E_struct":[[{"FE_fexp":[{"Id":"base"},{"E_lit":[{"L_bin":"0000000000000000000000000000000010000000000000000000000000000000"}]}]},{"FE_fexp":[{"Id":"size"},{"E_lit":[{"L_bin":"0000000000000000000000000000000010000000000000000000000000000000"}]}]},{"FE_fexp":[{"Id":"attributes"},{"E_struct":[[{"FE_fexp":[{"Id":"cacheable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"coherent"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"executable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"readable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"writable"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"read_idempotent"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"write_idempotent"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"misaligned_fault"},{"E_id":[{"Id":"NoFault"}]}]},{"FE_fexp":[{"Id":"reservability"},{"E_id":[{"Id":"RsrvEventual"}]}]},{"FE_fexp":[{"Id":"supports_cbo_zero"},{"E_lit":["L_true"]}]}]]}]},{"FE_fexp":[{"Id":"include_in_device_tree"},{"E_lit":["L_true"]}]}]]}]]}]}},{"DEF_pragma":["file_end","sys/pma.sail"]},{"DEF_pragma":["file_start","sys/mem.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_aligned_paddr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_aligned_paddr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_app":[{"Id":"Physaddr"},[{"P_id":[{"Id":"addr"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"width"}]}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"addr"}]}]]},{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_aligned_vaddr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_aligned_vaddr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"virtaddr"}]},{"P_app":[{"Id":"Virtaddr"},[{"P_id":[{"Id":"addr"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"width"}]}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"addr"}]}]]},{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"is_aligned_addr"},[{"Id":"is_aligned_paddr"},{"Id":"is_aligned_vaddr"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"read_kind"}]}]}]]}]}]},{"Id":"read_kind_of_flags"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_kind_of_flags"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"aq"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"rl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]}]]},{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_false"]},{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Read_plain"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_false"]},{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Read_RISCV_acquire"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_true"]},{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Read_RISCV_strong_acquire"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_false"]},{"P_lit":["L_true"]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Read_RISCV_reserved"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_false"]},{"P_lit":["L_true"]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Read_RISCV_reserved_acquire"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_true"]},{"P_lit":["L_true"]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"Read_RISCV_reserved_strong_acquire"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_true"]},{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_true"]},{"P_lit":["L_true"]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"write_kind"}]}]}]},{"Id":"write_kind_of_flags"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_kind_of_flags"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"aq"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"rl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"con"}]}]}]]},{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_false"]},{"P_lit":["L_false"]}]]},{"E_id":[{"Id":"Write_plain"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_true"]},{"P_lit":["L_false"]}]]},{"E_id":[{"Id":"Write_RISCV_release"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_false"]},{"P_lit":["L_true"]}]]},{"E_id":[{"Id":"Write_RISCV_conditional"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_true"]},{"P_lit":["L_true"]}]]},{"E_id":[{"Id":"Write_RISCV_conditional_release"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_true"]},{"P_lit":["L_false"]}]]},{"E_id":[{"Id":"Write_RISCV_strong_release"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_true"]},{"P_lit":["L_true"]}]]},{"E_id":[{"Id":"Write_RISCV_conditional_strong_release"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_false"]},{"P_lit":["L_false"]}]]},{"E_throw":[{"E_app":[{"Id":"Error_not_implemented"},[{"E_lit":[{"L_string":"store.aq"}]}]]}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_true"]},{"P_lit":["L_false"]},{"P_lit":["L_true"]}]]},{"E_throw":[{"E_app":[{"Id":"Error_not_implemented"},[{"E_lit":[{"L_string":"sc.aq"}]}]]}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"phys_mem_read"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"phys_mem_read"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"t"}]}]},{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"aq"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"rl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"meta"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result"}]},{"E_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"mem_meta"}]}]]}]}]]},{"E_match":[{"E_app":[{"Id":"read_kind_of_flags"},[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rk"}]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"read_ram"},[{"E_id":[{"Id":"rk"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"meta"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]},{"E_block":[[{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"t"}]},{"E_id":[{"Id":"result"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Fetch_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Read"},[{"P_id":[{"Id":"Data"}]}]]},{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Load_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_app":[{"Id":"Some"},[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"m"}]}]]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"m"}]}]]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_id":[{"Id":"ExceptionType"}]}]}]},{"Id":"accessFaultFromAccessType"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"accessFaultFromAccessType"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"accTy"}]}]},{"E_match":[{"E_id":[{"Id":"accTy"}]},[{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"E_Fetch_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_id":[{"Id":"Data"}]}]]},{"E_app":[{"Id":"E_Load_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_id":[{"Id":"ExceptionType"}]}]}]},{"Id":"alignmentFaultFromAccessType"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"alignmentFaultFromAccessType"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"accTy"}]}]},{"E_match":[{"E_id":[{"Id":"accTy"}]},[{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"E_Fetch_Addr_Align"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_id":[{"Id":"Data"}]}]]},{"E_app":[{"Id":"E_Load_Addr_Align"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"E_SAMO_Addr_Align"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"pmaCheck"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pmaCheck"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"accTy"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res_or_con"}]}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"matching_pma"},[{"E_id":[{"Id":"pma_regions"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"accessFaultFromAccessType"},[{"E_id":[{"Id":"accTy"}]}]]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_struct":[[[{"Id":"attributes"},{"P_id":[{"Id":"attributes"}]}],[{"Id":"size"},{"P_wild":[]}],[{"Id":"include_in_device_tree"},{"P_wild":[]}],[{"Id":"base"},{"P_wild":[]}]],{"FP_no_wild":[]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"misaligned"}]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_aligned_paddr"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"misaligned_fault"}]},[{"Pat_when":[{"P_id":[{"Id":"AccessFault"}]},{"E_id":[{"Id":"misaligned"}]},{"E_return":[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"accessFaultFromAccessType"},[{"E_id":[{"Id":"accTy"}]}]]}]]}]}]},{"Pat_when":[{"P_id":[{"Id":"misaligned_fault"}]},{"E_id":[{"Id":"misaligned"}]},{"E_return":[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"alignmentFaultFromAccessType"},[{"E_id":[{"Id":"accTy"}]}]]}]]}]}]},{"Pat_exp":[{"P_wild":[]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"canAccess"}]}]},{"E_match":[{"E_id":[{"Id":"accTy"}]},[{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"executable"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"readable"}]},{"E_app":[{"Id":"not"},[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"res_or_con"}]},{"E_app":[{"Id":"eq_anything"},[{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"reservability"}]},{"E_id":[{"Id":"RsrvNone"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"writable"}]},{"E_app":[{"Id":"not"},[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"res_or_con"}]},{"E_app":[{"Id":"eq_anything"},[{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"reservability"}]},{"E_id":[{"Id":"RsrvNone"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"ReadWrite"},[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]}]]},{"E_app":[["And_Bool"],[{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"readable"}]},{"E_field":[{"E_id":[{"Id":"attributes"}]},{"Id":"writable"}]}]]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"get_config_print_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"canAccess"}]}]]}]]},{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"PMA check failed for "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_bits_str"},[{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"paddr"}]}]]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" PMA "}]},{"E_app":[{"Id":"pma_attributes_to_str"},[{"E_id":[{"Id":"attributes"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_id":[{"Id":"canAccess"}]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"accessFaultFromAccessType"},[{"E_id":[{"Id":"accTy"}]}]]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"ExceptionType"}]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"alignmentOrAccessFaultPriority"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"alignmentOrAccessFaultPriority"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"exc"}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"exc"}]},[{"Pat_exp":[{"P_app":[{"Id":"E_Fetch_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Fetch_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Addr_Align"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/mem.sail"}]},{"E_lit":[{"L_num":152}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Invalid exception: "}]},{"E_app":[{"Id":"exceptionType_to_str"},[{"E_id":[{"Id":"exc"}]}]]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"ExceptionType"}]},{"Typ_id":[{"Id":"ExceptionType"}]}],{"Typ_id":[{"Id":"ExceptionType"}]}]}]},{"Id":"highestPriorityAlignmentOrAccessFault"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"highestPriorityAlignmentOrAccessFault"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"l"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"r"}]}]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"alignmentOrAccessFaultPriority"},[{"E_id":[{"Id":"l"}]}]]},{"E_app":[{"Id":"alignmentOrAccessFaultPriority"},[{"E_id":[{"Id":"r"}]}]]}]]},{"E_id":[{"Id":"l"}]},{"E_id":[{"Id":"r"}]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"phys_access_check"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"phys_access_check"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"typ"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res_or_con"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]},{"P_id":[{"Id":"pmpError"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"sys_pmp_count"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"pmpCheck"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"priv"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]},{"P_id":[{"Id":"pmaError"}]}]},{"E_app":[{"Id":"pmaCheck"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"res_or_con"}]}]]}]},{"E_block":[[{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"pmpError"}]},{"E_id":[{"Id":"pmaError"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e0"}]}]]},{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e1"}]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"highestPriorityAlignmentOrAccessFault"},[{"E_id":[{"Id":"e0"}]},{"E_id":[{"Id":"e1"}]}]]}]]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"checked_mem_read"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"checked_mem_read"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"t"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"aq"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"rl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"meta"}]}]}]]},{"E_match":[{"E_app":[{"Id":"phys_access_check"},[{"E_id":[{"Id":"t"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"res"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Err"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"within_mmio_readable"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"MemoryOpResult_add_meta"},[{"E_app":[{"Id":"mmio_read"},[{"E_id":[{"Id":"t"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_id":[{"Id":"default_meta"}]}]]},{"E_app":[{"Id":"phys_mem_read"},[{"E_id":[{"Id":"t"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]},{"E_id":[{"Id":"meta"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_read"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_read_priv"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_read_meta"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_read_priv_meta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_read_priv_meta"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"typ"}]},{"P_id":[{"Id":"priv"}]},{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"res"}]},{"P_id":[{"Id":"meta"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"MemoryOpResult"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"mem_meta"}]}]]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"res"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_aligned_paddr"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_Load_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]},{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_true"]},{"P_lit":["L_false"]}]]},{"E_throw":[{"E_app":[{"Id":"Error_not_implemented"},[{"E_lit":[{"L_string":"load.rl"}]}]]}]}]},{"Pat_exp":[{"P_tuple":[[{"P_lit":["L_false"]},{"P_lit":["L_true"]},{"P_lit":["L_true"]}]]},{"E_throw":[{"E_app":[{"Id":"Error_not_implemented"},[{"E_lit":[{"L_string":"lr.rl"}]}]]}]}]},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"checked_mem_read"},[{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]},{"E_id":[{"Id":"meta"}]}]]}]}]]}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"result"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"value"}]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"mem_read_callback"},[{"E_app":[{"Id":"accessType_to_str"},[{"E_id":[{"Id":"typ"}]}]]},{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"paddr"}]}]]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"value"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"mem_exception_callback"},[{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"paddr"}]}]]},{"E_app":[{"Id":"exceptionType_bits_forwards"},[{"E_id":[{"Id":"e"}]}]]}]]}]}]]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_read_meta"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"typ"}]},{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"res"}]},{"P_id":[{"Id":"meta"}]}]]},{"E_app":[{"Id":"mem_read_priv_meta"},[{"E_id":[{"Id":"typ"}]},{"E_app":[{"Id":"effectivePrivilege"},[{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"mstatus"}]},{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]},{"E_id":[{"Id":"meta"}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_read_priv"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"typ"}]},{"P_id":[{"Id":"priv"}]},{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"res"}]}]]},{"E_app":[{"Id":"MemoryOpResult_drop_meta"},[{"E_app":[{"Id":"mem_read_priv_meta"},[{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]},{"E_lit":["L_false"]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_read"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"typ"}]},{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rel"}]},{"P_id":[{"Id":"res"}]}]]},{"E_app":[{"Id":"mem_read_priv"},[{"E_id":[{"Id":"typ"}]},{"E_app":[{"Id":"effectivePrivilege"},[{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"mstatus"}]},{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rel"}]},{"E_id":[{"Id":"res"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_write_ea"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_write_ea"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"addr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"con"}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_aligned_paddr"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"write_ram_ea"},[{"E_app":[{"Id":"write_kind_of_flags"},[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]},{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"write_kind"}]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"phys_mem_write"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"phys_mem_write"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"write_kind"}]},{"P_id":[{"Id":"wk"}]}]},{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"P_id":[{"Id":"data"}]}]},{"P_typ":[{"Typ_id":[{"Id":"mem_meta"}]},{"P_id":[{"Id":"meta"}]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"write_ram"},[{"E_id":[{"Id":"wk"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]},{"E_id":[{"Id":"meta"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"checked_mem_write"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"checked_mem_write"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"P_id":[{"Id":"data"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"typ"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"mem_meta"}]},{"P_id":[{"Id":"meta"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"aq"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"rl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"con"}]}]}]]},{"E_match":[{"E_app":[{"Id":"phys_access_check"},[{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"con"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Err"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"within_mmio_writable"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"mmio_write"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"wk"}]},{"E_app":[{"Id":"write_kind_of_flags"},[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"phys_mem_write"},[{"E_id":[{"Id":"wk"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]},{"E_id":[{"Id":"meta"}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_write_value_priv_meta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_write_value_priv_meta"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"typ"}]},{"P_id":[{"Id":"priv"}]},{"P_id":[{"Id":"meta"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"con"}]}]]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_aligned_paddr"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"E_SAMO_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result"}]},{"E_app":[{"Id":"checked_mem_write"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"value"}]},{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"meta"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"result"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_app":[{"Id":"mem_write_callback"},[{"E_app":[{"Id":"accessType_to_str"},[{"E_id":[{"Id":"typ"}]}]]},{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"paddr"}]}]]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"value"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"mem_exception_callback"},[{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"paddr"}]}]]},{"E_app":[{"Id":"exceptionType_bits_forwards"},[{"E_id":[{"Id":"e"}]}]]}]]}]}]]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_write_value_priv"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_write_value_priv"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"priv"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"con"}]}]]},{"E_app":[{"Id":"mem_write_value_priv_meta"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"default_write_acc"}]}]]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"default_meta"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"unit"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_write_value_meta"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_write_value_meta"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"ext_acc"}]},{"P_id":[{"Id":"meta"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"con"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"typ"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"ext_acc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ep"}]},{"E_app":[{"Id":"effectivePrivilege"},[{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"mstatus"}]},{"E_id":[{"Id":"cur_privilege"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"mem_write_value_priv_meta"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"value"}]},{"E_id":[{"Id":"typ"}]},{"E_id":[{"Id":"ep"}]},{"E_id":[{"Id":"meta"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"max_mem_access"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"mem_write_value"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mem_write_value"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"value"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"con"}]}]]},{"E_block":[[{"E_app":[{"Id":"mem_write_value_meta"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"value"}]},{"E_id":[{"Id":"default_write_acc"}]},{"E_id":[{"Id":"default_meta"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"con"}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","sys/mem.sail"]},{"DEF_pragma":["file_start","sys/inst_retire.sail"]},{"DEF_type":{"TD_variant":[{"Id":"ExecutionResult"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"Retire_Success"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"WaitReason"}]},{"Id":"Enter_Wait"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"Illegal_Instruction"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"ctl_result"}]},{"Typ_id":[{"Id":"xlenbits"}]}]]},{"Id":"Trap"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_id":[{"Id":"ExceptionType"}]}]]},{"Id":"Memory_Exception"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"Ext_CSR_Check_Failure"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ext_control_addr_error"}]},{"Id":"Ext_ControlAddr_Check_Failure"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ext_data_addr_error"}]},{"Id":"Ext_DataAddr_Check_Failure"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"Ext_XRET_Priv_Failure"}]}],false]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"ExecutionResult"}]},{"P_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]}]}},{"DEF_pragma":["file_end","sys/inst_retire.sail"]},{"DEF_pragma":["file_start","sys/vmem_pte.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"pte_flags_bits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"pte_ext_bits"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}]}]}},{"DEF_type":{"TD_record":[{"Id":"PTE_Ext"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"undefined_PTE_Ext"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_PTE_Ext"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"Mk_PTE_Ext"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_PTE_Ext"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}]}]},{"Id":"_get_PTE_Ext_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Ext_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"_update_PTE_Ext_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Ext_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_PTE_Ext_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Ext"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Ext_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Ext_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Ext_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_PTE_Ext_bits"},{"Id":"_set_PTE_Ext_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Ext_N"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Ext_N"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"_update_PTE_Ext_N"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Ext_N"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_N"},[{"Id":"_update_PTE_Ext_N"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Ext"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Ext_N"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Ext_N"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Ext_N"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_N"},[{"Id":"_get_PTE_Ext_N"},{"Id":"_set_PTE_Ext_N"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_PTE_Ext_PBMT"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Ext_PBMT"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"_update_PTE_Ext_PBMT"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Ext_PBMT"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_PBMT"},[{"Id":"_update_PTE_Ext_PBMT"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Ext"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Ext_PBMT"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Ext_PBMT"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Ext_PBMT"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_PBMT"},[{"Id":"_get_PTE_Ext_PBMT"},{"Id":"_set_PTE_Ext_PBMT"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"_get_PTE_Ext_RSW_60t59b"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Ext_RSW_60t59b"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"_update_PTE_Ext_RSW_60t59b"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Ext_RSW_60t59b"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_RSW_60t59b"},[{"Id":"_update_PTE_Ext_RSW_60t59b"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Ext"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Ext_RSW_60t59b"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Ext_RSW_60t59b"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Ext_RSW_60t59b"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_RSW_60t59b"},[{"Id":"_get_PTE_Ext_RSW_60t59b"},{"Id":"_set_PTE_Ext_RSW_60t59b"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"_get_PTE_Ext_reserved"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Ext_reserved"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Ext"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"_update_PTE_Ext_reserved"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Ext_reserved"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_reserved"},[{"Id":"_update_PTE_Ext_reserved"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Ext"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Ext_reserved"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Ext_reserved"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Ext_reserved"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_reserved"},[{"Id":"_get_PTE_Ext_reserved"},{"Id":"_set_PTE_Ext_reserved"}]]},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"pte_ext_bits"}]},{"P_id":[{"Id":"default_sv32_ext_pte"}]}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'pte_size"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'pte_size"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'pte_size"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'pte_size"}]}]}]]}],{"Typ_id":[{"Id":"PTE_Ext"}]}]}]},{"Id":"ext_bits_of_PTE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_bits_of_PTE"},{"Pat_exp":[{"P_id":[{"Id":"pte"}]},{"E_app":[{"Id":"Mk_PTE_Ext"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pte"}]}]]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"pte"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":54}]}]]},{"E_id":[{"Id":"default_sv32_ext_pte"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'pte_size"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'pte_size"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'pte_size"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'pte_size"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'pte_size"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]}]}]},{"Id":"PPN_of_PTE"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"PPN_of_PTE"},{"Pat_exp":[{"P_id":[{"Id":"pte"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"pte"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"pte"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":10}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"pte"}]},{"E_lit":[{"L_num":53}]},{"E_lit":[{"L_num":10}]}]]}]}]}]}]]}},{"DEF_type":{"TD_record":[{"Id":"PTE_Flags"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"undefined_PTE_Flags"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_PTE_Flags"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"Mk_PTE_Flags"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_PTE_Flags"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]},{"Id":"_get_PTE_Flags_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_PTE_Flags_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_PTE_Flags_bits"},{"Id":"_set_PTE_Flags_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_A"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_A"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_A"},[{"Id":"_update_PTE_Flags_A"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_A"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_A"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_A"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_A"},[{"Id":"_get_PTE_Flags_A"},{"Id":"_set_PTE_Flags_A"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_D"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_D"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_D"},[{"Id":"_update_PTE_Flags_D"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_D"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_D"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_D"},[{"Id":"_get_PTE_Flags_D"},{"Id":"_set_PTE_Flags_D"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_G"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_G"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_G"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_G"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_G"},[{"Id":"_update_PTE_Flags_G"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_G"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_G"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_G"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_G"},[{"Id":"_get_PTE_Flags_G"},{"Id":"_set_PTE_Flags_G"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_R"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_R"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_R"},[{"Id":"_update_PTE_Flags_R"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_R"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_R"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_R"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_R"},[{"Id":"_get_PTE_Flags_R"},{"Id":"_set_PTE_Flags_R"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_U"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_U"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_U"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_U"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_U"},[{"Id":"_update_PTE_Flags_U"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_U"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_U"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_U"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_U"},[{"Id":"_get_PTE_Flags_U"},{"Id":"_set_PTE_Flags_U"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_V"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_V"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_V"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_V"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_V"},[{"Id":"_update_PTE_Flags_V"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_V"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_V"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_V"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_V"},[{"Id":"_get_PTE_Flags_V"},{"Id":"_set_PTE_Flags_V"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_W"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_W"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_W"},[{"Id":"_update_PTE_Flags_W"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_W"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_W"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_W"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_W"},[{"Id":"_get_PTE_Flags_W"},{"Id":"_set_PTE_Flags_W"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_PTE_Flags_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_PTE_Flags_X"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"PTE_Flags"}]}]}]},{"Id":"_update_PTE_Flags_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_PTE_Flags_X"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_X"},[{"Id":"_update_PTE_Flags_X"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_PTE_Flags_X"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_PTE_Flags_X"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_PTE_Flags_X"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_X"},[{"Id":"_get_PTE_Flags_X"},{"Id":"_set_PTE_Flags_X"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"pte_is_non_leaf"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pte_is_non_leaf"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]},{"P_id":[{"Id":"pte_flags"}]}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_X"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_W"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_R"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_id":[{"Id":"PTE_Ext"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"pte_is_invalid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pte_is_invalid"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]},{"P_id":[{"Id":"pte_flags"}]}]},{"P_typ":[{"Typ_id":[{"Id":"PTE_Ext"}]},{"P_id":[{"Id":"pte_ext"}]}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_V"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_W"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_R"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_PTE_Ext_N"},[{"E_id":[{"Id":"pte_ext"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svnapot"}]}]]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_PTE_Ext_PBMT"},[{"E_id":[{"Id":"pte_ext"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":2}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svpbmt"}]}]]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_PTE_Ext_RSW_60t59b"},[{"E_id":[{"Id":"pte_ext"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":2}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svrsw60t59b"}]}]]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_PTE_Ext_reserved"},[{"E_id":[{"Id":"pte_ext"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_type":{"TD_variant":[{"Id":"PTE_Check"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"ext_ptw"}]},{"Id":"PTE_Check_Success"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"ext_ptw"}]},{"Typ_id":[{"Id":"ext_ptw_fail"}]}]]},{"Id":"PTE_Check_Failure"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"PTE_Flags"}]},{"Typ_id":[{"Id":"PTE_Ext"}]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"PTE_Check"}]}]}]},{"Id":"check_PTE_permission"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_PTE_permission"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"ac"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"mxr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"do_sum"}]}]},{"P_typ":[{"Typ_id":[{"Id":"PTE_Flags"}]},{"P_id":[{"Id":"pte_flags"}]}]},{"P_typ":[{"Typ_id":[{"Id":"PTE_Ext"}]},{"P_id":[{"Id":"ext"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ext_ptw"}]},{"P_id":[{"Id":"ext_ptw"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_U"}]},{"E_app":[{"Id":"bits_to_bool"},[{"E_app":[{"Id":"_get_PTE_Flags_U"},[{"E_id":[{"Id":"pte_flags"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_R"}]},{"E_app":[{"Id":"bits_to_bool"},[{"E_app":[{"Id":"_get_PTE_Flags_R"},[{"E_id":[{"Id":"pte_flags"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_W"}]},{"E_app":[{"Id":"bits_to_bool"},[{"E_app":[{"Id":"_get_PTE_Flags_W"},[{"E_id":[{"Id":"pte_flags"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_X"}]},{"E_app":[{"Id":"bits_to_bool"},[{"E_app":[{"Id":"_get_PTE_Flags_X"},[{"E_id":[{"Id":"pte_flags"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"access_ok"}]}]},{"E_match":[{"E_id":[{"Id":"ac"}]},[{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"pte_R"}]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"pte_X"}]},{"E_id":[{"Id":"mxr"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"E_id":[{"Id":"pte_W"}]}]},{"Pat_exp":[{"P_app":[{"Id":"ReadWrite"},[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"pte_W"}]},{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"pte_R"}]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"pte_X"}]},{"E_id":[{"Id":"mxr"}]}]]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_wild":[]}]]},{"E_id":[{"Id":"pte_X"}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"priv_ok"}]}]},{"E_match":[{"E_id":[{"Id":"priv"}]},[{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_id":[{"Id":"pte_U"}]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"pte_U"}]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"do_sum"}]},{"E_app":[{"Id":"is_load_store"},[{"E_id":[{"Id":"ac"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/vmem_pte.sail"}]},{"E_lit":[{"L_num":133}]},{"E_lit":[{"L_string":"m-mode mem perm check"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/vmem_pte.sail"}]},{"E_lit":[{"L_num":134}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/vmem_pte.sail"}]},{"E_lit":[{"L_num":135}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"access_ok"}]},{"E_id":[{"Id":"priv_ok"}]}]]},{"E_app":[{"Id":"PTE_Check_Success"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"PTE_Check_Failure"},[{"E_tuple":[[{"E_lit":["L_unit"]},{"E_lit":["L_unit"]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'pte_size"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'pte_size"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'pte_size"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'pte_size"}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'pte_size"}]}]}]]}]}]]}]}]},{"Id":"update_PTE_Bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"update_PTE_Bits"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'pte_size"}]}]}]]},{"P_id":[{"Id":"pte"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"a"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_flags"}]},{"E_app":[{"Id":"Mk_PTE_Flags"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"pte"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"update_d"}]}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_D"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_match":[{"E_id":[{"Id":"a"}]},[{"Pat_exp":[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"ReadWrite"},[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]}]]},{"E_lit":["L_true"]}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"update_a"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_A"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"update_d"}]},{"E_id":[{"Id":"update_a"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_flags"}]},{"E_app":[{"Id":"_update_PTE_Flags_D"},[{"E_app":[{"Id":"_update_PTE_Flags_A"},[{"E_id":[{"Id":"pte_flags"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_if":[{"E_id":[{"Id":"update_d"}]},{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"_get_PTE_Flags_D"},[{"E_id":[{"Id":"pte_flags"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"update_subrange_bits"},[{"E_id":[{"Id":"pte"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]},{"E_field":[{"E_id":[{"Id":"pte_flags"}]},{"Id":"bits"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","sys/vmem_pte.sail"]},{"DEF_pragma":["file_start","sys/vmem_ptw.sail"]},{"DEF_type":{"TD_variant":[{"Id":"PTW_Error"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"PTW_Invalid_Addr"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"PTW_Access"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"PTW_Invalid_PTE"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"PTW_No_Permission"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"PTW_Misaligned"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"PTW_PTE_Update"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ext_ptw_error"}]},{"Id":"PTW_Ext_Error"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"PTW_Error"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"ptw_error_to_str"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ptw_error_to_str"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"PTW_Error"}]},{"P_id":[{"Id":"e"}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"e"}]},[{"Pat_exp":[{"P_app":[{"Id":"PTW_Invalid_Addr"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"invalid-source-addr"}]}]},{"Pat_exp":[{"P_app":[{"Id":"PTW_Access"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"mem-access-error"}]}]},{"Pat_exp":[{"P_app":[{"Id":"PTW_Invalid_PTE"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"invalid-pte"}]}]},{"Pat_exp":[{"P_app":[{"Id":"PTW_No_Permission"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"no-permission"}]}]},{"Pat_exp":[{"P_app":[{"Id":"PTW_Misaligned"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"misaligned-superpage"}]}]},{"Pat_exp":[{"P_app":[{"Id":"PTW_PTE_Update"},[{"P_lit":["L_unit"]}]]},{"E_lit":[{"L_string":"pte-update-needed"}]}]},{"Pat_exp":[{"P_app":[{"Id":"PTW_Ext_Error"},[{"P_id":[{"Id":"e"}]}]]},{"E_lit":[{"L_string":"extension-error"}]}]}]]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"ptw_error_to_str"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"PTW_Error"}]}]}]},{"Id":"ext_get_ptw_error"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_get_ptw_error"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ext_ptw_fail"}]},{"P_id":[{"Id":"eptwf"}]}]},{"E_app":[{"Id":"PTW_No_Permission"},[{"E_lit":["L_unit"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"PTW_Error"}]}],{"Typ_id":[{"Id":"ExceptionType"}]}]}]},{"Id":"translationException"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"translationException"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"a"}]}]},{"P_typ":[{"Typ_id":[{"Id":"PTW_Error"}]},{"P_id":[{"Id":"f"}]}]}]]},{"E_block":[[{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"f"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_app":[{"Id":"PTW_Ext_Error"},[{"P_id":[{"Id":"e"}]}]]}]]},{"E_app":[{"Id":"E_Extension"},[{"E_app":[{"Id":"ext_translate_exception"},[{"E_id":[{"Id":"e"}]}]]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"ReadWrite"},[{"P_wild":[]}]]},{"P_app":[{"Id":"PTW_Access"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"ReadWrite"},[{"P_wild":[]}]]},{"P_wild":[]}]]},{"E_app":[{"Id":"E_SAMO_Page_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"P_app":[{"Id":"PTW_Access"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"E_Load_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Read"},[{"P_wild":[]}]]},{"P_wild":[]}]]},{"E_app":[{"Id":"E_Load_Page_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"P_app":[{"Id":"PTW_Access"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Write"},[{"P_wild":[]}]]},{"P_wild":[]}]]},{"E_app":[{"Id":"E_SAMO_Page_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"P_app":[{"Id":"PTW_Access"},[{"P_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"E_Fetch_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"InstructionFetch"},[{"P_lit":["L_unit"]}]]},{"P_wild":[]}]]},{"E_app":[{"Id":"E_Fetch_Page_Fault"},[{"E_lit":["L_unit"]}]]}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","sys/vmem_ptw.sail"]},{"DEF_pragma":["file_start","sys/vmem_tlb.sail"]},{"DEF_type":{"TD_abbrev":[{"Id":"tlb_vpn_bits"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[57]},{"Nexp_id":[{"Id":"pagesize_bits"}]}]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"tlb_vpn_bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":57}]},{"E_lit":[{"L_num":12}]}]]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"tlb_ppn_bits"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_constant":[44]}]}]}},{"DEF_let":{"LB_val":[{"P_id":[{"Id":"tlb_ppn_bits"}]},{"E_lit":[{"L_num":44}]}]}},{"DEF_type":{"TD_record":[{"Id":"TLB_Entry"},{"TypQ_tq":[[]]},[[{"Typ_id":[{"Id":"asidbits"}]},{"Id":"asid"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"global"}],[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"tlb_vpn_bits"}]}]}]]},{"Id":"vpn"}],[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"tlb_vpn_bits"}]}]}]]},{"Id":"levelMask"}],[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"tlb_ppn_bits"}]}]}]]},{"Id":"ppn"}],[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"pte"}],[{"Typ_id":[{"Id":"physaddr"}]},{"Id":"pteAddr"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[4,8]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"TLB_Entry"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[8]}]}]}]]}]}]},{"Id":"tlb_get_pte"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tlb_get_pte"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"pte_size"}]}]},{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"ent"}]}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"pte"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"pte_size"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[4,8]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"TLB_Entry"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_id":[{"Id":"TLB_Entry"}]}]}]},{"Id":"tlb_set_pte"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tlb_set_pte"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"ent"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[8]}]}]}]]},{"P_id":[{"Id":"pte"}]}]}]]},{"E_struct_update":[{"E_id":[{"Id":"ent"}]},[{"FE_fexp":[{"Id":"pte"},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pte"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_id":[{"Id":"TLB_Entry"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]}]}]},{"Id":"tlb_get_ppn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tlb_get_ppn"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"ent"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vpn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"vpn"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"vpn"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"levelMask"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"levelMask"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"ppn"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"ppn"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"trunc"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":44}]}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"vpn"}]},{"E_id":[{"Id":"levelMask"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"num_tlb_entries"},{"TypQ_no_forall":[]},{"A_nexp":[{"Nexp_constant":[64]}]}]}},{"DEF_type":{"TD_abbrev":[{"Id":"tlb_index_range"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_id":[{"Id":"num_tlb_entries"}]},{"Nexp_constant":[1]}]}]}]]}]}]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_id":[{"Id":"num_tlb_entries"}]}]},{"A_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]}]}]]}]}]]},{"Id":"tlb"},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]}]]}]}]},{"Id":"tlb_hash"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"tlb_hash"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_mode"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vpn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"vpn"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset_TLB"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset_TLB"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_assign":[{"LE_id":[{"Id":"tlb"}]},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]}]]},{"Typ_id":[{"Id":"TLB_Entry"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_TLB"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_TLB"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"tlb_index_range"}]},{"P_id":[{"Id":"index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"entry"}]}]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"tlb"}]},{"E_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"entry"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"TLB_Entry"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[57]},{"Nexp_constant":[12]}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"match_TLB_Entry"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"match_TLB_Entry"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"ent"}]}]},{"P_typ":[{"Typ_id":[{"Id":"asidbits"}]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_id":[{"Id":"tlb_vpn_bits"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"global"}]},{"E_app":[{"Id":"eq_bits"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"asid"}]},{"E_id":[{"Id":"asid"}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"vpn"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"vpn"}]},{"E_app":[{"Id":"not_vec"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"levelMask"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"TLB_Entry"}]},{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]}]}]]},{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"flush_TLB_Entry"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"flush_TLB_Entry"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"ent"}]}]},{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"asidbits"}]}]}]]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]]},{"P_id":[{"Id":"vaddr"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"asid_matches"}]}]},{"E_match":[{"E_id":[{"Id":"asid"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"asid"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"asid"}]},{"E_id":[{"Id":"asid"}]}]]},{"E_app":[{"Id":"not"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"global"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"addr_matches"}]}]},{"E_match":[{"E_id":[{"Id":"vaddr"}]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"vaddr"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"vaddr"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"vaddr"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"eq_bits"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"vpn"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"vaddr"}]},{"E_lit":[{"L_num":56}]},{"E_id":[{"Id":"pagesize_bits"}]}]]},{"E_app":[{"Id":"not_vec"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"levelMask"}]}]]}]]}]]}]]}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"asid_matches"}]},{"E_id":[{"Id":"addr_matches"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]}]]},{"Typ_id":[{"Id":"TLB_Entry"}]}]]}]}]]}]}]},{"Id":"lookup_TLB"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lookup_TLB"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"asidbits"}]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vpn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"tlb_hash"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_id":[{"Id":"vpn"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"tlb"}]},{"E_id":[{"Id":"index"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"entry"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"match_TLB_Entry"},[{"E_id":[{"Id":"entry"}]},{"E_id":[{"Id":"asid"}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":57}]},{"E_lit":[{"L_num":12}]}]]},{"E_id":[{"Id":"vpn"}]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_tuple":[[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"entry"}]}]]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[32]},{"Nexp_constant":[64]}]}]}]]},{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[1]},{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[39]}]}]},{"Nexp_constant":[2]},{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[48]}]}]},{"Nexp_constant":[3]},{"Nexp_constant":[4]}]}]}]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"add_to_TLB"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"add_to_TLB"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"asidbits"}]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vpn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]},{"P_typ":[{"Typ_app":[{"Id":"ppn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"ppn"}]}]},{"P_typ":[{"Typ_app":[{"Id":"pte_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"pte"}]}]},{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"pteAddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"level_range"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"level"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"global"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"level"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"levelMask"}]},{"E_app":[{"Id":"ones"},[{"E_id":[{"Id":"shift"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vpn"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"vpn"}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":12}]}]]},{"E_id":[{"Id":"levelMask"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":44}]}]},{"E_id":[{"Id":"levelMask"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"entry"}]}]},{"E_struct":[[{"FE_fexp":[{"Id":"asid"},{"E_id":[{"Id":"asid"}]}]},{"FE_fexp":[{"Id":"global"},{"E_id":[{"Id":"global"}]}]},{"FE_fexp":[{"Id":"pte"},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"pte"}]}]]}]},{"FE_fexp":[{"Id":"pteAddr"},{"E_id":[{"Id":"pteAddr"}]}]},{"FE_fexp":[{"Id":"levelMask"},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":57}]},{"E_lit":[{"L_num":12}]}]]},{"E_id":[{"Id":"levelMask"}]}]]}]},{"FE_fexp":[{"Id":"vpn"},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":57}]},{"E_lit":[{"L_num":12}]}]]},{"E_id":[{"Id":"vpn"}]}]]}]},{"FE_fexp":[{"Id":"ppn"},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":44}]},{"E_id":[{"Id":"ppn"}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"tlb_hash"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_id":[{"Id":"vpn"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"tlb"}]},{"E_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"entry"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]}]}]]},{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"flush_TLB"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"flush_TLB"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"asidbits"}]}]}]]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]]},{"P_id":[{"Id":"addr"}]}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"tlb"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_match":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"tlb"}]},{"E_id":[{"Id":"i"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"entry"}]}]]},{"E_if":[{"E_app":[{"Id":"flush_TLB_Entry"},[{"E_id":[{"Id":"entry"}]},{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"addr"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"tlb"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]},{"E_lit":["L_unit"]}]}]}]]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","sys/vmem_tlb.sail"]},{"DEF_pragma":["file_start","sys/vmem.sail"]},{"DEF_type":{"TD_record":[{"Id":"PTW_Output"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},[[{"Typ_app":[{"Id":"ppn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Id":"ppn"}],[{"Typ_app":[{"Id":"pte_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Id":"pte"}],[{"Typ_id":[{"Id":"physaddr"}]},{"Id":"pteAddr"}],[{"Typ_app":[{"Id":"level_range"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Id":"level"}],[{"Typ_id":[{"Id":"bool"}]},{"Id":"global"}]],false]}},{"DEF_type":{"TD_abbrev":[{"Id":"PTW_Result"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"PTW_Output"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_id":[{"Id":"ext_ptw"}]}]]}]},{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"PTW_Error"}]},{"Typ_id":[{"Id":"ext_ptw"}]}]]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[4,8]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[8]}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"write_pte"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_pte"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"pte_size"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[8]}]}]}]]},{"P_id":[{"Id":"pte"}]}]}]]},{"E_app":[{"Id":"mem_write_value_priv"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"pte_size"}]},{"E_id":[{"Id":"pte"}]},{"E_id":[{"Id":"Supervisor"}]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[4,8]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]}]}]},{"Id":"read_pte"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_pte"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"physaddr"}]},{"P_id":[{"Id":"paddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"pte_size"}]}]}]]},{"E_app":[{"Id":"mem_read_priv"},[{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_id":[{"Id":"Supervisor"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"pte_size"}]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[1]},{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[39]}]}]},{"Nexp_constant":[2]},{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[48]}]}]},{"Nexp_constant":[3]},{"Nexp_constant":[4]}]}]}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"PTW_Output"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"PTW_Error"}]},{"Typ_id":[{"Id":"unit"}]}]]}]}]]}]}]},{"Id":"pt_walk"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"pt_walk"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"sv_width"}]},{"P_id":[{"Id":"vpn"}]},{"P_id":[{"Id":"ac"}]},{"P_id":[{"Id":"priv"}]},{"P_id":[{"Id":"mxr"}]},{"P_id":[{"Id":"do_sum"}]},{"P_id":[{"Id":"pt_base"}]},{"P_id":[{"Id":"level"}]},{"P_id":[{"Id":"global"}]},{"P_id":[{"Id":"ext_ptw"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"vpn_i_size"}]},{"TP_var":[{"Var":"'vpn_i_size"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vpn_i"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"vpn"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"level"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"vpn_i_size"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"level"}]},{"E_id":[{"Id":"vpn_i_size"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"log_pte_size_bytes"}]},{"TP_var":[{"Var":"'log_pte_size_bytes"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":3}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_addr"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"pt_base"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"vpn_i"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"log_pte_size_bytes"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"sv_width"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"sys/vmem.sail:103.36-103.37"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_addr"}]},{"E_app":[{"Id":"Physaddr"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_id":[{"Id":"pte_addr"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"read_pte"},[{"E_id":[{"Id":"pte_addr"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"log_pte_size_bytes"}]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_wild":[]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"PTW_Access"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"pte"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_flags"}]},{"E_app":[{"Id":"Mk_PTE_Flags"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"pte"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_ext"}]},{"E_app":[{"Id":"ext_bits_of_PTE"},[{"E_id":[{"Id":"pte"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"pte_is_invalid"},[{"E_id":[{"Id":"pte_flags"}]},{"E_id":[{"Id":"pte_ext"}]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"PTW_Invalid_PTE"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"PPN_of_PTE"},[{"E_id":[{"Id":"pte"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"global"}]},{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"global"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_PTE_Flags_G"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"pte_is_non_leaf"},[{"E_id":[{"Id":"pte_flags"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"level"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"pt_walk"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"vpn"}]},{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"mxr"}]},{"E_id":[{"Id":"do_sum"}]},{"E_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"level"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"global"}]},{"E_id":[{"Id":"ext_ptw"}]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"PTW_Invalid_PTE"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ppn_size_bits"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"level"}]},{"E_lit":[{"L_num":0}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"low_bits"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"ppn_size_bits"}]},{"E_id":[{"Id":"level"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"low_bits"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"level"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"PTW_Misaligned"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_match":[{"E_app":[{"Id":"check_PTE_permission"},[{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"mxr"}]},{"E_id":[{"Id":"do_sum"}]},{"E_id":[{"Id":"pte_flags"}]},{"E_id":[{"Id":"pte_ext"}]},{"E_id":[{"Id":"ext_ptw"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"PTE_Check_Failure"},[{"P_tuple":[[{"P_id":[{"Id":"ext_ptw"}]},{"P_id":[{"Id":"ext_ptw_fail"}]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"ext_get_ptw_error"},[{"E_id":[{"Id":"ext_ptw_fail"}]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"PTE_Check_Success"},[{"P_id":[{"Id":"ext_ptw"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ppn"}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"level"}]},{"E_lit":[{"L_num":0}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"low_bits"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"ppn_size_bits"}]},{"E_id":[{"Id":"level"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"ppn"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"low_bits"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"vpn"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"low_bits"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]},{"E_block":[[{"E_id":[{"Id":"ppn"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_struct":[[{"FE_fexp":[{"Id":"ppn"},{"E_id":[{"Id":"ppn"}]}]},{"FE_fexp":[{"Id":"pte"},{"E_id":[{"Id":"pte"}]}]},{"FE_fexp":[{"Id":"pteAddr"},{"E_id":[{"Id":"pte_addr"}]}]},{"FE_fexp":[{"Id":"level"},{"E_id":[{"Id":"level"}]}]},{"FE_fexp":[{"Id":"global"},{"E_id":[{"Id":"global"}]}]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"satp"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]}]}]},{"Id":"satp_to_asid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"satp_to_asid"},{"Pat_exp":[{"P_id":[{"Id":"satp_val"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"satp_val"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"_get_Satp32_Asid"},[{"E_app":[{"Id":"Mk_Satp32"},[{"E_id":[{"Id":"satp_val"}]}]]}]]},{"E_app":[{"Id":"_get_Satp64_Asid"},[{"E_app":[{"Id":"Mk_Satp64"},[{"E_id":[{"Id":"satp_val"}]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]}]}]},{"Id":"satp_to_ppn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"satp_to_ppn"},{"Pat_exp":[{"P_id":[{"Id":"satp_val"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"satp_val"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"_get_Satp32_PPN"},[{"E_app":[{"Id":"Mk_Satp32"},[{"E_id":[{"Id":"satp_val"}]}]]}]]},{"E_app":[{"Id":"_get_Satp64_PPN"},[{"E_app":[{"Id":"Mk_Satp64"},[{"E_id":[{"Id":"satp_val"}]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"SATPMode"}]}]}]},{"Id":"translationMode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"translationMode"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_id":[{"Id":"Bare"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"arch"}]},{"E_app":[{"Id":"architecture"},[{"E_id":[{"Id":"Supervisor"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"satp_mode"}]},{"P_id":[{"Id":"mbits"}]}]},{"E_match":[{"E_id":[{"Id":"arch"}]},[{"Pat_exp":[{"P_id":[{"Id":"RV64"}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"sys/vmem.sail:192.25-192.26"}]}]},{"E_app":[{"Id":"_get_Satp64_Mode"},[{"E_app":[{"Id":"Mk_Satp64"},[{"E_id":[{"Id":"satp"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"RV32"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"000"}]},{"E_app":[{"Id":"_get_Satp32_Mode"},[{"E_app":[{"Id":"Mk_Satp32"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"satp"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"RV128"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/vmem.sail"}]},{"E_lit":[{"L_num":196}]},{"E_lit":[{"L_string":"RV128 not supported"}]}]]}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"satpMode_of_bits"},[{"E_id":[{"Id":"arch"}]},{"E_id":[{"Id":"mbits"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"m"}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/vmem.sail"}]},{"E_lit":[{"L_num":201}]},{"E_lit":[{"L_string":"invalid translation mode in satp"}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"TR_Result"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'paddr"}]}]},{"QI_id":[{"KOpt_kind":["K_type",{"Var":"'failure"}]}]}]]},{"A_typ":[{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_var":[{"Var":"'paddr"}]},{"Typ_id":[{"Id":"ext_ptw"}]}]]}]},{"A_typ":[{"Typ_tuple":[[{"Typ_var":[{"Var":"'failure"}]},{"Typ_id":[{"Id":"ext_ptw"}]}]]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"unit"}]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_constant":[64]},{"Nexp_constant":[1]}]}]}]]},{"Typ_id":[{"Id":"TLB_Entry"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"PTW_Error"}]},{"Typ_id":[{"Id":"unit"}]}]]}]}]]}]}]},{"Id":"translate_TLB_hit"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"translate_TLB_hit"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"asidbits"}]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vpn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"ac"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"mxr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"do_sum"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ext_ptw"}]},{"P_id":[{"Id":"ext_ptw"}]}]},{"P_typ":[{"Typ_id":[{"Id":"tlb_index_range"}]},{"P_id":[{"Id":"tlb_index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"TLB_Entry"}]},{"P_id":[{"Id":"ent"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_size"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"sv_width"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":8}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte"}]},{"E_app":[{"Id":"tlb_get_pte"},[{"E_id":[{"Id":"pte_size"}]},{"E_id":[{"Id":"ent"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ext_pte"}]},{"E_app":[{"Id":"ext_bits_of_PTE"},[{"E_id":[{"Id":"pte"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_flags"}]},{"E_app":[{"Id":"Mk_PTE_Flags"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"pte"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pte_check"}]},{"E_app":[{"Id":"check_PTE_permission"},[{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"mxr"}]},{"E_id":[{"Id":"do_sum"}]},{"E_id":[{"Id":"pte_flags"}]},{"E_id":[{"Id":"ext_pte"}]},{"E_id":[{"Id":"ext_ptw"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"pte_check"}]},[{"Pat_exp":[{"P_app":[{"Id":"PTE_Check_Failure"},[{"P_tuple":[[{"P_id":[{"Id":"ext_ptw"}]},{"P_id":[{"Id":"ext_ptw_fail"}]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"ext_get_ptw_error"},[{"E_id":[{"Id":"ext_ptw_fail"}]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"PTE_Check_Success"},[{"P_id":[{"Id":"ext_ptw"}]}]]},{"E_match":[{"E_app":[{"Id":"update_PTE_Bits"},[{"E_id":[{"Id":"pte"}]},{"E_id":[{"Id":"ac"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"tlb_get_ppn"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"ent"}]},{"E_id":[{"Id":"vpn"}]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"pte'"}]}]]},{"E_if":[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"plat_enable_dirty_update"}]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"PTW_PTE_Update"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"write_TLB"},[{"E_id":[{"Id":"tlb_index"}]},{"E_app":[{"Id":"tlb_set_pte"},[{"E_id":[{"Id":"ent"}]},{"E_id":[{"Id":"pte'"}]}]]}]]},{"E_match":[{"E_app":[{"Id":"write_pte"},[{"E_field":[{"E_id":[{"Id":"ent"}]},{"Id":"pteAddr"}]},{"E_id":[{"Id":"pte_size"}]},{"E_id":[{"Id":"pte'"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"sys/vmem.sail"}]},{"E_lit":[{"L_num":253}]},{"E_lit":[{"L_string":"invalid physical address in TLB"}]}]]}]}]]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"tlb_get_ppn"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"ent"}]},{"E_id":[{"Id":"vpn"}]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]]}]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"PTW_Error"}]},{"Typ_id":[{"Id":"unit"}]}]]}]}]]}]}]},{"Id":"translate_TLB_miss"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"translate_TLB_miss"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"asidbits"}]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"ppn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"base_ppn"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vpn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"ac"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"mxr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"do_sum"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ext_ptw"}]},{"P_id":[{"Id":"ext_ptw"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"initial_level"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":1}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":39}]}]]},{"E_lit":[{"L_num":2}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":48}]}]]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":4}]}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"pte_size"}]},{"TP_var":[{"Var":"'pte_size"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"sv_width"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":8}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ptw_result"}]},{"E_app":[{"Id":"pt_walk"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"vpn"}]},{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"mxr"}]},{"E_id":[{"Id":"do_sum"}]},{"E_id":[{"Id":"base_ppn"}]},{"E_id":[{"Id":"initial_level"}]},{"E_lit":["L_false"]},{"E_id":[{"Id":"ext_ptw"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"ptw_result"}]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"f"}]},{"P_id":[{"Id":"ext_ptw"}]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_id":[{"Id":"f"}]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_struct":[[[{"Id":"ppn"},{"P_id":[{"Id":"ppn"}]}],[{"Id":"pte"},{"P_id":[{"Id":"pte"}]}],[{"Id":"pteAddr"},{"P_id":[{"Id":"pteAddr"}]}],[{"Id":"level"},{"P_id":[{"Id":"level"}]}],[{"Id":"global"},{"P_id":[{"Id":"global"}]}]],{"FP_no_wild":[]}]},{"P_id":[{"Id":"ext_ptw"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ext_pte"}]},{"E_app":[{"Id":"ext_bits_of_PTE"},[{"E_id":[{"Id":"pte"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"update_PTE_Bits"},[{"E_id":[{"Id":"pte"}]},{"E_id":[{"Id":"ac"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"add_to_TLB"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"vpn"}]},{"E_id":[{"Id":"ppn"}]},{"E_id":[{"Id":"pte"}]},{"E_id":[{"Id":"pteAddr"}]},{"E_id":[{"Id":"level"}]},{"E_id":[{"Id":"global"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_id":[{"Id":"ppn"}]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"pte"}]}]]},{"E_if":[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"plat_enable_dirty_update"}]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"PTW_PTE_Update"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"write_pte"},[{"E_id":[{"Id":"pteAddr"}]},{"E_id":[{"Id":"pte_size"}]},{"E_id":[{"Id":"pte"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_block":[[{"E_app":[{"Id":"add_to_TLB"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"vpn"}]},{"E_id":[{"Id":"ppn"}]},{"E_id":[{"Id":"pte"}]},{"E_id":[{"Id":"pteAddr"}]},{"E_id":[{"Id":"level"}]},{"E_id":[{"Id":"global"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_id":[{"Id":"ppn"}]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"PTW_Access"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]}]]}]]}]}]}]]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"SATPMode"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[32,39,48,57]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"satp_mode_width"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"satp_mode_width"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Sv32"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":32}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Sv39"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":39}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Sv48"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":48}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"Sv57"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":57}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_constant":[64]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[9]},{"Nexp_constant":[16]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'v"}]},{"Nexp_constant":[12]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"Privilege"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[22]},{"Nexp_constant":[44]}]}]}]]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"PTW_Error"}]},{"Typ_id":[{"Id":"unit"}]}]]}]}]]}]}]},{"Id":"translate"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"translate"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"asidbits"}]},{"P_id":[{"Id":"asid"}]}]},{"P_typ":[{"Typ_app":[{"Id":"ppn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"base_ppn"}]}]},{"P_typ":[{"Typ_app":[{"Id":"vpn_bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"vpn"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"ac"}]}]},{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"mxr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"do_sum"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ext_ptw"}]},{"P_id":[{"Id":"ext_ptw"}]}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"lookup_TLB"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"vpn"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_tuple":[[{"P_id":[{"Id":"index"}]},{"P_id":[{"Id":"ent"}]}]]}]]},{"E_app":[{"Id":"translate_TLB_hit"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"vpn"}]},{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"mxr"}]},{"E_id":[{"Id":"do_sum"}]},{"E_id":[{"Id":"ext_ptw"}]},{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"ent"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"translate_TLB_miss"},[{"E_id":[{"Id":"sv_width"}]},{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"base_ppn"}]},{"E_id":[{"Id":"vpn"}]},{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"mxr"}]},{"E_id":[{"Id":"do_sum"}]},{"E_id":[{"Id":"ext_ptw"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'v"}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sv_mode"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_if":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]},{"A_nexp":[{"Nexp_constant":[32]}]}]},{"Nexp_constant":[32]},{"Nexp_constant":[64]}]}]}]]}]}]},{"Id":"get_satp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_satp"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'v"}]}]}]]},{"P_id":[{"Id":"sv_width"}]}]},{"E_block":[[{"E_assert":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"sv_width"}]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"sys/vmem.sail:350.30-350.31"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"sv_width"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"satp"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"satp"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"physaddr"}]},{"Typ_id":[{"Id":"unit"}]}]]}]},{"A_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"ExceptionType"}]},{"Typ_id":[{"Id":"unit"}]}]]}]}]]}]}]},{"Id":"translateAddr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"translateAddr"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"virtaddr"}]},{"P_id":[{"Id":"vAddr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"ext_access_type"}]}]}]]},{"P_id":[{"Id":"ac"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"effPriv"}]},{"E_app":[{"Id":"effectivePrivilege"},[{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"mstatus"}]},{"E_id":[{"Id":"cur_privilege"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mode"}]},{"E_app":[{"Id":"translationMode"},[{"E_id":[{"Id":"effPriv"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"mode"}]},{"E_id":[{"Id":"Bare"}]}]]},{"E_return":[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"Physaddr"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vAddr"}]}]]}]]}]]},{"E_id":[{"Id":"init_ext_ptw"}]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"sv_width"}]},{"E_app":[{"Id":"satp_mode_width_forwards"},[{"E_id":[{"Id":"mode"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"satp_sxlen"}]},{"E_app":[{"Id":"get_satp"},[{"E_id":[{"Id":"sv_width"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"sv_width"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"sys/vmem.sail:376.36-376.37"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"svAddr"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vAddr"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"sv_width"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vAddr"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"svAddr"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"translationException"},[{"E_id":[{"Id":"ac"}]},{"E_app":[{"Id":"PTW_Invalid_Addr"},[{"E_lit":["L_unit"]}]]}]]},{"E_id":[{"Id":"init_ext_ptw"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mxr"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_MXR"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"do_sum"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_SUM"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"asid"}]},{"E_app":[{"Id":"satp_to_asid"},[{"E_id":[{"Id":"satp_sxlen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"base_ppn"}]},{"E_app":[{"Id":"satp_to_ppn"},[{"E_id":[{"Id":"satp_sxlen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"res"}]},{"E_app":[{"Id":"translate"},[{"E_id":[{"Id":"sv_width"}]},{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":16}]}]},{"E_id":[{"Id":"asid"}]}]]},{"E_id":[{"Id":"base_ppn"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"svAddr"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"sv_width"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"pagesize_bits"}]}]]},{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"effPriv"}]},{"E_id":[{"Id":"mxr"}]},{"E_id":[{"Id":"do_sum"}]},{"E_id":[{"Id":"init_ext_ptw"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"res"}]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"ppn"}]},{"P_id":[{"Id":"ext_ptw"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"paddr"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"ppn"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vAddr"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"pagesize_bits"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_app":[{"Id":"Physaddr"},[{"E_app":[{"Id":"zero_extend"},[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":64}]}]},{"E_id":[{"Id":"paddr"}]}]]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]]}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"f"}]},{"P_id":[{"Id":"ext_ptw"}]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_tuple":[[{"E_app":[{"Id":"translationException"},[{"E_id":[{"Id":"ac"}]},{"E_id":[{"Id":"f"}]}]]},{"E_id":[{"Id":"ext_ptw"}]}]]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset_vmem"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset_vmem"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"reset_TLB"},[{"E_lit":["L_unit"]}]]}]}]}]]}},{"DEF_pragma":["file_end","sys/vmem.sail"]},{"DEF_pragma":["file_start","sys/vmem_utils.sail"]},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"sys_misaligned_order_decreasing"}]}]},{"E_lit":["L_false"]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"sys_misaligned_byte_by_byte"}]}]},{"E_lit":["L_false"]}]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"P_id":[{"Id":"sys_misaligned_allowed_within_exp"}]}]},{"E_lit":[{"L_num":0}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'width"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'r"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'r"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_var":[{"Var":"'r"}]},{"Nexp_var":[{"Var":"'width"}]}]},{"NC_and":[{"NC_le":[{"Nexp_constant":[1]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_exp":[{"Nexp_var":[{"Var":"'r"}]}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'r"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"access_within"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"access_within"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"addr"}]},{"P_id":[{"Id":"bytes"}]},{"P_id":[{"Id":"region_width_exp"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"addr"}]}]]},{"E_app":[{"Id":"ones"},[{"E_id":[{"Id":"region_width_exp"}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"mask"}]}]]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"addr"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"bytes"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_id":[{"Id":"mask"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"prop_access_within_is_aligned"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"prop_access_within_is_aligned"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"addr"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"region_width_exp"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"region_width_exp"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"region_width_exp"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"region_width_exp"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"eq_bool"},[{"E_app":[{"Id":"access_within"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"bytes"}]},{"E_id":[{"Id":"region_width_exp"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"addr"}]}]]},{"E_id":[{"Id":"bytes"}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"prop_access_within_single"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"prop_access_within_single"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"addr"}]}]},{"E_block":[[{"E_app":[{"Id":"access_within"},[{"E_id":[{"Id":"addr"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'width"}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"allowed_misaligned"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"allowed_misaligned"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vaddr"}]},{"P_id":[{"Id":"width"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"region_width_exp"}]},{"E_id":[{"Id":"sys_misaligned_allowed_within_exp"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"region_width"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"region_width_exp"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"region_width"}]}]]},{"E_return":[{"E_lit":["L_false"]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"access_within"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"region_width_exp"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'width"}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]},{"KOpt_kind":["K_int",{"Var":"'bytes"}]}],{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]},{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'bytes"}]}]}]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'bytes"}]},{"Nexp_constant":[0]}]}]},{"Typ_tuple":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'bytes"}]}]}]]}]]}]}]}]},{"Id":"split_misaligned"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"split_misaligned"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vaddr"}]},{"P_id":[{"Id":"width"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vaddr_bits"}]},{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"is_aligned_vaddr"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"allowed_misaligned"},[{"E_id":[{"Id":"vaddr_bits"}]},{"E_id":[{"Id":"width"}]}]]}]]},{"E_tuple":[[{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"width"}]}]]},{"E_if":[{"E_id":[{"Id":"sys_misaligned_byte_by_byte"}]},{"E_tuple":[[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":1}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"bytes_per_access"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"count_trailing_zeros"},[{"E_id":[{"Id":"vaddr_bits"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_accesses"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"bytes_per_access"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"width"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"num_accesses"}]},{"E_id":[{"Id":"bytes_per_access"}]}]]}]]},{"E_lit":[{"L_string":"sys/vmem_utils.sail:89.51-89.52"}]}]},{"E_tuple":[[{"E_id":[{"Id":"num_accesses"}]},{"E_id":[{"Id":"bytes_per_access"}]}]]}]]}]}]]}]}]]}]}]}]]}]}]]}]}]}]]}},{"DEF_type":{"TD_abbrev":[{"Id":"valid_misaligned_order"},{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'first"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'last"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'step"}]}]}]]},{"A_bool":[{"NC_or":[{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'first"}]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]},{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'last"}]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'step"}]}]},{"A_nexp":[{"Nexp_constant":[1]}]}]}]}]},{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'first"}]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]},{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'last"}]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'step"}]}]},{"A_nexp":[{"Nexp_neg":[{"Nexp_constant":[1]}]}]}]}]}]}]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'first"}]},{"KOpt_kind":["K_int",{"Var":"'last"}]},{"KOpt_kind":["K_int",{"Var":"'step"}]}],{"NC_or":[{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'first"}]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]},{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'last"}]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'step"}]}]},{"A_nexp":[{"Nexp_constant":[1]}]}]}]}]},{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'first"}]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]},{"NC_and":[{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'last"}]}]},{"A_nexp":[{"Nexp_constant":[0]}]}]},{"NC_equal":[{"A_nexp":[{"Nexp_var":[{"Var":"'step"}]}]},{"A_nexp":[{"Nexp_constant":[-1]}]}]}]}]}]},{"Typ_tuple":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'first"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'last"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'step"}]}]}]]}]]}]}]}]},{"Id":"misaligned_order"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"misaligned_order"},{"Pat_exp":[{"P_id":[{"Id":"n"}]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"sys_misaligned_order_decreasing"}]},{"E_block":[[{"E_tuple":[[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_block":[[{"E_tuple":[[{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_misaligned"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_misaligned"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"virtaddr"}]},{"P_id":[{"Id":"vaddr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"width"}]}]}]]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"plat_enable_misaligned_access"}]},{"E_block":[[{"E_lit":["L_false"]}]]},{"E_block":[[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_aligned_vaddr"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'width"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_mem_width"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'width"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExecutionResult"}]}]}]]}]}]},{"Id":"vmem_read_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vmem_read_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vaddr"}]},{"P_id":[{"Id":"offset"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"acc"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"res"}]}]]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"res"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_aligned_vaddr"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"E_Load_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]},{"E_lit":["L_unit"]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"check_misaligned"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"E_Load_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_let":[{"LB_val":[{"P_tuple":[[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"P_var":[{"P_id":[{"Id":"bytes"}]},{"TP_var":[{"Var":"'bytes"}]}]}]]},{"E_app":[{"Id":"split_misaligned"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"data"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"bytes"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"first"}]},{"P_id":[{"Id":"last"}]},{"P_id":[{"Id":"step"}]}]]},{"E_app":[{"Id":"misaligned_order"},[{"E_id":[{"Id":"n"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]]},{"Id":"i"}]},{"E_id":[{"Id":"first"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"finished"}]},{"E_lit":["L_false"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]}]},{"E_block":[[{"E_loop":["Until",{"Measure_none":[]},{"E_id":[{"Id":"finished"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"offset"}]},{"E_id":[{"Id":"i"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"bytes"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"acc"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_wild":[]}]]}]]},{"E_match":[{"E_app":[{"Id":"mem_read"},[{"E_id":[{"Id":"acc"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"bytes"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"res"}]},{"E_block":[[{"E_app":[{"Id":"load_reservation"},[{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"paddr"}]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"data"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"offset"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_id":[{"Id":"bytes"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"offset"}]}]]},{"E_id":[{"Id":"bytes"}]}]]}]},{"E_id":[{"Id":"v"}]}]}]]}]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"last"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"finished"}]},{"E_lit":["L_true"]}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"i"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"step"}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"data"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'width"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_mem_width"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'width"}]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExecutionResult"}]}]}]]}]}]},{"Id":"vmem_write_addr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vmem_write_addr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vaddr"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"data"}]},{"P_id":[{"Id":"acc"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"res"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"check_misaligned"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"E_SAMO_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_tuple":[[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"P_var":[{"P_id":[{"Id":"bytes"}]},{"TP_var":[{"Var":"'bytes"}]}]}]]},{"E_app":[{"Id":"split_misaligned"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"first"}]},{"P_id":[{"Id":"last"}]},{"P_id":[{"Id":"step"}]}]]},{"E_app":[{"Id":"misaligned_order"},[{"E_id":[{"Id":"n"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_minus":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[1]}]}]}]]},{"Id":"i"}]},{"E_id":[{"Id":"first"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"finished"}]},{"E_lit":["L_false"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"write_success"}]},{"E_lit":["L_true"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]}]},{"E_block":[[{"E_loop":["Until",{"Measure_none":[]},{"E_id":[{"Id":"finished"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"offset"}]},{"E_id":[{"Id":"i"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"bytes"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"acc"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_wild":[]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"res"}]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"match_reservation"},[{"E_app":[{"Id":"bits_of_physaddr"},[{"E_id":[{"Id":"paddr"}]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"write_success"}]},{"E_lit":["L_false"]}]}]]},{"E_match":[{"E_app":[{"Id":"mem_write_ea"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"bytes"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"write_value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"offset"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_id":[{"Id":"bytes"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"offset"}]}]]},{"E_id":[{"Id":"bytes"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"mem_write_value"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"bytes"}]},{"E_id":[{"Id":"write_value"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"s"}]}]]},{"E_assign":[{"LE_id":[{"Id":"write_success"}]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"write_success"}]},{"E_id":[{"Id":"s"}]}]]}]}]}]]}]]}]}]]}]}]]}]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"last"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"finished"}]},{"E_lit":["L_true"]}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"i"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"step"}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"write_success"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'width"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_mem_width"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'width"}]}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"ExecutionResult"}]}]}]]}]}]},{"Id":"vmem_read"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vmem_read"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rs"}]},{"P_id":[{"Id":"offset"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"acc"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"res"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"virtaddr"}]},{"P_id":[{"Id":"vaddr"}]}]},{"E_match":[{"E_app":[{"Id":"ext_data_get_addr"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"acc"}]},{"E_id":[{"Id":"width"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_OK"},[{"P_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"vaddr"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_Error"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Ext_DataAddr_Check_Failure"},[{"E_id":[{"Id":"e"}]}]]}]]}]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"vmem_read_addr"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"acc"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'width"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_mem_width"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'width"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'width"}]}]}]}]]},{"Typ_app":[{"Id":"AccessType"},[{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"bool"}]}]},{"A_typ":[{"Typ_id":[{"Id":"ExecutionResult"}]}]}]]}]}]},{"Id":"vmem_write"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vmem_write"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rs_addr"}]},{"P_id":[{"Id":"offset"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"data"}]},{"P_id":[{"Id":"acc"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"res"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"virtaddr"}]},{"P_id":[{"Id":"vaddr"}]}]},{"E_match":[{"E_app":[{"Id":"ext_data_get_addr"},[{"E_id":[{"Id":"rs_addr"}]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"acc"}]},{"E_id":[{"Id":"width"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_OK"},[{"P_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"vaddr"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_Error"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_app":[{"Id":"Ext_DataAddr_Check_Failure"},[{"E_id":[{"Id":"e"}]}]]}]]}]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"vmem_write_addr"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]},{"E_id":[{"Id":"acc"}]},{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]},{"E_id":[{"Id":"res"}]}]]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","sys/vmem_utils.sail"]},{"DEF_pragma":["file_start","sys/insts_begin.sail"]},{"DEF_type":{"TD_variant":[{"Id":"instruction"},{"TypQ_no_forall":[]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"word"}]},{"Id":"ILLEGAL"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"half"}]},{"Id":"C_ILLEGAL"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cbop_zicbop"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]]},{"Id":"ZICBOP"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ntl_type"}]},{"Id":"NTL"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ntl_type"}]},{"Id":"C_NTL"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"PAUSE"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"landing_pad_label"}]},{"Id":"LPAD"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[20]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"uop"}]}]]},{"Id":"UTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[21]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"JAL"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"JALR"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[13]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"bop"}]}]]},{"Id":"BTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"iop"}]}]]},{"Id":"ITYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"sop"}]}]]},{"Id":"SHIFTIOP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"rop"}]}]]},{"Id":"RTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"word_width"}]}]]},{"Id":"LOAD"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"word_width"}]}]]},{"Id":"STORE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"ADDIW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"ropw"}]}]]},{"Id":"RTYPEW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"sopw"}]}]]},{"Id":"SHIFTIWOP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]]},{"Id":"FENCE"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"FENCE_TSO"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"ECALL"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"MRET"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"SRET"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"EBREAK"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"WFI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SFENCE_VMA"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FENCE_RESERVED"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FENCEI_RESERVED"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"amoop"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"word_width_wide"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AMO"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"word_width"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"LOADRES"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"word_width"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"STORECON"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"mul_op"}]}]]},{"Id":"MUL"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"Id":"DIV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"Id":"REM"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"MULW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"Id":"DIVW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"Id":"REMW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SLLIUW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"shamt_zba"}]}]]},{"Id":"ZBA_RTYPEUW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"shamt_zba"}]}]]},{"Id":"ZBA_RTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"RORIW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"RORI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"bropw_zbb"}]}]]},{"Id":"ZBB_RTYPEW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"brop_zbb"}]}]]},{"Id":"ZBB_RTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"extop_zbb"}]}]]},{"Id":"ZBB_EXTOP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"REV8"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"ORCB"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CPOP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CPOPW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CLZ"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CLZW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CTZ"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CTZW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CLMUL"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CLMULH"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"CLMULR"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"biop_zbs"}]}]]},{"Id":"ZBS_IOP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"brop_zbs"}]}]]},{"Id":"ZBS_RTYPE"}]},{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Id":"C_NOP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]]},{"Id":"C_ADDI4SPN"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_LW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_LD"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SD"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_ADDI"}]},{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"Id":"C_JAL"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_ADDIW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_LI"}]},{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Id":"C_ADDI16SP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_LUI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SRLI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SRAI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_ANDI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SUB"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_XOR"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_OR"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_AND"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SUBW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_ADDW"}]},{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"Id":"C_J"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_BEQZ"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_BNEZ"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_SLLI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_LWSP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_LDSP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_SWSP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_SDSP"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"regidx"}]},{"Id":"C_JR"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"regidx"}]},{"Id":"C_JALR"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_MV"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"C_EBREAK"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"C_ADD"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_LBU"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_LHU"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_LH"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SB"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_SH"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"cregidx"}]},{"Id":"C_ZEXT_B"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"cregidx"}]},{"Id":"C_SEXT_B"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"cregidx"}]},{"Id":"C_ZEXT_H"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"cregidx"}]},{"Id":"C_SEXT_H"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"cregidx"}]},{"Id":"C_ZEXT_W"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"cregidx"}]},{"Id":"C_NOT"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cregidx"}]}]]},{"Id":"C_MUL"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"word_width"}]}]]},{"Id":"LOAD_FP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"word_width"}]}]]},{"Id":"STORE_FP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_madd_op_S"}]}]]},{"Id":"F_MADD_TYPE_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_bin_rm_op_S"}]}]]},{"Id":"F_BIN_RM_TYPE_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_rm_ff_op_S"}]}]]},{"Id":"F_UN_RM_FF_TYPE_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_un_rm_fx_op_S"}]}]]},{"Id":"F_UN_RM_FX_TYPE_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_rm_xf_op_S"}]}]]},{"Id":"F_UN_RM_XF_TYPE_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_bin_op_f_S"}]}]]},{"Id":"F_BIN_TYPE_F_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_bin_op_x_S"}]}]]},{"Id":"F_BIN_TYPE_X_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_op_f_S"}]}]]},{"Id":"F_UN_TYPE_F_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_un_op_x_S"}]}]]},{"Id":"F_UN_TYPE_X_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"C_FLWSP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"C_FSWSP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cfregidx"}]}]]},{"Id":"C_FLW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cfregidx"}]}]]},{"Id":"C_FSW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_madd_op_D"}]}]]},{"Id":"F_MADD_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_bin_rm_op_D"}]}]]},{"Id":"F_BIN_RM_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_rm_ff_op_D"}]}]]},{"Id":"F_UN_RM_FF_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_rm_xf_op_D"}]}]]},{"Id":"F_UN_RM_XF_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_un_rm_fx_op_D"}]}]]},{"Id":"F_UN_RM_FX_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_bin_f_op_D"}]}]]},{"Id":"F_BIN_F_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_bin_x_op_D"}]}]]},{"Id":"F_BIN_X_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_un_x_op_D"}]}]]},{"Id":"F_UN_X_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_f_op_D"}]}]]},{"Id":"F_UN_F_TYPE_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"C_FLDSP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"C_FSDSP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cfregidx"}]}]]},{"Id":"C_FLD"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"cregidx"}]},{"Typ_id":[{"Id":"cfregidx"}]}]]},{"Id":"C_FSD"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_bin_rm_op_H"}]}]]},{"Id":"F_BIN_RM_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_madd_op_H"}]}]]},{"Id":"F_MADD_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_bin_f_op_H"}]}]]},{"Id":"F_BIN_F_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_bin_x_op_H"}]}]]},{"Id":"F_BIN_X_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_rm_ff_op_H"}]}]]},{"Id":"F_UN_RM_FF_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_un_rm_fx_op_H"}]}]]},{"Id":"F_UN_RM_FX_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_rm_xf_op_H"}]}]]},{"Id":"F_UN_RM_XF_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"f_un_f_op_H"}]}]]},{"Id":"F_UN_F_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"f_un_x_op_H"}]}]]},{"Id":"F_UN_X_TYPE_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FLI_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FLI_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FLI_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FMINM_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FMAXM_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FMINM_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FMAXM_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FMINM_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FMAXM_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FROUND_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FROUNDNX_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FROUND_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FROUNDNX_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FROUND_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FROUNDNX_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FMVH_X_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FMVP_D_X"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FLEQ_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FLTQ_H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FLEQ_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FLTQ_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FLEQ_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FLTQ_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"FCVTMOD_W_D"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"VSETVLI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"VSETVL"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"VSETIVLI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nvsfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"NVSTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"NVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MASKTYPEV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MOVETYPEV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vxfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VXTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nxsfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"NXSTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nxfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"NXTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vxsgfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VXSG"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MASKTYPEX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MOVETYPEX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vifunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VITYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nisfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"NISTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nifunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"NITYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"visgfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VISG"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MASKTYPEI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]},{"Id":"MOVETYPEI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VMVRTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"mvvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"mvvmafunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MVVMATYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"wvvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"WVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"wvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"WVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"wmvvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"WMVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vextfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VEXTTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"VMVXS"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MVVCOMPRESS"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"mvxfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MVXTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"mvxmafunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MVXMATYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"wvxfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"WVXTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"wxfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"WXTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"wmvxfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"WMVXTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VMVSX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fvvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fvvmafunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FVVMATYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fwvvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FWVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fwvvmafunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FWVVMATYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fwvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FWVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vfunary0"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFUNARY0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vfwunary0"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFWUNARY0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vfnunary0"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFNUNARY0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vfunary1"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFUNARY1"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"VFMVFS"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fvffunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FVFTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fvfmafunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FVFMATYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fwvffunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FWVFTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fwvfmafunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FWVFMATYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fwffunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FWFTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFMERGE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFMV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFMVSF"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VLSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VLSEGFFTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VLSSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSSSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VLUXSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VLOXSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSUXSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSOXSEGTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields_pow2"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VLRETYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"nfields_pow2"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSRETYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vmlsop"}]}]]},{"Id":"VMTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"mmfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"MMTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"VCPOP_M"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"VFIRST_M"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VMSBF_M"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VMSIF_M"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VMSOF_M"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VIOTA_M"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VID_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vvmfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VVMTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vvmcfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VVMCTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vvmsfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VVMSTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vvcmpfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VVCMPTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vxmfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VXMTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vxmcfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VXMCTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vxmsfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VXMSTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vxcmpfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VXCMPTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vimfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VIMTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vimcfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VIMCTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vimsfunct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VIMSTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vicmpfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VICMPTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fvvmfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FVVMTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fvfmfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"FVFMTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"rivvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"RIVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"rmvvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"RMVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"rfvvfunct6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"RFVVTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA256SIG0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA256SIG1"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA256SUM0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA256SUM1"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES32ESMI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES32ESI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES32DSMI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES32DSI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SIG0L"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SIG0H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SIG1L"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SIG1H"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SUM0R"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SUM1R"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES64KS1I"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES64KS2"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES64IM"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES64ESM"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES64ES"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES64DSM"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"AES64DS"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SIG0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SIG1"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SUM0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SHA512SUM1"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SM3P0"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SM3P1"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SM4ED"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SM4KS"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"brop_zbkb"}]}]]},{"Id":"ZBKB_RTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"ZBKB_PACKW"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"ZIP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"UNZIP"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"BREV8"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"XPERM8"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"XPERM4"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VANDN_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VANDN_VX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VBREV_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VBREV8_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VREV8_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VCLZ_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VCTZ_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VCPOP_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VROL_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VROL_VX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VROR_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VROR_VX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VROR_VI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VWSLL_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VWSLL_VX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VWSLL_VI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VCLMUL_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VCLMUL_VX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VCLMULH_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VCLMULH_VX"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VGHSH_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VGMUL_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"zvk_vaesdf_funct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VAESDF"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"zvk_vaesdm_funct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VAESDM"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"zvk_vaesef_funct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VAESEF"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"zvk_vaesem_funct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VAESEM"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VAESKF1_VI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VAESKF2_VI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VAESZ_VS"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSM4K_VI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"zvk_vsm4r_funct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"ZVKSM4RTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSHA2MS_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"zvk_vsha2_funct6"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"ZVKSHA2TYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSM3ME_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VSM3C_VI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"csreg"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"csrop"}]}]]},{"Id":"CSRReg"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"csreg"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"csrop"}]}]]},{"Id":"CSRImm"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"SINVAL_VMA"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"SFENCE_W_INVAL"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"SFENCE_INVAL_IR"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"wrsop"}]},{"Id":"WRS"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"zicondop"}]}]]},{"Id":"ZICOND_RTYPE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"cbop_zicbom"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"ZICBOM"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"regidx"}]},{"Id":"ZICBOZ"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"FENCEI"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FCVT_BF16_S"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"fregidx"}]}]]},{"Id":"FCVT_S_BF16"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFNCVTBF16_F_F_W"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFWCVTBF16_F_F_V"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFWMACCBF16_VV"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"fregidx"}]},{"Typ_id":[{"Id":"vregidx"}]}]]},{"Id":"VFWMACCBF16_VF"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"ZIMOP_MOP_R"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}]]},{"Id":"ZIMOP_MOP_RR"}]},{"Tu_ty_id":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Id":"ZCMOP"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"instruction"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"execute"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"instruction"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"assembly"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"instruction"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"encdec"},null]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"instruction"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"encdec_compressed"},null]}},{"DEF_pragma":["file_end","sys/insts_begin.sail"]},{"DEF_pragma":["file_start","extensions/Zicbop/zicbop_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cbop_zicbop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_cbop_zicbop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_cbop_zicbop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PREFETCH_I"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PREFETCH_R"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PREFETCH_W"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cbop_zicbop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"prefetch_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"prefetch_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PREFETCH_I"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"prefetch.i"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PREFETCH_R"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"prefetch.r"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PREFETCH_W"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"prefetch.w"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicbop/zicbop_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zihintntl/zihintntl_insts.sail"]},{"DEF_pragma":["file_end","extensions/Zihintntl/zihintntl_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zihintpause/zihintpause_insts.sail"]},{"DEF_pragma":["file_end","extensions/Zihintpause/zihintpause_insts.sail"]},{"DEF_pragma":["file_start","extensions/cfi/zicfilp_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"sync_exception"}]}]}]},{"Id":"make_landing_pad_exception"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"make_landing_pad_exception"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_struct":[[{"FE_fexp":[{"Id":"trap"},{"E_app":[{"Id":"E_Software_Check"},[{"E_lit":["L_unit"]}]]}]},{"FE_fexp":[{"Id":"excinfo"},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"software_check_cause_forwards"},[{"E_id":[{"Id":"SWC_LANDING_PAD_FAULT"}]}]]}]]}]]}]},{"FE_fexp":[{"Id":"ext"},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"instruction"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"is_lpad_instruction"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_lpad_instruction"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"instruction"}]},{"P_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"i"}]},[{"Pat_exp":[{"P_app":[{"Id":"LPAD"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/cfi/zicfilp_insts.sail"]},{"DEF_pragma":["file_start","extensions/I/base_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"uop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]}]},{"Id":"encdec_uop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_uop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"LUI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0110111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AUIPC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0010111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"uop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"utype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"utype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"LUI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"lui"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AUIPC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"auipc"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"jump_to"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"jump_to"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"target"}]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"ext_control_check_pc"},[{"E_id":[{"Id":"target"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"Ext_ControlAddr_Check_Failure"},[{"E_id":[{"Id":"e"}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_assert":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"target"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_lit":[{"L_string":"extensions/I/base_insts.sail:59.29-59.30"}]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"bit_to_bool"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"target"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"target"}]}]]},{"E_app":[{"Id":"E_Fetch_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"set_next_pc"},[{"E_id":[{"Id":"target"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"bop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_bop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_bop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BGE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BLTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BGEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"bop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"btype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"btype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"beq"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bne"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"blt"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BGE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bge"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BLTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bltu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BGEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bgeu"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"iop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_iop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_iop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ADDI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLTI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLTIU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ANDI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ORI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"XORI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"iop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"itype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"itype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ADDI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"addi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLTI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"slti"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLTIU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sltiu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"XORI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"xori"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ORI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ori"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ANDI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"andi"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"sop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_sop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_sop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLLI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRLI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRAI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"sop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"shiftiop_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"shiftiop_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLLI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"slli"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRLI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"srli"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRAI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"srai"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"rtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"rtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"add"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"slt"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sltu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"and"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"OR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"or"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"XOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"xor"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sll"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"srl"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sub"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sra"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_load_encdec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_load_encdec"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"is_unsigned"}]}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_lt":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_id":[{"Id":"xlen"}]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"extend_value"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"extend_value"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"is_unsigned"}]},{"P_id":[{"Id":"value"}]}]]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"value"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"maybe_u"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"maybe_u"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_true"]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"u"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":["L_false"]}]},{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"ropw"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"rtypew_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"rtypew_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ADDW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"addw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SUBW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"subw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLLW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sllw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRLW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"srlw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRAW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sraw"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"sopw"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"shiftiwop_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"shiftiwop_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SLLIW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"slliw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRLIW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"srliw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SRAIW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sraiw"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]}]},{"Id":"effective_fence_set"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"effective_fence_set"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"set"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"fiom"}]}]}]]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"fiom"}]},{"E_block":[[{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"set"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"set"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"set"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]},{"E_id":[{"Id":"set"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"bit_maybe_r"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"bit_maybe_r"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"r"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"bit_maybe_w"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"bit_maybe_w"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"bit_maybe_i"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"bit_maybe_i"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"i"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"bit_maybe_o"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"bit_maybe_o"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"o"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fence_bits"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fence_bits"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"0000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"i"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"o"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"r"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"w"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"bit_maybe_i"},[{"MP_id":[{"Id":"i"}]}]]},{"MP_app":[{"Id":"bit_maybe_o"},[{"MP_id":[{"Id":"o"}]}]]},{"MP_app":[{"Id":"bit_maybe_r"},[{"MP_id":[{"Id":"r"}]}]]},{"MP_app":[{"Id":"bit_maybe_w"},[{"MP_id":[{"Id":"w"}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/I/base_insts.sail"]},{"DEF_pragma":["file_start","extensions/I/reserved_fence_insts.sail"]},{"DEF_pragma":["file_end","extensions/I/reserved_fence_insts.sail"]},{"DEF_pragma":["file_start","extensions/I/jalr_seq.sail"]},{"DEF_pragma":["file_end","extensions/I/jalr_seq.sail"]},{"DEF_pragma":["file_start","extensions/A/zaamo_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8,16]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"amoop"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"amo_encoding_valid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"amo_encoding_valid"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"word_width_wide"}]},{"P_id":[{"Id":"width"}]}]},{"P_typ":[{"Typ_id":[{"Id":"amoop"}]},{"P_id":[{"Id":"op"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"rs2"}]}]]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_app":[{"Id":"Regidx"},[{"P_id":[{"Id":"rd"}]}]]}]}]]},{"E_app":[["And_Bool"],[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"AMOCAS"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zacas"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zaamo"}]}]]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zabha"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"AMOCAS"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"xlen_bytes"}]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rs2"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rd"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"amoop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_amoop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_amoop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOSWAP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOCAS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"amoop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"amo_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"amo_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOSWAP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amoswap"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amoadd"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amoxor"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amoand"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amoor"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amomin"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amomax"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amominu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amomaxu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"AMOCAS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"amocas"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/A/zaamo_insts.sail"]},{"DEF_pragma":["file_start","extensions/A/zalrsc_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"lrsc_width_valid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"lrsc_width_valid"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"width"}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"width"}]},[{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/A/zalrsc_insts.sail"]},{"DEF_pragma":["file_start","extensions/M/mext_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mul_op"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_mul_op"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_mul_op"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_false"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_true"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_true"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_false"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_false"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_false"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mul_op"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"mul_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"mul_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_false"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_true"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mul"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_true"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mulh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_false"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mulhsu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_struct":[[[{"Id":"high"},{"MP_lit":["L_true"]}],[{"Id":"signed_rs1"},{"MP_lit":["L_false"]}],[{"Id":"signed_rs2"},{"MP_lit":["L_false"]}]]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mulhu"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/M/mext_insts.sail"]},{"DEF_pragma":["file_start","extensions/B/zba_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zba_rtypeuw_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zba_rtypeuw_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"add.uw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sh1add.uw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sh2add.uw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sh3add.uw"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zba_rtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zba_rtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sh1add"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sh2add"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sh3add"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/B/zba_insts.sail"]},{"DEF_pragma":["file_start","extensions/B/zbb_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"bropw_zbb"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zbb_rtypew_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zbb_rtypew_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ROLW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rolw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RORW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rorw"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"brop_zbb"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zbb_rtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zbb_rtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ANDN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"andn"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ORN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"orn"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"XNOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"xnor"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"max"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"maxu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"min"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"minu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ROL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rol"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ROR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ror"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"extop_zbb"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zbb_extop_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zbb_extop_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SEXTB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sext.b"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"SEXTH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sext.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZEXTH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"zext.h"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/B/zbb_insts.sail"]},{"DEF_pragma":["file_start","extensions/B/zbc_insts.sail"]},{"DEF_pragma":["file_end","extensions/B/zbc_insts.sail"]},{"DEF_pragma":["file_start","extensions/B/zbs_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"biop_zbs"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zbs_iop_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zbs_iop_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BCLRI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bclri"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BEXTI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bexti"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BINVI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"binvi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BSETI"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bseti"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"brop_zbs"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zbs_rtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zbs_rtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BCLR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bclr"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BEXT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bext"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BINV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"binv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BSET"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"bset"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/B/zbs_insts.sail"]},{"DEF_pragma":["file_start","extensions/C/zca_insts.sail"]},{"DEF_pragma":["file_end","extensions/C/zca_insts.sail"]},{"DEF_pragma":["file_start","extensions/C/zcb_insts.sail"]},{"DEF_pragma":["file_end","extensions/C/zcb_insts.sail"]},{"DEF_pragma":["file_start","extensions/H/hext_insts.sail"]},{"DEF_pragma":["file_end","extensions/H/hext_insts.sail"]},{"DEF_pragma":["file_start","extensions/FD/fext_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_rounding_mode"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_rounding_mode"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RTZ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RDN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RUP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RMM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_DYN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rounding_mode"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"frm_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"frm_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rne"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RTZ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rtz"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RDN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rdn"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RUP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rup"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_RMM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"rmm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"RM_DYN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"dyn"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_rounding_mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_rounding_mode"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm"}]}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"rm"}]},{"E_lit":[{"L_bin":"101"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"rm"}]},{"E_lit":[{"L_bin":"110"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"rounding_mode"}]}],{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"rounding_mode"}]}]}]]}]}]},{"Id":"select_instr_or_fcsr_rm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"select_instr_or_fcsr_rm"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"rounding_mode"}]},{"P_id":[{"Id":"instr_rm"}]}]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"instr_rm"}]},{"E_id":[{"Id":"RM_DYN"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fcsr_rm"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"valid_rounding_mode"},[{"E_id":[{"Id":"fcsr_rm"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fcsr_rm"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"RM_DYN"}]}]]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"encdec_rounding_mode_backwards"},[{"E_id":[{"Id":"fcsr_rm"}]}]]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"instr_rm"}]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"nxFlag"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nxFlag"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_bin":"00001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"ufFlag"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ufFlag"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_bin":"00010"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"ofFlag"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ofFlag"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_bin":"00100"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"dzFlag"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"dzFlag"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_bin":"01000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"nvFlag"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"nvFlag"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":[{"L_bin":"10000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[23]}]}]]}]]}]}]},{"Id":"fsplit_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fsplit_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_tuple":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x32"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":31}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x32"}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":23}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x32"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[23]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"fmake_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fmake_S"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"sign"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"exp"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[23]}]}]]},{"P_id":[{"Id":"mant"}]}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"mant"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_inf_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_inf_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_norm_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_norm_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_subnorm_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_subnorm_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_zero_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_zero_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_zero_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_zero_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_subnorm_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_subnorm_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_norm_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_norm_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_inf_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_inf_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_SNaN_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_SNaN_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mant"}]},{"E_lit":[{"L_num":22}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_QNaN_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_QNaN_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mant"}]},{"E_lit":[{"L_num":22}]}]]},{"E_lit":["L_one"]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_NaN_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_NaN_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"negate_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"negate_S"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x32"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"x32"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"new_sign"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"1"}]},{"E_lit":[{"L_bin":"0"}]}]}]},{"E_block":[[{"E_app":[{"Id":"fmake_S"},[{"E_id":[{"Id":"new_sign"}]},{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"mant"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]}]}]},{"Id":"feq_quiet_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"feq_quiet_S"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"v1"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"v2"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"v1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"v2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"v1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v2Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"v2"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"v2"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"v1"}]},{"E_id":[{"Id":"v2"}]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"v1Is0"}]},{"E_id":[{"Id":"v2Is0"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"fflags"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]}]}]},{"Id":"flt_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"flt_S"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"v1"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"v2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"is_quiet"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"v1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"v2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"result"}]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_lit":["L_false"]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_lit":["L_true"]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_id":[{"Id":"is_quiet"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"fflags"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]}]}]},{"Id":"fle_S"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fle_S"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"v1"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"v2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"is_quiet"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"v1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"v2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"v1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v2Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"v2"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"v2"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"result"}]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"v1Is0"}]},{"E_id":[{"Id":"v2Is0"}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_lit":["L_true"]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_id":[{"Id":"is_quiet"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"fflags"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"haveSingleFPU"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"haveSingleFPU"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"float_load_store_width_supported"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"float_load_store_width_supported"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"width"}]}]},{"E_match":[{"E_id":[{"Id":"width"}]},[{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":4}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_madd_op_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_madd_type_mnemonic_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_madd_type_mnemonic_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMADD_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmadd.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMSUB_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmsub.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNMSUB_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fnmsub.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNMADD_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fnmadd.s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_rm_op_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_rm_type_mnemonic_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_rm_type_mnemonic_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FADD_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fadd.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSUB_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsub.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMUL_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmul.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FDIV_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fdiv.s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_fx_op_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_fx_type_mnemonic_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_fx_type_mnemonic_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_W_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.w.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_WU_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.wu.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_L_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.l.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_LU_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.lu.s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_xf_op_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_xf_type_mnemonic_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_xf_type_mnemonic_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_S_W"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.s.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_S_WU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.s.wu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_S_L"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.s.l"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_S_LU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.s.lu"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_op_f_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_type_mnemonic_f_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_type_mnemonic_f_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJ_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnj.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJN_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnjn.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJX_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnjx.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMIN_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmin.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMAX_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmax.s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_op_x_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_type_mnemonic_x_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_type_mnemonic_x_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FEQ_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"feq.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FLT_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"flt.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FLE_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fle.s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_op_x_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_type_mnemonic_x_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_type_mnemonic_x_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCLASS_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fclass.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMV_X_W"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmv.x.w"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_op_f_S"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_type_mnemonic_f_S"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_type_mnemonic_f_S"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMV_W_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmv.w.x"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/FD/fext_insts.sail"]},{"DEF_pragma":["file_start","extensions/FD/zcf_insts.sail"]},{"DEF_pragma":["file_end","extensions/FD/zcf_insts.sail"]},{"DEF_pragma":["file_start","extensions/FD/dext_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[52]}]}]]}]]}]}]},{"Id":"fsplit_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fsplit_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_tuple":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x64"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":63}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x64"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":52}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"x64"}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[52]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"fmake_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fmake_D"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"sign"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]},{"P_id":[{"Id":"exp"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[52]}]}]]},{"P_id":[{"Id":"mant"}]}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"mant"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_inf_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_inf_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_norm_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_norm_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_subnorm_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_subnorm_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_zero_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_zero_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_zero_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_zero_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_subnorm_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_subnorm_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_norm_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_norm_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_inf_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_inf_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_SNaN_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_SNaN_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mant"}]},{"E_lit":[{"L_num":51}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_QNaN_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_QNaN_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mant"}]},{"E_lit":[{"L_num":51}]}]]},{"E_lit":["L_one"]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_NaN_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_NaN_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"negate_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"negate_D"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"new_sign"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"1"}]},{"E_lit":[{"L_bin":"0"}]}]}]},{"E_block":[[{"E_app":[{"Id":"fmake_D"},[{"E_id":[{"Id":"new_sign"}]},{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"mant"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]}]}]},{"Id":"feq_quiet_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"feq_quiet_D"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v1"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v2"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"v1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"v2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"v1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v2Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"v2"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"v2"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"v1"}]},{"E_id":[{"Id":"v2"}]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"v1Is0"}]},{"E_id":[{"Id":"v2Is0"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"fflags"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]}]}]},{"Id":"flt_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"flt_D"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v1"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"is_quiet"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"v1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"v2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"result"}]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_lit":["L_false"]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_lit":["L_true"]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_id":[{"Id":"is_quiet"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"fflags"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]}]}]},{"Id":"fle_D"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fle_D"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v1"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"v2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"is_quiet"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"v1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"v2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"v1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v2Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"v2"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"v2"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"result"}]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"v1Is0"}]},{"E_id":[{"Id":"v2Is0"}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_lit":["L_true"]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_id":[{"Id":"is_quiet"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"fflags"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"haveDoubleFPU"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"haveDoubleFPU"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zdinx"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_id":[{"Id":"fregidx"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"validDoubleRegs"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"validDoubleRegs"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"regs"}]}]]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zdinx"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"n"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"fregidx_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"regs"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_one"]}]]},{"E_return":[{"E_lit":["L_false"]}]},{"E_lit":["L_unit"]}]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_lit":["L_true"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_madd_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_madd_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_madd_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMADD_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmadd.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMSUB_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmsub.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNMSUB_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fnmsub.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNMADD_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fnmadd.d"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_rm_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_rm_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_rm_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FADD_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fadd.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSUB_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsub.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMUL_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmul.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FDIV_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fdiv.d"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_ff_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_ff_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_ff_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSQRT_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsqrt.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_S_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.s.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_D_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.d.s"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_fx_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_fx_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_fx_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_W_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.w.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_WU_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.wu.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_L_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.l.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_LU_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.lu.d"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_xf_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_xf_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_xf_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_D_W"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.d.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_D_WU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.d.wu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_D_L"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.d.l"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_D_LU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.d.lu"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_f_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_f_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_f_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJ_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnj.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJN_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnjn.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJX_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnjx.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMIN_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmin.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMAX_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmax.d"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_x_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_x_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_x_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FEQ_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"feq.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FLT_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"flt.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FLE_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fle.d"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_x_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_x_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_x_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMV_X_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmv.x.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCLASS_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fclass.d"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_f_op_D"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_f_type_mnemonic_D"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_f_type_mnemonic_D"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMV_D_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmv.d.x"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/FD/dext_insts.sail"]},{"DEF_pragma":["file_start","extensions/FD/zcd_insts.sail"]},{"DEF_pragma":["file_end","extensions/FD/zcd_insts.sail"]},{"DEF_pragma":["file_start","extensions/FD/zfh_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}]]}]}]},{"Id":"fsplit_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fsplit_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_tuple":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"xf16"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":15}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"xf16"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":10}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"xf16"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"fmake_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fmake_H"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"sign"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"exp"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"P_id":[{"Id":"mant"}]}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"mant"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"negate_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"negate_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"new_sign"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"1"}]},{"E_lit":[{"L_bin":"0"}]}]}]},{"E_block":[[{"E_app":[{"Id":"fmake_H"},[{"E_id":[{"Id":"new_sign"}]},{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"mant"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_inf_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_inf_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_norm_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_norm_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_subnorm_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_subnorm_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_subnorm_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_subnorm_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_norm_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_norm_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_inf_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_inf_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_zero_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_zero_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_zero_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_zero_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_SNaN_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_SNaN_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mant"}]},{"E_lit":[{"L_num":9}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_QNaN_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_QNaN_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mant"}]},{"E_lit":[{"L_num":9}]}]]},{"E_lit":["L_one"]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_NaN_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_NaN_H"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"xf16"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"xf16"}]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]]}]}]},{"Id":"fle_H"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fle_H"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"v1"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"v2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"is_quiet"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"v1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"v2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v1Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"v1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"v2Is0"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"v2"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"v2"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"result"}]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"1"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"v1Is0"}]},{"E_id":[{"Id":"v2Is0"}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s1"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"s2"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_lit":["L_true"]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"e2"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"m2"}]}]]}]]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"e2"}]}]]}]]}]}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_id":[{"Id":"is_quiet"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_SNaN_H"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_SNaN_H"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"v1"}]}]]},{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"v2"}]}]]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"fflags"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"haveHalfFPU"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"haveHalfFPU"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zhinx"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"haveHalfMin"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"haveHalfMin"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zhinxmin"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_rm_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_rm_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_rm_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FADD_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fadd.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSUB_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsub.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMUL_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmul.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FDIV_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fdiv.h"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_madd_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_madd_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_madd_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMADD_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmadd.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMSUB_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmsub.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNMSUB_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fnmsub.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNMADD_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fnmadd.h"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_f_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_f_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_f_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJ_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnj.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJN_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnjn.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSGNJX_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsgnjx.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMIN_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmin.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMAX_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmax.h"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_bin_x_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_bin_x_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_bin_x_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FEQ_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"feq.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FLT_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"flt.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FLE_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fle.h"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_ff_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_ff_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_ff_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FSQRT_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fsqrt.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_H_S"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.h.s"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_H_D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.h.d"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_S_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.s.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_D_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.d.h"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_fx_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_fx_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_fx_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_W_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.w.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_WU_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.wu.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_L_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.l.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_LU_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.lu.h"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_rm_xf_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_rm_xf_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_rm_xf_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_H_W"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.h.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_H_WU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.h.wu"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_H_L"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.h.l"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCVT_H_LU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcvt.h.lu"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_f_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_f_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_f_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMV_H_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmv.h.x"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"f_un_x_op_H"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"f_un_x_type_mnemonic_H"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"f_un_x_type_mnemonic_H"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FMV_X_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fmv.x.h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FCLASS_H"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fclass.h"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/FD/zfh_insts.sail"]},{"DEF_pragma":["file_start","extensions/FD/zfa_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"fcvtmod_helper"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fcvtmod_helper"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"x64"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"x64"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_subnorm"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_zero"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":52}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_nan_or_inf"}]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":11}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"true_mant"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_id":[{"Id":"mant"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"true_exp"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"exp"}]}]]},{"E_lit":[{"L_num":1023}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_too_large"}]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"true_exp"}]},{"E_lit":[{"L_num":84}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_too_small"}]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"true_exp"}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"is_zero"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_if":[{"E_id":[{"Id":"is_subnorm"}]},{"E_tuple":[[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_if":[{"E_id":[{"Id":"is_nan_or_inf"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_if":[{"E_id":[{"Id":"is_too_large"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_if":[{"E_id":[{"Id":"is_too_small"}]},{"E_tuple":[[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[84]}]}]]},{"P_id":[{"Id":"fixedpoint"}]}]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":84}]},{"E_id":[{"Id":"true_mant"}]}]]},{"E_id":[{"Id":"true_exp"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"integer"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"fixedpoint"}]},{"E_lit":[{"L_num":83}]},{"E_lit":[{"L_num":52}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fractional"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"fixedpoint"}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"add_bits_int"},[{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"integer"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"integer"}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"max_integer"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_lit":[{"L_hex":"80000000"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_lit":[{"L_hex":"7FFFFFFF"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"flags"}]}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"true_exp"}]},{"E_lit":[{"L_num":31}]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"integer"}]}]]},{"E_id":[{"Id":"max_integer"}]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fractional"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"flags"}]},{"E_id":[{"Id":"result"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]}]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/FD/zfa_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_utils_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"maybe_vmask"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"maybe_vmask"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_string":""}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0.t"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_eew_emul"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_eew_emul"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EEW"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]}]]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"elen"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":3}]}]]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_vtype"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_vtype"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Vtype_vill"},[{"E_id":[{"Id":"vtype"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"assert_vstart"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"assert_vstart"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"i"}]}]},{"E_block":[[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_rd_mask"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_rd_mask"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"rd"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"vm"}]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zvreg"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_reg_overlap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_reg_overlap"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"rs"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"rd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow_rs"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow_rd"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs_group"}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"EMUL_pow_rs"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow_rs"}]}]]},{"E_lit":[{"L_num":1}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_group"}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"EMUL_pow_rd"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow_rd"}]}]]},{"E_lit":[{"L_num":1}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs_int"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"vregidx_bits"},[{"E_id":[{"Id":"rs"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_int"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"vregidx_bits"},[{"E_id":[{"Id":"rd"}]}]]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"EMUL_pow_rs"}]},{"E_id":[{"Id":"EMUL_pow_rd"}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"rs_int"}]},{"E_id":[{"Id":"rs_group"}]}]]},{"E_id":[{"Id":"rd_int"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"rs_int"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"rd_int"}]},{"E_id":[{"Id":"rd_group"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"rs_int"}]},{"E_id":[{"Id":"rs_group"}]}]]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"rd_int"}]},{"E_id":[{"Id":"rd_group"}]}]]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"EMUL_pow_rs"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"EMUL_pow_rs"}]},{"E_id":[{"Id":"EMUL_pow_rd"}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"rd_int"}]},{"E_id":[{"Id":"rs_int"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"rd_int"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"rs_int"}]},{"E_id":[{"Id":"rs_group"}]}]]}]]}]]}]]},{"E_lit":["L_true"]}]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_segment"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_segment"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"nf"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"EMUL_pow"}]}]]}]]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow"}]}]]}]]},{"E_lit":[{"L_num":8}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_normal"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_normal"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_rd_mask"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_vd_masked"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_vd_masked"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"zvreg"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_vd_unmasked"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_vd_unmasked"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_variable_width"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_variable_width"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"SEW_new"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"LMUL_pow_new"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_rd_mask"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_eew_emul"},[{"E_id":[{"Id":"SEW_new"}]},{"E_id":[{"Id":"LMUL_pow_new"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_reduction"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_reduction"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_widening_reduction"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_widening_reduction"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EEW"}]}]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"elen"}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_load"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_load"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EEW"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_rd_mask"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_eew_emul"},[{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_segment"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_store"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_store"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EEW"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_eew_emul"},[{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_segment"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_indexed_load"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_indexed_load"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EEW_index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow_index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow_data"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_rd_mask"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_eew_emul"},[{"E_id":[{"Id":"EEW_index"}]},{"E_id":[{"Id":"EMUL_pow_index"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_segment"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EMUL_pow_data"}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_indexed_store"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_indexed_store"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EEW_index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow_index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow_data"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_eew_emul"},[{"E_id":[{"Id":"EEW_index"}]},{"E_id":[{"Id":"EMUL_pow_index"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_segment"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EMUL_pow_data"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[8]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"get_scalar"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_scalar"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"SEW"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"xlen"}]}]]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"sign_extend"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]},{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'p"}]},{"Nexp_constant":[0]}]},{"NC_lt":[{"Nexp_sum":[{"Nexp_times":[{"Nexp_constant":[4]},{"Nexp_var":[{"Var":"'p"}]}]},{"Nexp_constant":[3]}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_constant":[4]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]},{"Id":"get_velem_quad"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_velem_quad"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'syn#n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'syn#n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'syn#n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_velem_quad"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_velem_quad"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vd"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"input"}]},{"P_id":[{"Id":"i"}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"input"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_utils_insts.sail:162.30-162.31"}]}]},{"E_app":[{"Id":"write_single_element"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"input"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"SEW"}]}]]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_and":[{"NC_and":[{"NC_le":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[64]}]}]},{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'p"}]},{"Nexp_constant":[0]}]},{"NC_lt":[{"Nexp_sum":[{"Nexp_times":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'p"}]}]},{"Nexp_constant":[7]}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[8]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]}]}]},{"Id":"get_velem_oct_vec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_velem_oct_vec"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"n"}]},{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"i"}]}]]},{"E_vector":[[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":7}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":6}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[8]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_velem_oct_vec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_velem_oct_vec"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vd"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"input"}]},{"P_id":[{"Id":"i"}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_app":[{"Id":"write_single_element"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"input"}]},{"E_id":[{"Id":"j"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_and":[{"NC_and":[{"NC_le":[{"Nexp_constant":[8]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[64]}]}]},{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'p"}]},{"Nexp_constant":[0]}]},{"NC_lt":[{"Nexp_sum":[{"Nexp_times":[{"Nexp_constant":[4]},{"Nexp_var":[{"Var":"'p"}]}]},{"Nexp_constant":[3]}]},{"Nexp_var":[{"Var":"'n"}]}]}]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[4]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]}]}]},{"Id":"get_velem_quad_vec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_velem_quad_vec"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"i"}]}]]},{"E_vector":[[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"v"}]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"NC_ge":[{"Nexp_var":[{"Var":"'p"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[4]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_velem_quad_vec"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_velem_quad_vec"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vd"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"input"}]},{"P_id":[{"Id":"i"}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_app":[{"Id":"write_single_element"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"input"}]},{"E_id":[{"Id":"j"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_id":[{"Id":"nat"}]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"get_start_element"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_start_element"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"start_element"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"start_element"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_lit":[{"L_num":3}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"Err"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"start_element"}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"int"}]}]}]},{"Id":"get_end_element"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_end_element"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":1}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"init_masked_result"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_masked_result"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"EEW"}]},{"P_id":[{"Id":"LMUL_pow"}]},{"P_id":[{"Id":"vd_val"}]},{"P_id":[{"Id":"vm_val"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"mask_ag"}]}]},{"E_app":[{"Id":"get_vtype_vma"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"mask"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_utils_insts.sail:229.34-229.35"}]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_zero"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"mask_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_one"]}]}]]}]}]}]}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"mask"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_constraint":[{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"init_masked_source"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_masked_source"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"LMUL_pow"}]},{"P_id":[{"Id":"vm_val"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"mask"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_utils_insts.sail:281.34-281.35"}]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_zero"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_one"]}]}]]}]}]}]}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"mask"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'syn#n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'syn#n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'syn#n"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"init_masked_result_carry"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_masked_result_carry"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"EEW"}]},{"P_id":[{"Id":"LMUL_pow"}]},{"P_id":[{"Id":"vd_val"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"mask"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"result"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_utils_insts.sail:319.34-319.35"}]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_one"]}]}]]}]}]}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"mask"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'syn#n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'syn#n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'syn#n"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"result"},[{"A_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]}]},{"A_typ":[{"Typ_id":[{"Id":"unit"}]}]}]]}]}]},{"Id":"init_masked_result_cmp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_masked_result_cmp"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"EEW"}]},{"P_id":[{"Id":"LMUL_pow"}]},{"P_id":[{"Id":"vd_val"}]},{"P_id":[{"Id":"vm_val"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Err"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"mask_ag"}]}]},{"E_app":[{"Id":"get_vtype_vma"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"mask"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Id":"result"}]},{"E_lit":["L_undef"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_utils_insts.sail:359.34-359.35"}]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_zero"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"mask_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_one"]}]}]]}]}]}]}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_tuple":[[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"mask"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'p"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'q"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_and":[{"NC_app":[{"Id":"is_sew_bitsize"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"NC_app":[{"Id":"nfields_range"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'p"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]},{"Typ_id":[{"Id":"vregidx"}]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]]}]}]},{"Id":"read_vreg_seg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_vreg_seg"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"num_elem"}]},{"P_id":[{"Id":"SEW"}]},{"P_id":[{"Id":"LMUL_pow"}]},{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vrid"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"LMUL_reg"}]}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"LMUL_pow"}]}]]}]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]},{"A_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]}]}]]},{"Id":"vreg_list"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"nf"}]}]]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_var":[{"Var":"'m"}]}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"vreg_list"}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"vreg_list"}]},{"E_id":[{"Id":"j"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vrid"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"LMUL_reg"}]}]]}]]}]]}]]}]}]]}]},{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"vreg_list"}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]}]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"vreg_list"}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vreg_list"}]},{"E_id":[{"Id":"j"}]}]]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]}]]}]}]]}]}]]}]},{"E_id":[{"Id":"result"}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'n"}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'syn#n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'syn#n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'syn#n"}]}]}]]}]}],{"Typ_id":[{"Id":"nat"}]}]}]},{"Id":"get_shift_amount"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_shift_amount"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"bit_val"}]},{"P_id":[{"Id":"SEW"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"lowlog2bits"}]},{"E_app":[{"Id":"log2"},[{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"lt_int"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"lowlog2bits"}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"lowlog2bits"}]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"bit_val"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_utils_insts.sail:416.43-416.44"}]}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"bit_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"lowlog2bits"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"get_fixed_rounding_incr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_fixed_rounding_incr"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"vec_elem"}]},{"P_id":[{"Id":"shift_amount"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"shift_amount"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_bin":"0"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_mode"}]},{"E_app":[{"Id":"_get_Vcsr_vxrm"},[{"E_id":[{"Id":"vcsr"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"vec_elem"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_utils_insts.sail:427.28-427.29"}]}]},{"E_match":[{"E_id":[{"Id":"rounding_mode"}]},[{"Pat_exp":[{"P_lit":[{"L_bin":"00"}]},{"E_app":[{"Id":"bit_to_bits"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vec_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"shift_amount"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01"}]},{"E_block":[[{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vec_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"shift_amount"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":["L_one"]}]]},{"E_app":[["Or_Bool"],[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"shift_amount"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":["L_false"]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"vec_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"shift_amount"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"shift_amount"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vec_elem"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_lit":["L_one"]}]]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10"}]},{"E_lit":[{"L_bin":"0"}]}]},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vec_elem"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_lit":["L_one"]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"vec_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"shift_amount"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"shift_amount"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"unsigned_saturation"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"unsigned_saturation"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"len"}]},{"P_id":[{"Id":"elem"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_var":[{"Var":"'m"}]}]},{"NC_gt":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"signed_saturation"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"signed_saturation"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"len"}]},{"P_id":[{"Id":"elem"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"vcsr"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]},{"E_lit":[{"L_bin":"1"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"len"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_and":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"implicit"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[8]}]}]}]]}]}]]}],{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[8]}]}]}]]}]}]]}]}]},{"Id":"vrev8"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"vrev8"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"m"}]},{"P_id":[{"Id":"input"}]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[8]}]}]}]]}]}]]},{"Id":"output"}]},{"E_id":[{"Id":"input"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"output"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"output"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rev8"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"input"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_id":[{"Id":"output"}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_utils_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_fp_utils_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"valid_fp_op"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"valid_fp_op"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm_3b"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"valid_sew"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":128}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"valid_rm"}]},{"E_app":[{"Id":"not"},[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"rm_3b"}]},{"E_lit":[{"L_bin":"101"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"rm_3b"}]},{"E_lit":[{"L_bin":"110"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"rm_3b"}]},{"E_lit":[{"L_bin":"111"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"valid_sew"}]},{"E_id":[{"Id":"valid_rm"}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_fp_normal"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_fp_normal"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm_3b"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_rd_mask"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_fp_op"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_fp_vd_masked"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_fp_vd_masked"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm_3b"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"zvreg"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_fp_op"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_fp_vd_unmasked"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_fp_vd_unmasked"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm_3b"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_fp_op"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_fp_variable_width"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_fp_variable_width"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm_3b"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"SEW_new"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"LMUL_pow_new"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_rd_mask"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_fp_op"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_eew_emul"},[{"E_id":[{"Id":"SEW_new"}]},{"E_id":[{"Id":"LMUL_pow_new"}]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_fp_reduction"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_fp_reduction"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm_3b"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_fp_op"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"illegal_fp_widening_reduction"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"illegal_fp_widening_reduction"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"rm_3b"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EEW"}]}]}]]},{"E_block":[[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_fp_op"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"elen"}]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_inf"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_inf"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_neg_inf_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_neg_inf_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_neg_inf_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_norm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_norm"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_neg_norm_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_neg_norm_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_neg_norm_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_subnorm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_subnorm"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_neg_subnorm_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_neg_subnorm_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_neg_subnorm_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_neg_zero"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_neg_zero"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_zero"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_zero"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_subnorm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_subnorm"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_pos_subnorm_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_pos_subnorm_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_pos_subnorm_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_norm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_norm"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_pos_norm_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_pos_norm_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_pos_norm_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_pos_inf"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_pos_inf"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_pos_inf_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_pos_inf_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_pos_inf_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_SNaN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_SNaN"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_SNaN_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_QNaN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_QNaN"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_QNaN_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_QNaN_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_QNaN_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"f_is_NaN"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"f_is_NaN"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'n"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_id":[{"Id":"fregidx"}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]},{"Id":"get_scalar_fp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_scalar_fp"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"SEW"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_string":"invalid vector floating-point type width: FLEN < SEW"}]}]},{"E_match":[{"E_id":[{"Id":"SEW"}]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"rounding_mode"}]}]}]},{"Id":"get_fp_rounding_mode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_fp_rounding_mode"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"encdec_rounding_mode_backwards"},[{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"negate_fp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"negate_fp"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"negate_H"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"negate_S"},[{"E_id":[{"Id":"xf"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"negate_D"},[{"E_id":[{"Id":"xf"}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_add"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_add"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_sub"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_sub"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_min"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_min"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"op1_lt_op2"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Lt_quiet"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Lt_quiet"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Lt_quiet"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_val"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op1"}]}]]},{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op2"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op1"}]}]]},{"E_id":[{"Id":"op2"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op2"}]}]]},{"E_id":[{"Id":"op1"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero"},[{"E_id":[{"Id":"op1"}]}]]},{"E_app":[{"Id":"f_is_pos_zero"},[{"E_id":[{"Id":"op2"}]}]]}]]},{"E_id":[{"Id":"op1"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero"},[{"E_id":[{"Id":"op2"}]}]]},{"E_app":[{"Id":"f_is_pos_zero"},[{"E_id":[{"Id":"op1"}]}]]}]]},{"E_id":[{"Id":"op2"}]},{"E_if":[{"E_id":[{"Id":"op1_lt_op2"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_max"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_max"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"op1_lt_op2"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Lt_quiet"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Lt_quiet"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Lt_quiet"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_val"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op1"}]}]]},{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op2"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op1"}]}]]},{"E_id":[{"Id":"op2"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN"},[{"E_id":[{"Id":"op2"}]}]]},{"E_id":[{"Id":"op1"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero"},[{"E_id":[{"Id":"op1"}]}]]},{"E_app":[{"Id":"f_is_pos_zero"},[{"E_id":[{"Id":"op2"}]}]]}]]},{"E_id":[{"Id":"op2"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero"},[{"E_id":[{"Id":"op2"}]}]]},{"E_app":[{"Id":"f_is_pos_zero"},[{"E_id":[{"Id":"op1"}]}]]}]]},{"E_id":[{"Id":"op1"}]},{"E_if":[{"E_id":[{"Id":"op1_lt_op2"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"op1"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"fp_eq"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_eq"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Eq"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Eq"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Eq"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"fp_gt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_gt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"temp_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Le"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Le"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Le"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_val"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"fflags"}]},{"E_lit":[{"L_bin":"10000"}]}]]},{"E_lit":["L_false"]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"temp_val"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"fp_ge"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_ge"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"temp_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Lt"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Lt"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Lt"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_val"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"fflags"}]},{"E_lit":[{"L_bin":"10000"}]}]]},{"E_lit":["L_false"]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"temp_val"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"fp_lt"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_lt"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Lt"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Lt"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Lt"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"fp_le"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_le"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Le"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Le"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Le"},[{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_mul"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_mul"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_div"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_div"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"op2"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_muladd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_muladd"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]},{"P_id":[{"Id":"opadd"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"opadd"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opadd"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opadd"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opadd"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_nmuladd"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_nmuladd"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]},{"P_id":[{"Id":"opadd"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"op1"}]},{"E_app":[{"Id":"negate_fp"},[{"E_id":[{"Id":"op1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"opadd"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opadd"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opadd"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opadd"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_mulsub"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_mulsub"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]},{"P_id":[{"Id":"opsub"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"opsub"}]},{"E_app":[{"Id":"negate_fp"},[{"E_id":[{"Id":"opsub"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"opsub"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opsub"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opsub"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opsub"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_nmulsub"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_nmulsub"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"op1"}]},{"P_id":[{"Id":"op2"}]},{"P_id":[{"Id":"opsub"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"opsub"}]},{"E_app":[{"Id":"negate_fp"},[{"E_id":[{"Id":"opsub"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"op1"}]},{"E_app":[{"Id":"negate_fp"},[{"E_id":[{"Id":"op1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"result_val"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"opsub"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opsub"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opsub"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"op1"}]},{"E_id":[{"Id":"op2"}]},{"E_id":[{"Id":"opsub"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"result_val"}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]},{"Id":"fp_class"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_class"},{"Pat_exp":[{"P_id":[{"Id":"xf"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"P_id":[{"Id":"result_val_10b"}]}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_inf"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0000000001"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_norm"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0000000010"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_subnorm"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0000000100"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_zero"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0000001000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_zero"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0000010000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_subnorm"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0000100000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_norm"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0001000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_inf"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0010000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_SNaN"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"0100000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_QNaN"},[{"E_id":[{"Id":"xf"}]}]]},{"E_lit":[{"L_bin":"1000000000"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]}]}]}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"xf"}]}]]},{"E_id":[{"Id":"result_val_10b"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]}]}]},{"Id":"fp_widen"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fp_widen"},{"Pat_exp":[{"P_id":[{"Id":"nval"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"wval"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"nval"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"nval"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f32ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"nval"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"wval"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16ToI16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f16ToI16"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_H"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"flag"}]},{"P_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"riscv_f16ToI32"},[{"E_id":[{"Id":"rm"}]},{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":15}]}]]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":15}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":15}]}]]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":15}]}]]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"flag"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig32"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]]}]}]},{"Id":"riscv_f16ToI8"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f16ToI8"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_H"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"flag"}]},{"P_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"riscv_f16ToI32"},[{"E_id":[{"Id":"rm"}]},{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":7}]}]]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":7}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":7}]}]]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":7}]}]]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"flag"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig32"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f32ToI16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f32ToI16"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_S"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"flag"}]},{"P_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"riscv_f32ToI32"},[{"E_id":[{"Id":"rm"}]},{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":15}]}]]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":15}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":15}]}]]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":15}]}]]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"flag"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig32"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16ToUi16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f16ToUi16"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_H"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"flag"}]},{"P_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"riscv_f16ToUi32"},[{"E_id":[{"Id":"rm"}]},{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":16}]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"flag"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig32"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]]}]}]},{"Id":"riscv_f16ToUi8"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f16ToUi8"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_H"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"flag"}]},{"P_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"riscv_f16ToUi32"},[{"E_id":[{"Id":"rm"}]},{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"flag"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig32"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f32ToUi16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f32ToUi16"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_S"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"flag"}]},{"P_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"riscv_f32ToUi32"},[{"E_id":[{"Id":"rm"}]},{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"sig32"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":16}]}]]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"flag"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig32"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"rsqrt7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rsqrt7"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"sub"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[5,8,11]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[10,23,52]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]]},{"P_tuple":[[{"P_id":[{"Id":"sig"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"e"}]},{"P_id":[{"Id":"s"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"v"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_tuple":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":10}]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":15}]}]]}]]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":10}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_tuple":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":23}]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":31}]}]]}]]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":23}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_tuple":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":52}]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":63}]}]]}]]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":52}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[128]}]},{"A_typ":[{"Typ_id":[{"Id":"int"}]}]}]]},{"P_id":[{"Id":"table"}]}]},{"E_vector":[[{"E_lit":[{"L_num":52}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":50}]},{"E_lit":[{"L_num":48}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":46}]},{"E_lit":[{"L_num":44}]},{"E_lit":[{"L_num":43}]},{"E_lit":[{"L_num":42}]},{"E_lit":[{"L_num":41}]},{"E_lit":[{"L_num":40}]},{"E_lit":[{"L_num":39}]},{"E_lit":[{"L_num":38}]},{"E_lit":[{"L_num":36}]},{"E_lit":[{"L_num":35}]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":33}]},{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":29}]},{"E_lit":[{"L_num":28}]},{"E_lit":[{"L_num":27}]},{"E_lit":[{"L_num":26}]},{"E_lit":[{"L_num":25}]},{"E_lit":[{"L_num":24}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":20}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":13}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":125}]},{"E_lit":[{"L_num":123}]},{"E_lit":[{"L_num":121}]},{"E_lit":[{"L_num":119}]},{"E_lit":[{"L_num":118}]},{"E_lit":[{"L_num":116}]},{"E_lit":[{"L_num":114}]},{"E_lit":[{"L_num":113}]},{"E_lit":[{"L_num":111}]},{"E_lit":[{"L_num":109}]},{"E_lit":[{"L_num":108}]},{"E_lit":[{"L_num":106}]},{"E_lit":[{"L_num":105}]},{"E_lit":[{"L_num":103}]},{"E_lit":[{"L_num":102}]},{"E_lit":[{"L_num":100}]},{"E_lit":[{"L_num":99}]},{"E_lit":[{"L_num":97}]},{"E_lit":[{"L_num":96}]},{"E_lit":[{"L_num":95}]},{"E_lit":[{"L_num":93}]},{"E_lit":[{"L_num":92}]},{"E_lit":[{"L_num":91}]},{"E_lit":[{"L_num":90}]},{"E_lit":[{"L_num":88}]},{"E_lit":[{"L_num":87}]},{"E_lit":[{"L_num":86}]},{"E_lit":[{"L_num":85}]},{"E_lit":[{"L_num":84}]},{"E_lit":[{"L_num":83}]},{"E_lit":[{"L_num":82}]},{"E_lit":[{"L_num":80}]},{"E_lit":[{"L_num":79}]},{"E_lit":[{"L_num":78}]},{"E_lit":[{"L_num":77}]},{"E_lit":[{"L_num":76}]},{"E_lit":[{"L_num":75}]},{"E_lit":[{"L_num":74}]},{"E_lit":[{"L_num":73}]},{"E_lit":[{"L_num":72}]},{"E_lit":[{"L_num":71}]},{"E_lit":[{"L_num":70}]},{"E_lit":[{"L_num":70}]},{"E_lit":[{"L_num":69}]},{"E_lit":[{"L_num":68}]},{"E_lit":[{"L_num":67}]},{"E_lit":[{"L_num":66}]},{"E_lit":[{"L_num":65}]},{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":61}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":58}]},{"E_lit":[{"L_num":57}]},{"E_lit":[{"L_num":56}]},{"E_lit":[{"L_num":56}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":54}]},{"E_lit":[{"L_num":53}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"normalized_exp"}]},{"P_id":[{"Id":"normalized_sig"}]}]]},{"E_if":[{"E_id":[{"Id":"sub"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"nr_leadingzeros"}]},{"E_app":[{"Id":"count_leading_zeros"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"nr_leadingzeros"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_utils_insts.sail:464.35-464.36"}]}]},{"E_tuple":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"nr_leadingzeros"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"add_atom"},[{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"nr_leadingzeros"}]}]]}]]}]]}]]}]]}]}]]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"sig"}]}]]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"idx"}]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"v"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"normalized_exp"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"normalized_sig"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"normalized_exp"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"normalized_sig"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":17}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"normalized_exp"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"normalized_sig"}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":46}]}]]}]]}]]}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"idx"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"idx"}]},{"E_lit":[{"L_num":128}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_utils_insts.sail:475.29-475.30"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"out_sig"}]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"s"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"table"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":127}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":7}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"out_exp"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"e"}]},{"E_app":[{"Id":"quot_round_zero"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":3}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"e"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"normalized_exp"}]}]]}]]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"out_exp"}]},{"E_id":[{"Id":"out_sig"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16Rsqrte7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f16Rsqrte7"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_H"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"fp_class"},[{"E_id":[{"Id":"v"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"0001"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0002"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0004"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0100"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0200"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"7E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0008"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"FC00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0010"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0080"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"0000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0020"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rsqrt7"},[{"E_id":[{"Id":"v"}]},{"E_lit":["L_true"]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rsqrt7"},[{"E_id":[{"Id":"v"}]},{"E_lit":["L_false"]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32Rsqrte7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f32Rsqrte7"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_S"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"fp_class"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"0001"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0002"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0004"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0100"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0200"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"7FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0008"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"FF800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0010"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7F800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0080"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"00000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0020"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rsqrt7"},[{"E_id":[{"Id":"v"}]},{"E_lit":["L_true"]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rsqrt7"},[{"E_id":[{"Id":"v"}]},{"E_lit":["L_false"]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64Rsqrte7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f64Rsqrte7"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_D"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"fp_class"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"0001"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0002"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0004"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0100"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0200"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"7FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0008"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"FFF0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0010"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FF0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0080"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0020"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rsqrt7"},[{"E_id":[{"Id":"v"}]},{"E_lit":["L_true"]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rsqrt7"},[{"E_id":[{"Id":"v"}]},{"E_lit":["L_false"]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'m"}]}]},{"QI_constraint":[{"NC_ge":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[0]}]}]},{"QI_constraint":[{"NC_set":[{"Nexp_var":[{"Var":"'m"}]},[16,32,64]]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_tuple":[[{"Typ_id":[{"Id":"bool"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"recip7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"recip7"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"rm_3b"}]},{"P_id":[{"Id":"sub"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[5,8,11]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[10,23,52]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]]},{"P_tuple":[[{"P_id":[{"Id":"sig"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"e"}]},{"P_id":[{"Id":"s"}]}]]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"v"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_tuple":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":10}]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":15}]}]]}]]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":10}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_tuple":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":23}]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":31}]}]]}]]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":23}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_tuple":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":52}]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":63}]}]]}]]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":52}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[128]}]},{"A_typ":[{"Typ_id":[{"Id":"int"}]}]}]]},{"P_id":[{"Id":"table"}]}]},{"E_vector":[[{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":125}]},{"E_lit":[{"L_num":123}]},{"E_lit":[{"L_num":121}]},{"E_lit":[{"L_num":119}]},{"E_lit":[{"L_num":117}]},{"E_lit":[{"L_num":116}]},{"E_lit":[{"L_num":114}]},{"E_lit":[{"L_num":112}]},{"E_lit":[{"L_num":110}]},{"E_lit":[{"L_num":109}]},{"E_lit":[{"L_num":107}]},{"E_lit":[{"L_num":105}]},{"E_lit":[{"L_num":104}]},{"E_lit":[{"L_num":102}]},{"E_lit":[{"L_num":100}]},{"E_lit":[{"L_num":99}]},{"E_lit":[{"L_num":97}]},{"E_lit":[{"L_num":96}]},{"E_lit":[{"L_num":94}]},{"E_lit":[{"L_num":93}]},{"E_lit":[{"L_num":91}]},{"E_lit":[{"L_num":90}]},{"E_lit":[{"L_num":88}]},{"E_lit":[{"L_num":87}]},{"E_lit":[{"L_num":85}]},{"E_lit":[{"L_num":84}]},{"E_lit":[{"L_num":83}]},{"E_lit":[{"L_num":81}]},{"E_lit":[{"L_num":80}]},{"E_lit":[{"L_num":79}]},{"E_lit":[{"L_num":77}]},{"E_lit":[{"L_num":76}]},{"E_lit":[{"L_num":75}]},{"E_lit":[{"L_num":74}]},{"E_lit":[{"L_num":72}]},{"E_lit":[{"L_num":71}]},{"E_lit":[{"L_num":70}]},{"E_lit":[{"L_num":69}]},{"E_lit":[{"L_num":68}]},{"E_lit":[{"L_num":66}]},{"E_lit":[{"L_num":65}]},{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":61}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":58}]},{"E_lit":[{"L_num":57}]},{"E_lit":[{"L_num":56}]},{"E_lit":[{"L_num":55}]},{"E_lit":[{"L_num":54}]},{"E_lit":[{"L_num":53}]},{"E_lit":[{"L_num":52}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":50}]},{"E_lit":[{"L_num":49}]},{"E_lit":[{"L_num":48}]},{"E_lit":[{"L_num":47}]},{"E_lit":[{"L_num":46}]},{"E_lit":[{"L_num":45}]},{"E_lit":[{"L_num":44}]},{"E_lit":[{"L_num":43}]},{"E_lit":[{"L_num":42}]},{"E_lit":[{"L_num":41}]},{"E_lit":[{"L_num":40}]},{"E_lit":[{"L_num":40}]},{"E_lit":[{"L_num":39}]},{"E_lit":[{"L_num":38}]},{"E_lit":[{"L_num":37}]},{"E_lit":[{"L_num":36}]},{"E_lit":[{"L_num":35}]},{"E_lit":[{"L_num":35}]},{"E_lit":[{"L_num":34}]},{"E_lit":[{"L_num":33}]},{"E_lit":[{"L_num":32}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":30}]},{"E_lit":[{"L_num":29}]},{"E_lit":[{"L_num":28}]},{"E_lit":[{"L_num":28}]},{"E_lit":[{"L_num":27}]},{"E_lit":[{"L_num":26}]},{"E_lit":[{"L_num":25}]},{"E_lit":[{"L_num":25}]},{"E_lit":[{"L_num":24}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":21}]},{"E_lit":[{"L_num":20}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":19}]},{"E_lit":[{"L_num":18}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":17}]},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":13}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":12}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":11}]},{"E_lit":[{"L_num":10}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"nr_leadingzeros"}]},{"E_app":[{"Id":"count_leading_zeros"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"nr_leadingzeros"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_utils_insts.sail:552.29-552.30"}]}]},{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"normalized_exp"}]},{"P_id":[{"Id":"normalized_sig"}]}]]},{"E_if":[{"E_id":[{"Id":"sub"}]},{"E_block":[[{"E_tuple":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"nr_leadingzeros"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sig"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"add_atom"},[{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"nr_leadingzeros"}]}]]}]]}]]}]]}]]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"sig"}]}]]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"idx"}]}]},{"E_match":[{"E_app":[{"Id":"bitvector_length"},[{"E_id":[{"Id":"v"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"normalized_sig"}]},{"E_lit":[{"L_num":9}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"normalized_sig"}]},{"E_lit":[{"L_num":22}]},{"E_lit":[{"L_num":16}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"normalized_sig"}]},{"E_lit":[{"L_num":51}]},{"E_lit":[{"L_num":45}]}]]}]]}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"idx"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"idx"}]},{"E_lit":[{"L_num":128}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_utils_insts.sail:565.29-565.30"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"mid_exp"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"e"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"e"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"normalized_exp"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mid_sig"}]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"s"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"table"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":127}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":7}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"out_exp"}]},{"P_id":[{"Id":"out_sig"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mid_exp"}]},{"E_app":[{"Id":"zeros"},[{"E_id":[{"Id":"e"}]}]]}]]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"mid_exp"}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"mid_sig"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mid_exp"}]},{"E_app":[{"Id":"ones"},[{"E_id":[{"Id":"e"}]}]]}]]},{"E_block":[[{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"mid_sig"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"01"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]}]]}]]},{"E_tuple":[[{"E_id":[{"Id":"mid_exp"}]},{"E_id":[{"Id":"mid_sig"}]}]]}]}]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"sub"}]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"nr_leadingzeros"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"rm_3b"}]},{"E_lit":[{"L_bin":"001"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"rm_3b"}]},{"E_lit":[{"L_bin":"010"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"rm_3b"}]},{"E_lit":[{"L_bin":"011"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"sign"}]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]]}]]},{"E_block":[[{"E_tuple":[[{"E_lit":["L_true"]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"e"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"0"}]},{"E_app":[{"Id":"ones"},[{"E_id":[{"Id":"s"}]}]]}]]}]]}]]}]]}]]}]]},{"E_tuple":[[{"E_lit":["L_true"]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"ones"},[{"E_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_id":[{"Id":"s"}]}]]}]]}]]}]]}]]}]}]]},{"E_tuple":[[{"E_lit":["L_false"]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"out_exp"}]},{"E_id":[{"Id":"out_sig"}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]}]}]},{"Id":"riscv_f16Recip7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f16Recip7"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_H"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"round_abnormal_true"}]},{"P_id":[{"Id":"res_true"}]}]]},{"E_app":[{"Id":"recip7"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"rm"}]},{"E_lit":["L_true"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"round_abnormal_false"}]},{"P_id":[{"Id":"res_false"}]}]]},{"E_app":[{"Id":"recip7"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"rm"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"fp_class"},[{"E_id":[{"Id":"v"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"0001"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"8000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0080"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"0000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0008"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"FC00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0010"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0100"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0200"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"7E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0004"}]},{"E_if":[{"E_id":[{"Id":"round_abnormal_true"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0020"}]},{"E_if":[{"E_id":[{"Id":"round_abnormal_true"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]},{"Pat_exp":[{"P_wild":[]},{"E_if":[{"E_id":[{"Id":"round_abnormal_false"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_false"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_false"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"riscv_f32Recip7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f32Recip7"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_S"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"round_abnormal_true"}]},{"P_id":[{"Id":"res_true"}]}]]},{"E_app":[{"Id":"recip7"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"rm"}]},{"E_lit":["L_true"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"round_abnormal_false"}]},{"P_id":[{"Id":"res_false"}]}]]},{"E_app":[{"Id":"recip7"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"rm"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"fp_class"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"0001"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"80000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0080"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"00000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0008"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"FF800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0010"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7F800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0100"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0200"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"7FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0004"}]},{"E_if":[{"E_id":[{"Id":"round_abnormal_true"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0020"}]},{"E_if":[{"E_id":[{"Id":"round_abnormal_true"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]},{"Pat_exp":[{"P_wild":[]},{"E_if":[{"E_id":[{"Id":"round_abnormal_false"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_false"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_false"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]}]}]},{"Id":"riscv_f64Recip7"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"riscv_f64Recip7"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"bits_rm"}]},{"P_id":[{"Id":"rm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bits_D"}]},{"P_id":[{"Id":"v"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"round_abnormal_true"}]},{"P_id":[{"Id":"res_true"}]}]]},{"E_app":[{"Id":"recip7"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"rm"}]},{"E_lit":["L_true"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"round_abnormal_false"}]},{"P_id":[{"Id":"res_false"}]}]]},{"E_app":[{"Id":"recip7"},[{"E_id":[{"Id":"v"}]},{"E_id":[{"Id":"rm"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"fp_class"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]},[{"Pat_exp":[{"P_lit":[{"L_hex":"0001"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"8000000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0080"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"0000000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0008"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"FFF0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0010"}]},{"E_tuple":[[{"E_app":[{"Id":"dzFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FF0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0100"}]},{"E_tuple":[[{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_hex":"7FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0200"}]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_lit":[{"L_hex":"7FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0004"}]},{"E_if":[{"E_id":[{"Id":"round_abnormal_true"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_hex":"0020"}]},{"E_if":[{"E_id":[{"Id":"round_abnormal_true"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_true"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]},{"Pat_exp":[{"P_wild":[]},{"E_if":[{"E_id":[{"Id":"round_abnormal_false"}]},{"E_tuple":[[{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"nxFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ofFlag"},[{"E_lit":["L_unit"]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_false"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"res_false"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_fp_utils_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_vset_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"sew_flag"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"sew_flag"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_string":"e8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_string":"e16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_string":"e32"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_string":"e64"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"maybe_lmul_flag"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"maybe_lmul_flag"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"mf8"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"mf4"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"mf2"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"m1"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"m2"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"m4"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"m8"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011"}]}]}]},{"MCL_forwards":[{"Pat_exp":[{"P_lit":[{"L_string":""}]},{"E_lit":[{"L_bin":"000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"ta_flag"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"ta_flag"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"ta"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"tu"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"string"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"ma_flag"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"ma_flag"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"ma"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"mu"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"string"}]},{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]]}]}]},{"Id":"vtype_assembly"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vtype_assembly"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_when":[{"MP_string_append":[[{"MP_app":[{"Id":"sew_flag"},[{"MP_id":[{"Id":"sew"}]}]]},{"MP_app":[{"Id":"maybe_lmul_flag"},[{"MP_id":[{"Id":"lmul"}]}]]},{"MP_app":[{"Id":"ta_flag"},[{"MP_id":[{"Id":"ta"}]}]]},{"MP_app":[{"Id":"ma_flag"},[{"MP_id":[{"Id":"ma"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"sew"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":["L_one"]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"lmul"}]},{"E_lit":[{"L_bin":"100"}]}]]}]]}]},{"MPat_when":[{"MP_tuple":[[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"sew"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":["L_one"]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"lmul"}]},{"E_lit":[{"L_bin":"100"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ma"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ta"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"sew"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"lmul"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]}]]}]},{"MPat_pat":[{"MP_tuple":[[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"handle_illegal_vtype"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"handle_illegal_vtype"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_field":[{"LE_id":[{"Id":"vtype"}]},{"Id":"bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"vl"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"vtype"}]},{"E_field":[{"E_id":[{"Id":"vtype"}]},{"Id":"bits"}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"vl"}]},{"E_id":[{"Id":"vl"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]}]]}]}]}]]}},{"DEF_let":{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"vl_use_ceil"}]}]},{"E_lit":["L_false"]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[1]}]},{"A_nexp":[{"Nexp_exp":[{"Nexp_constant":[7]}]}]}]]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[0]}]},{"A_nexp":[{"Nexp_exp":[{"Nexp_constant":[7]}]}]}]]}]}]},{"Id":"calculate_new_vl"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"calculate_new_vl"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"AVL"}]}]},{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[1]}]},{"A_nexp":[{"Nexp_id":[{"Id":"vlen"}]}]}]]},{"P_id":[{"Id":"VLMAX"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"AVL"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"AVL"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"AVL"}]},{"E_id":[{"Id":"VLMAX"}]}]]},{"E_id":[{"Id":"AVL"}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"AVL"}]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"VLMAX"}]}]]}]]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"vl_use_ceil"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"AVL"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"VLMAX"}]}]}]]},{"E_id":[{"Id":"VLMAX"}]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"bool"}]},{"Typ_id":[{"Id":"regidx"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"execute_vsetvl_type"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"execute_vsetvl_type"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"ma"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"ta"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"sew"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"lmul"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"avl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"requires_fixed_vlmax"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rd"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"is_invalid_lmul_pow"},[{"E_id":[{"Id":"lmul"}]}]]},{"E_app":[{"Id":"is_invalid_sew_pow"},[{"E_id":[{"Id":"sew"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"handle_illegal_vtype"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_new"}]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"lmul"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow_new"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"sew"}]}]]},{"E_lit":[{"L_num":3}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"lmul_sew_ratio"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"lmul_sew_ratio_new"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"LMUL_pow_new"}]},{"E_id":[{"Id":"SEW_pow_new"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"SEW_pow_new"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow_new"}]},{"E_id":[{"Id":"elen_exp"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"requires_fixed_vlmax"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"lmul_sew_ratio"}]},{"E_id":[{"Id":"lmul_sew_ratio_new"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_vtype"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"handle_illegal_vtype"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow_new"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow_new"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"vl"}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"calculate_new_vl"},[{"E_id":[{"Id":"avl"}]},{"E_id":[{"Id":"VLMAX"}]}]]}]]}]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"vl"}]}]]},{"E_assign":[{"LE_id":[{"Id":"vtype"}]},{"E_app":[{"Id":"_update_Vtype_vlmul"},[{"E_app":[{"Id":"_update_Vtype_vsew"},[{"E_app":[{"Id":"_update_Vtype_vta"},[{"E_app":[{"Id":"_update_Vtype_vma"},[{"E_app":[{"Id":"_update_Vtype_vill"},[{"E_app":[{"Id":"Mk_Vtype"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_id":[{"Id":"ma"}]}]]},{"E_id":[{"Id":"ta"}]}]]},{"E_id":[{"Id":"sew"}]}]]},{"E_id":[{"Id":"lmul"}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"vtype"}]},{"E_field":[{"E_id":[{"Id":"vtype"}]},{"Id":"bits"}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"vl"}]},{"E_id":[{"Id":"vl"}]}]]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"vstart"}]},{"E_id":[{"Id":"vstart"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_vset_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_arith_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VRGATHER"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VRGATHEREI16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSLL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vand.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vor.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vxor.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VRGATHER"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrgather.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VRGATHEREI16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrgatherei16.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsaddu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssubu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSLL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsll.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsmul.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsrl.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsra.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssrl.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VSSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssra.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vminu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmin.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmaxu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VV_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmax.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nvsfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_nvsfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nvsfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NVS_VNSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NVS_VNSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101101"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nvsfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nvstype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nvstype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NVS_VNSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnsrl.wv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NVS_VNSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnsra.wv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_nvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NV_VNCLIPU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NV_VNCLIP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NV_VNCLIPU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnclipu.wv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NV_VNCLIP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnclip.wv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vxfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vxfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VRSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSLL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vxtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vxtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vadd.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsub.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VRSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrsub.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vand.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vor.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vxor.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsaddu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsadd.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssubu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssub.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSLL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsll.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsmul.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsrl.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsra.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssrl.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssra.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vminu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmin.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmaxu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmax.vx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nxsfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_nxsfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nxsfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NXS_VNSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NXS_VNSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101101"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nxsfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nxstype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nxstype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NXS_VNSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnsrl.wx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NXS_VNSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnsra.wx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nxfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_nxfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nxfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NX_VNCLIPU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NX_VNCLIP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nxfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nxtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nxtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NX_VNCLIPU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnclipu.wx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NX_VNCLIP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnclip.wx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxsgfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vxsgfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vxsgfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSLIDEUP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSLIDEDOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VRGATHER"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001100"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxsgfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vxsg_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vxsg_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSLIDEUP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vslideup.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VSLIDEDOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vslidedown.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VX_VRGATHER"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrgather.vx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vifunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vifunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vifunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VRSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSLL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vifunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vitype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vitype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vadd.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VRSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrsub.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vand.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vor.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vxor.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsaddu.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsadd.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSLL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsll.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsrl.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsra.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssrl.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vssra.vi"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nisfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_nisfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nisfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NIS_VNSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NIS_VNSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101101"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nisfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nistype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nistype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NIS_VNSRL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnsrl.wi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NIS_VNSRA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnsra.wi"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nifunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_nifunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nifunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NI_VNCLIPU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NI_VNCLIP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"nifunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nitype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nitype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NI_VNCLIPU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnclipu.wi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"NI_VNCLIP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnclip.wi"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"visgfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_visgfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_visgfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSLIDEUP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSLIDEDOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VRGATHER"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001100"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"visgfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"visg_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"visg_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSLIDEUP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vslideup.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VSLIDEDOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vslidedown.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VI_VRGATHER"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrgather.vi"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"encdec_nreg"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_nreg"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"nreg_string"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"nreg_string"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":1}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":2}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_num":8}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"8"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_mvvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_mvvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VAADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VAADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VASUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VASUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMULH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMULHU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMULHSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VDIVU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREMU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"mvvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"mvvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VAADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaaddu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VAADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VASUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vasubu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VASUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vasub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmul.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMULH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmulh.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMULHU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmulhu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMULHSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmulhsu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VDIVU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vdivu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vdiv.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREMU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vremu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrem.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvvmafunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_mvvmafunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_mvvmafunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvvmafunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"mvvmatype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"mvvmatype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmacc.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnmsac.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnmsub.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_wvvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_wvvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VWMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VWMULU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VWMULSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111010"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wvvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"wvvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"wvvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwaddu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsubu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VWMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmul.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VWMULU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmulu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVV_VWMULSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmulsu.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_wvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_wvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110110"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"wvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"wvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwadd.wv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsub.wv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwaddu.wv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WV_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsubu.wv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wmvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_wmvvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_wmvvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVV_VWMACCU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVV_VWMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVV_VWMACCSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wmvvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"wmvvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"wmvvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVV_VWMACCU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmaccu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVV_VWMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmacc.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVV_VWMACCSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmaccsu.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vextfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"vext_vs1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vext_vs1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT2_ZVF2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT2_SVF2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT4_ZVF4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT4_SVF4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT8_ZVF8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT8_SVF8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vextfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vexttype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vexttype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT2_ZVF2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vzext.vf2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT2_SVF2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsext.vf2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT4_ZVF4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vzext.vf4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT4_SVF4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsext.vf4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT8_ZVF8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vzext.vf8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VEXT8_SVF8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsext.vf8"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvxfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_mvxfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_mvxfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VAADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VAADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VASUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VASUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VSLIDE1UP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VSLIDE1DOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMULH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMULHU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMULHSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VDIVU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VREMU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VREM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvxfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"mvxtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"mvxtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VAADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaaddu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VAADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaadd.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VASUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vasubu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VASUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vasub.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VSLIDE1UP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vslide1up.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VSLIDE1DOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vslide1down.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmul.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMULH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmulh.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMULHU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmulhu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMULHSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmulhsu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VDIVU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vdivu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vdiv.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VREMU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vremu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VREM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vrem.vx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvxmafunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_mvxmafunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_mvxmafunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mvxmafunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"mvxmatype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"mvxmatype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmacc.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnmsac.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadd.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVX_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vnmsub.vx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wvxfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_wvxfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_wvxfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VWMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VWMULU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VWMULSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111010"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wvxfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"wvxtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"wvxtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwadd.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsub.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwaddu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsubu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VWMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmul.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VWMULU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmulu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WVX_VWMULSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmulsu.vx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wxfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_wxfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_wxfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110110"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wxfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"wxtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"wxtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwadd.wx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsub.wx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VADDU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwaddu.wx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WX_VSUBU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwsubu.wx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wmvxfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_wmvxfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_wmvxfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACCU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACCUS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACCSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wmvxfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"wmvxtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"wmvxtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACCU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmaccu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmacc.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACCUS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmaccus.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WMVX_VWMACCSU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwmaccsu.vx"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_arith_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_fp_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fvvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fvvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSGNJ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSGNJN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSGNJX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100100"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fvvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fvvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmin.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmax.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSGNJ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsgnj.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSGNJN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsgnjn.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSGNJX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsgnjx.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfdiv.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmul.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvvmafunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fvvmafunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fvvmafunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvvmafunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fvvmatype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fvvmatype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmsub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmsub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmacc.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmacc.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmsac.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmsac.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fwvvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fwvvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fwvvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fwvvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwadd.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwsub.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwmul.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvvmafunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fwvvmafunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fwvvmafunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvvmafunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fwvvmatype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fwvvmatype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwmacc.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwnmacc.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwmsac.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVV_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwnmsac.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fwvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fwvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110110"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fwvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fwvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwadd.wv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwsub.wv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfunary0"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_vfunary0_vs1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vfunary0_vs1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_F_XU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_F_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_RTZ_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_RTZ_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfunary0"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vfunary0_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vfunary0_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfcvt.xu.f.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfcvt.x.f.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_F_XU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfcvt.f.xu.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_F_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfcvt.f.x.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_RTZ_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfcvt.rtz.xu.f.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FV_CVT_RTZ_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfcvt.rtz.x.f.v"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfwunary0"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_vfwunary0_vs1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vfwunary0_vs1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_F_XU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_F_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_F_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_RTZ_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_RTZ_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfwunary0"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vfwunary0_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vfwunary0_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwcvt.xu.f.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwcvt.x.f.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_F_XU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwcvt.f.xu.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_F_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwcvt.f.x.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_F_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwcvt.f.f.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_RTZ_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwcvt.rtz.xu.f.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWV_CVT_RTZ_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwcvt.rtz.x.f.v"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfnunary0"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_vfnunary0_vs1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vfnunary0_vs1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_F_XU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_F_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_F_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_ROD_F_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_RTZ_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_RTZ_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfnunary0"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vfnunary0_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vfnunary0_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.xu.f.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.x.f.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_F_XU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.f.xu.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_F_X"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.f.x.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_F_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.f.f.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_ROD_F_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.rod.f.f.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_RTZ_XU_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.rtz.xu.f.w"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FNV_CVT_RTZ_X_F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfncvt.rtz.x.f.w"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfunary1"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]},{"Id":"encdec_vfunary1_vs1"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vfunary1_vs1"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSQRT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VRSQRT7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VREC7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VCLASS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vfunary1"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vfunary1_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vfunary1_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VSQRT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsqrt.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VRSQRT7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfrsqrt7.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VREC7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfrec7.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VCLASS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfclass.v"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvffunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fvffunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fvffunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSGNJ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSGNJN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSGNJX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSLIDE1UP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSLIDE1DOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"001111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VRDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VRSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"100111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvffunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fvftype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fvftype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfadd.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsub.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmin.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmax.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSGNJ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsgnj.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSGNJN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsgnjn.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSGNJX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfsgnjx.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSLIDE1UP"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfslide1up.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VSLIDE1DOWN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfslide1down.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfdiv.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VRDIV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfrdiv.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmul.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VRSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfrsub.vf"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvfmafunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fvfmafunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fvfmafunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvfmafunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fvfmatype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fvfmatype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmadd.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmadd.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmsub.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmsub.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmacc.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmacc.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfmsac.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VF_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfnmsac.vf"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvffunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fwvffunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fwvffunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvffunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fwvftype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fwvftype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwadd.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwsub.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VMUL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwmul.vf"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvfmafunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fwvfmafunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fwvfmafunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwvfmafunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fwvfmatype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fwvfmatype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwmacc.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VNMACC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwnmacc.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwmsac.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWVF_VNMSAC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwnmsac.vf"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwffunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fwffunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fwffunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWF_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWF_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110110"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fwffunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fwftype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fwftype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWF_VADD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwadd.wf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FWF_VSUB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwsub.wf"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_fp_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_mem_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vlewidth_bitsnumberstr"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vlewidth_bitsnumberstr"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE32"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"32"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE64"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"64"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_vlewidth"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vlewidth"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE32"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE64"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vlewidth"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[3,4,5,6]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}]}]},{"Id":"vlewidth_pow"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vlewidth_pow"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":3}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":4}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE32"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":5}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLE64"}]}]},{"MPat_pat":[{"MP_lit":[{"L_num":6}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vlseg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vlseg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"load_width_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_reg"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vm_val"}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_seg"}]},{"E_app":[{"Id":"read_vreg_seg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vd_seg"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"nf"}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]},{"E_id":[{"Id":"elem"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]}]}]]}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"skipped_elem"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]},{"E_id":[{"Id":"skipped_elem"}]}]]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vlsegff"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vlsegff"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"load_width_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_reg"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vm_val"}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_seg"}]},{"E_app":[{"Id":"read_vreg_seg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"tail_ag"}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vd_seg"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"trimmed"}]},{"E_lit":["L_false"]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"trimmed"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"nf"}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]},{"E_id":[{"Id":"elem"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":0}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"vl"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_app":[{"Id":"csr_name_write_callback"},[{"E_lit":[{"L_string":"vl"}]},{"E_id":[{"Id":"vl"}]}]]},{"E_assign":[{"LE_id":[{"Id":"trimmed"}]},{"E_lit":["L_true"]}]}]]}]}]}]]}]]}]}]]}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"skipped_elem"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]},{"E_id":[{"Id":"skipped_elem"}]}]]}]]}]}]]}]}]]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"tail_ag"}]},{"E_id":[{"Id":"AGNOSTIC"}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"skipped_elem"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_seg"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]},{"E_id":[{"Id":"skipped_elem"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vsseg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vsseg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs3"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"load_width_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_reg"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vm_val"}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs3_seg"}]},{"E_app":[{"Id":"read_vreg_seg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vs3"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_match":[{"E_app":[{"Id":"init_masked_source"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"nf"}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vs3"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"data"}]},{"E_app":[{"Id":"read_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"vs"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail"}]},{"E_lit":[{"L_num":199}]},{"E_lit":[{"L_string":"store got false from vmem_write"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vlsseg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vlsseg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"load_width_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_reg"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vm_val"}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_seg"}]},{"E_app":[{"Id":"read_vreg_seg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"xlen"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vd_seg"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"rs2_val"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]},{"E_id":[{"Id":"elem"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]}]}]]}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"skipped_elem"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]},{"E_id":[{"Id":"skipped_elem"}]}]]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vssseg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vssseg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs3"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"load_width_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_reg"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_pow"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vm_val"}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs3_seg"}]},{"E_app":[{"Id":"read_vreg_seg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vs3"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"xlen"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_match":[{"E_app":[{"Id":"init_masked_source"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"rs2_val"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vs3"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_reg"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"data"}]},{"E_app":[{"Id":"read_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"vs"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail"}]},{"E_lit":[{"L_num":318}]},{"E_lit":[{"L_string":"store got false from vmem_write"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vlxseg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vlxseg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"EEW_index_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"EEW_data_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_index_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_data_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"mop"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_data_reg"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_data_pow"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vm_val"}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_seg"}]},{"E_app":[{"Id":"read_vreg_seg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_index_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EEW_data_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EEW_data_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"vd_seg"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_offset"}]}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EEW_data_bytes"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_data_reg"}]}]]}]]}]]},{"E_id":[{"Id":"elem"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]}]}]]}]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"skipped_elem"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EEW_data_bytes"}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_data_reg"}]}]]}]]}]]},{"E_id":[{"Id":"skipped_elem"}]}]]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"int"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vsxseg"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vsxseg"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs3"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"EEW_index_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"EEW_data_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_index_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"EMUL_data_pow"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem"}]}]},{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"mop"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_data_reg"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EMUL_data_pow"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vm_val"}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs3_seg"}]},{"E_app":[{"Id":"read_vreg_seg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vs3"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_index_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_match":[{"E_app":[{"Id":"init_masked_source"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_offset"}]}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EEW_data_bytes"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vs3"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"j"}]},{"E_id":[{"Id":"EMUL_data_reg"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"data"}]},{"E_app":[{"Id":"read_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"vs"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail"}]},{"E_lit":[{"L_num":467}]},{"E_lit":[{"L_string":"store got false from vmem_write"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vlre"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vlre"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"load_width_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"elem_per_reg"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"start_element"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_to_align"}]}]},{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"start_element"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"int"}]},{"Id":"cur_field"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"start_element"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"int"}]},{"Id":"cur_elem"}]},{"E_id":[{"Id":"start_element"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"elem_to_align"}]},{"E_lit":[{"L_num":0}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"elem_to_align"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"elem_per_reg"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"cur_elem"}]}]]}]]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"cur_field"}]}]]}]]},{"E_id":[{"Id":"elem"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]},{"E_assign":[{"LE_id":[{"Id":"cur_elem"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_lit":[{"L_num":1}]}]]}]}]]}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"cur_field"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"cur_field"}]},{"E_lit":[{"L_num":1}]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_for":[{"Id":"j"},{"E_id":[{"Id":"cur_field"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"elem_per_reg"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"cur_elem"}]}]]}]]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"write_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"j"}]}]]}]]},{"E_id":[{"Id":"elem"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]},{"E_assign":[{"LE_id":[{"Id":"cur_elem"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_lit":[{"L_num":1}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'q"}]}],{"NC_and":[{"NC_gt":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[0]}]},{"NC_le":[{"Nexp_var":[{"Var":"'q"}]},{"Nexp_constant":[8]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'q"}]}]}]]}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,4,8]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vsre"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vsre"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nfields"}]},{"P_id":[{"Id":"nf"}]}]},{"P_typ":[{"Typ_id":[{"Id":"word_width"}]},{"P_id":[{"Id":"load_width_bytes"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs3"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"elem_per_reg"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"start_element"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_to_align"}]}]},{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"start_element"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"int"}]},{"Id":"cur_field"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"start_element"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"int"}]},{"Id":"cur_elem"}]},{"E_id":[{"Id":"start_element"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"elem_to_align"}]},{"E_lit":[{"L_num":0}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"elem_to_align"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"elem_per_reg"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"cur_elem"}]}]]}]]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_offset"}]}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs"}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vs3"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"cur_field"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"data"}]},{"E_app":[{"Id":"read_single_element"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"vs"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail"}]},{"E_lit":[{"L_num":610}]},{"E_lit":[{"L_string":"store got false from vmem_write"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]},{"E_assign":[{"LE_id":[{"Id":"cur_elem"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_lit":[{"L_num":1}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"cur_field"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"cur_field"}]},{"E_lit":[{"L_num":1}]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_for":[{"Id":"j"},{"E_id":[{"Id":"cur_field"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"nf"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs3_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"elem_per_reg"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"vregidx_offset"},[{"E_id":[{"Id":"vs3"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":5}]},{"E_id":[{"Id":"j"}]}]]}]]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"elem_per_reg"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"cur_elem"}]}]]}]]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_offset"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_id":[{"Id":"load_width_bytes"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"elem_offset"}]}]]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs3_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail"}]},{"E_lit":[{"L_num":625}]},{"E_lit":[{"L_string":"store got false from vmem_write"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]},{"E_assign":[{"LE_id":[{"Id":"cur_elem"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"cur_elem"}]},{"E_lit":[{"L_num":1}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vmlsop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]}]},{"Id":"encdec_lsop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_lsop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0000111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VSM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"0100111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"vmlsop"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_vm"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_vm"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd_or_vs3"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"num_elem"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"evl"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vmlsop"}]},{"P_id":[{"Id":"op"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]}]]},{"P_id":[{"Id":"vd_or_vs3_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd_or_vs3"}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"start_element"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"evl"}]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_lit":[{"L_num":16}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"VLM"}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"write_single_element"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"vd_or_vs3"}]},{"E_id":[{"Id":"elem"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"VSM"}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_or_vs3_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail"}]},{"E_lit":[{"L_num":680}]},{"E_lit":[{"L_string":"store got false from vmem_write"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_id":[{"Id":"e"}]}]}]}]]}]]},{"E_lit":["L_unit"]}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"VLM"}]}]]},{"E_block":[[{"E_app":[{"Id":"write_single_element"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"vd_or_vs3"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_or_vs3_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":["L_unit"]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vmlsop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vmtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vmtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VLM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vlm.v"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VSM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsm.v"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_mem_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_mask_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mmfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_mmfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_mmfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMNAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMANDN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMNOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMORN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMXNOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"mmfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"mmtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"mmtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmand.mm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMNAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmnand.mm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMANDN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmandn.mm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmxor.mm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmor.mm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMNOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmnor.mm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMORN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmorn.mm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MM_VMXNOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmxnor.mm"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_mask_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_vm_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvmfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vvmfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vvmfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVM_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVM_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvmfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vvmtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vvmtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVM_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadc.vvm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVM_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsbc.vvm"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvmcfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vvmcfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vvmcfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMC_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMC_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvmcfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vvmctype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vvmctype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMC_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadc.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMC_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsbc.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvmsfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vvmsfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vvmsfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMS_VADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMS_VSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010010"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvmsfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vvmstype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vvmstype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMS_VADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vadc.vvm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVMS_VSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsbc.vvm"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvcmpfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vvcmpfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vvcmpfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011101"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vvcmpfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vvcmptype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vvcmptype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmseq.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsne.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsltu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmslt.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsleu.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VVCMP_VMSLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsle.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxmfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vxmfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vxmfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXM_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXM_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxmfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vxmtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vxmtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXM_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadc.vxm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXM_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsbc.vxm"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxmcfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vxmcfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vxmcfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMC_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMC_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010011"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxmcfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vxmctype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vxmctype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMC_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadc.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMC_VMSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsbc.vx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxmsfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vxmsfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vxmsfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMS_VADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMS_VSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010010"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxmsfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vxmstype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vxmstype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMS_VADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vadc.vxm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXMS_VSBC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsbc.vxm"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxcmpfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vxcmpfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vxcmpfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSGTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSGT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vxcmpfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vxcmptype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vxcmptype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmseq.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsne.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsltu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmslt.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsleu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsle.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSGTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsgtu.vx"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VXCMP_VMSGT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsgt.vx"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vimfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vimfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vimfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VIM_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vimfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vimtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vimtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VIM_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadc.vim"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vimcfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vimcfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vimcfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VIMC_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vimcfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vimctype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vimctype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VIMC_VMADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmadc.vi"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vimsfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vimsfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vimsfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VIMS_VADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"010000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vimsfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vimstype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vimstype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VIMS_VADC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vadc.vim"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vicmpfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vicmpfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vicmpfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSLEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSGTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSGT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"vicmpfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vicmptype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vicmptype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmseq.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsne.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSLEU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsleu.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsle.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSGTU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsgtu.vi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VICMP_VMSGT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmsgt.vi"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_vm_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_fp_vm_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvvmfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fvvmfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fvvmfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011100"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvvmfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fvvmtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fvvmtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfeq.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfle.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmflt.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVVM_VMFNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfne.vv"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvfmfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_fvfmfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_fvfmfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFGT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFGE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"011111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"fvfmfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"fvfmtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"fvfmtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFEQ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfeq.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFLE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfle.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFLT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmflt.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFNE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfne.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFGT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfgt.vf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"VFM_VMFGE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vmfge.vf"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_fp_vm_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_red_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rivvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_rivvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_rivvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"IVV_VWREDSUMU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"IVV_VWREDSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rivvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"rivvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"rivvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"IVV_VWREDSUMU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwredsumu.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"IVV_VWREDSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vwredsum.vs"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rmvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_rmvvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_rmvvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000100"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rmvvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"rmvvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"rmvvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredsum.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDAND"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredand.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredor.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDXOR"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredxor.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMINU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredminu.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredmin.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMAXU"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredmaxu.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"MVV_VREDMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vredmax.vs"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_red_insts.sail"]},{"DEF_pragma":["file_start","extensions/V/vext_fp_red_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rfvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_rfvvfunct6"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_rfvvfunct6"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDOSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDUSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000111"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFWREDOSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110011"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFWREDUSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"110001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"rfvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_constant":[3]}]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_rfvv_single"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_rfvv_single"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"rfvvfunct6"}]},{"P_id":[{"Id":"funct6"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem_vs"}]}]},{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_constant":[3]}]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"LMUL_pow"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem_vd"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_reduction"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_red_insts.sail:35.17-35.18"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem_vs"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"d"}]},{"TP_var":[{"Var":"'d"}]}]},{"E_id":[{"Id":"num_elem_vd"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'d"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_match":[{"E_app":[{"Id":"init_masked_source"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Id":"sum"}]},{"E_app":[{"Id":"read_single_element"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs1"}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"sum"}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDOSUM"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDUSUM"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDMAX"}]},{"E_app":[{"Id":"fp_max"},[{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VFREDMIN"}]},{"E_app":[{"Id":"fp_min"},[{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/V/vext_fp_red_insts.sail"}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_string":"Widening op unexpected"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_single_element"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"sum"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"rfvvfunct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_id":[{"Id":"vregidx"}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_gt":[{"Nexp_var":[{"Var":"'n"}]},{"Nexp_constant":[0]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[8,16,32,64]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_constant":[3]}]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_rfvv_widening_reduction"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_rfvv_widening_reduction"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"rfvvfunct6"}]},{"P_id":[{"Id":"funct6"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"vm"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs2"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"vregidx"}]},{"P_id":[{"Id":"vd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"nat1"}]},{"P_id":[{"Id":"num_elem_vs"}]}]},{"P_typ":[{"Typ_id":[{"Id":"sew_bitsize"}]},{"P_id":[{"Id":"SEW"}]}]},{"P_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_neg":[{"Nexp_constant":[3]}]}]},{"A_nexp":[{"Nexp_constant":[3]}]}]]},{"P_id":[{"Id":"LMUL_pow"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_widening_reduction"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_red_insts.sail:77.36-77.37"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem_vd"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem_vs"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"d"}]},{"TP_var":[{"Var":"'d"}]}]},{"E_id":[{"Id":"num_elem_vd"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'d"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vd"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_match":[{"E_app":[{"Id":"init_masked_source"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"Id":"sum"}]},{"E_app":[{"Id":"read_single_element"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs1"}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"sum"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_single_element"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"sum"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"rfvvfunct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"rfvvtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"rfvvtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDOSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfredosum.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDUSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfredusum.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDMAX"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfredmax.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFREDMIN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfredmin.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFWREDOSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwredosum.vs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"FVV_VFWREDUSUM"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vfwredusum.vs"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/V/vext_fp_red_insts.sail"]},{"DEF_pragma":["file_start","extensions/K/zkn_insts.sail"]},{"DEF_pragma":["file_end","extensions/K/zkn_insts.sail"]},{"DEF_pragma":["file_start","extensions/K/zks_insts.sail"]},{"DEF_pragma":["file_end","extensions/K/zks_insts.sail"]},{"DEF_pragma":["file_start","extensions/K/zkr_control.sail"]},{"DEF_type":{"TD_enum":[{"Id":"seed_opst"},[{"Id":"BIST"},{"Id":"ES16"},{"Id":"WAIT"},{"Id":"DEAD"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"seed_opst"}]}]}]},{"Id":"undefined_seed_opst"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_seed_opst"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"BIST"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"seed_opst"}]}]}]},{"Id":"seed_opst_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"seed_opst_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"BIST"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"ES16"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"WAIT"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"DEAD"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"seed_opst"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_seed_opst"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_seed_opst"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"BIST"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"ES16"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"WAIT"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"DEAD"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"seed_opst"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"opst_code"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"opst_code"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"BIST"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WAIT"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ES16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"DEAD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"read_seed_csr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_seed_csr"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]},{"P_id":[{"Id":"reserved_bits"}]}]},{"E_lit":[{"L_bin":"000000"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"custom_bits"}]}]},{"E_lit":[{"L_hex":"00"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"seed"}]}]},{"E_app":[{"Id":"get_16_random_bits"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"opst_code_forwards"},[{"E_id":[{"Id":"ES16"}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"reserved_bits"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"custom_bits"}]},{"E_id":[{"Id":"seed"}]}]]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"write_seed_csr"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_seed_csr"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/K/zkr_control.sail"]},{"DEF_pragma":["file_start","extensions/K/zbkb_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"brop_zbkb"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zbkb_rtype_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zbkb_rtype_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PACK"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pack"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"PACKH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"packh"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/K/zbkb_insts.sail"]},{"DEF_pragma":["file_start","extensions/K/zbkx_insts.sail"]},{"DEF_pragma":["file_end","extensions/K/zbkx_insts.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvbb_insts.sail"]},{"DEF_pragma":["file_end","extensions/vector_crypto/zvbb_insts.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvbc_insts.sail"]},{"DEF_pragma":["file_end","extensions/vector_crypto/zvbc_insts.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvkg_insts.sail"]},{"DEF_pragma":["file_end","extensions/vector_crypto/zvkg_insts.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvkned_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesdf_funct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vaesdf"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vaesdf"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDF_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDF_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesdf_funct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vaesdf_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vaesdf_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDF_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesdf.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDF_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesdf.vs"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesdm_funct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vaesdm"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vaesdm"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDM_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDM_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesdm_funct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vaesdm_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vaesdm_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDM_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesdm.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESDM_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesdm.vs"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesef_funct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vaesef"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vaesef"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEF_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEF_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesef_funct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vaesef_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vaesef_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEF_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesef.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEF_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesef.vs"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesem_funct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vaesem"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vaesem"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEM_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101000"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEM_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101001"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vaesem_funct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vaesem_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vaesem_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEM_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesem.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VAESEM_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vaesem.vs"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/vector_crypto/zvkned_insts.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvksed_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vsm4r_funct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vsm4r_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vsm4r_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VSM4R_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsm4r.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VSM4R_VS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsm4r.vs"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/vector_crypto/zvksed_insts.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvknhab_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vsha2_funct6"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]}]},{"Id":"encdec_vsha2"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_vsha2"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VSHA2CH_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101110"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VSHA2CL_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zvk_vsha2_funct6"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"vsha2_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"vsha2_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VSHA2CH_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsha2ch.vv"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"ZVK_VSHA2CL_VV"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vsha2cl.vv"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/vector_crypto/zvknhab_insts.sail"]},{"DEF_pragma":["file_start","extensions/vector_crypto/zvksh_insts.sail"]},{"DEF_pragma":["file_end","extensions/vector_crypto/zvksh_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zicsr/zicsr_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"csrop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"encdec_csrop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_csrop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CSRRW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CSRRS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CSRRC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"csrop"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"doCSR"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"doCSR"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"csreg"}]},{"P_id":[{"Id":"csr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"rs1_val"}]}]},{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rd"}]}]},{"P_typ":[{"Typ_id":[{"Id":"csrop"}]},{"P_id":[{"Id":"op"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"is_CSR_Write"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"check_CSR"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"is_CSR_Write"}]}]]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"ext_check_CSR"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"is_CSR_Write"}]}]]}]]},{"E_app":[{"Id":"Ext_CSR_Check_Failure"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_CSR_Read"}]},{"E_app":[{"Id":"not"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"CSRRW"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"csr_val"}]}]},{"E_if":[{"E_id":[{"Id":"is_CSR_Read"}]},{"E_app":[{"Id":"read_CSR"},[{"E_id":[{"Id":"csr"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]}]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"is_CSR_Write"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"new_val"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"CSRRW"}]},{"E_id":[{"Id":"rs1_val"}]}]},{"Pat_exp":[{"P_id":[{"Id":"CSRRS"}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"csr_val"}]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"CSRRC"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"csr_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"write_CSR"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"new_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"final_val"}]}]]},{"E_block":[[{"E_app":[{"Id":"csr_id_write_callback"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"final_val"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"csr_val"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"csr_id_read_callback"},[{"E_id":[{"Id":"csr"}]},{"E_id":[{"Id":"csr_val"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"csr_val"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"csrop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"csr_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"csr_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CSRRW"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"csrrw"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CSRRS"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"csrrs"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CSRRC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"csrrc"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicsr/zicsr_insts.sail"]},{"DEF_pragma":["file_start","extensions/Svinval/svinval_insts.sail"]},{"DEF_pragma":["file_end","extensions/Svinval/svinval_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zihpm/zihpm.sail"]},{"DEF_type":{"TD_record":[{"Id":"HpmEvent"},{"TypQ_tq":[[]]},[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Id":"bits"}]],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"undefined_HpmEvent"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_HpmEvent"},{"Pat_exp":[{"P_tuple":[[]]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_lit":["L_undef"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"Mk_HpmEvent"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"Mk_HpmEvent"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_struct":[[{"FE_fexp":[{"Id":"bits"},{"E_id":[{"Id":"v"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"_get_HpmEvent_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_bits"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_bits"},[{"Id":"_update_HpmEvent_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_bits"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_bits"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_bits"},[{"Id":"_get_HpmEvent_bits"},{"Id":"_set_HpmEvent_bits"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_HpmEvent_MINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_MINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":62}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_MINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_MINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":62}]},{"E_lit":[{"L_num":62}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_MINH"},[{"Id":"_update_HpmEvent_MINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_MINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_MINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_MINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_MINH"},[{"Id":"_get_HpmEvent_MINH"},{"Id":"_set_HpmEvent_MINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_HpmEvent_OF"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_OF"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":63}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_OF"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_OF"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":63}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_OF"},[{"Id":"_update_HpmEvent_OF"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_OF"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_OF"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_OF"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_OF"},[{"Id":"_get_HpmEvent_OF"},{"Id":"_set_HpmEvent_OF"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_HpmEvent_SINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_SINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":61}]},{"E_lit":[{"L_num":61}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_SINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_SINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":61}]},{"E_lit":[{"L_num":61}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_SINH"},[{"Id":"_update_HpmEvent_SINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_SINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_SINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_SINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_SINH"},[{"Id":"_get_HpmEvent_SINH"},{"Id":"_set_HpmEvent_SINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_HpmEvent_UINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_UINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_num":60}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_UINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_UINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_num":60}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_UINH"},[{"Id":"_update_HpmEvent_UINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_UINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_UINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_UINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_UINH"},[{"Id":"_get_HpmEvent_UINH"},{"Id":"_set_HpmEvent_UINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_HpmEvent_VSINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_VSINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":59}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_VSINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_VSINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_num":59}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_VSINH"},[{"Id":"_update_HpmEvent_VSINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_VSINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_VSINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_VSINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_VSINH"},[{"Id":"_get_HpmEvent_VSINH"},{"Id":"_set_HpmEvent_VSINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]},{"Id":"_get_HpmEvent_VUINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_VUINH"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":58}]},{"E_lit":[{"L_num":58}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_VUINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_VUINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":58}]},{"E_lit":[{"L_num":58}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_VUINH"},[{"Id":"_update_HpmEvent_VUINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_VUINH"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_VUINH"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_VUINH"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_VUINH"},[{"Id":"_get_HpmEvent_VUINH"},{"Id":"_set_HpmEvent_VUINH"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"_get_HpmEvent_event"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_get_HpmEvent_event"},{"Pat_exp":[{"P_id":[{"Id":"v"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"_update_HpmEvent_event"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_update_HpmEvent_event"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"v"}]},{"P_id":[{"Id":"x"}]}]]},{"E_struct_update":[{"E_id":[{"Id":"v"}]},[{"FE_fexp":[{"Id":"bits"},{"E_app":[{"Id":"update_subrange_bits"},[{"E_field":[{"E_id":[{"Id":"v"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"x"}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"update_event"},[{"Id":"_update_HpmEvent_event"}]]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"register"},[{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"_set_HpmEvent_event"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"_set_HpmEvent_event"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"r_ref"}]},{"P_id":[{"Id":"v"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"__deref"},[{"E_id":[{"Id":"r_ref"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_deref":[{"E_id":[{"Id":"r_ref"}]}]},{"E_app":[{"Id":"_update_HpmEvent_event"},[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"v"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"_mod_event"},[{"Id":"_get_HpmEvent_event"},{"Id":"_set_HpmEvent_event"}]]},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[32]}]},{"A_typ":[{"Typ_id":[{"Id":"HpmEvent"}]}]}]]},{"Id":"mhpmevent"},null]}},{"DEF_register":{"DEC_reg":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[32]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]]},{"Id":"mhpmcounter"},null]}},{"DEF_type":{"TD_abbrev":[{"Id":"hpmidx"},{"TypQ_no_forall":[]},{"A_typ":[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}]}]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}],{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}]}]},{"Id":"hpmidx_from_bits"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hpmidx_from_bits"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"b"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"b"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"index"}]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_string":"unreachable HPM index"}]}]},{"E_id":[{"Id":"index"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"HpmEvent"}]}],{"Typ_id":[{"Id":"HpmEvent"}]}]}]},{"Id":"legalize_hpmevent"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"legalize_hpmevent"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"HpmEvent"}]},{"P_id":[{"Id":"v"}]}]},{"E_block":[[{"E_app":[{"Id":"_update_HpmEvent_event"},[{"E_app":[{"Id":"_update_HpmEvent_VUINH"},[{"E_app":[{"Id":"_update_HpmEvent_VSINH"},[{"E_app":[{"Id":"_update_HpmEvent_UINH"},[{"E_app":[{"Id":"_update_HpmEvent_SINH"},[{"E_app":[{"Id":"_update_HpmEvent_MINH"},[{"E_app":[{"Id":"_update_HpmEvent_OF"},[{"E_app":[{"Id":"Mk_HpmEvent"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sscofpmf"}]}]]},{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sscofpmf"}]}]]},{"E_app":[{"Id":"_get_HpmEvent_MINH"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sscofpmf"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]},{"E_app":[{"Id":"_get_HpmEvent_SINH"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sscofpmf"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]}]]},{"E_app":[{"Id":"_get_HpmEvent_UINH"},[{"E_id":[{"Id":"v"}]}]]},{"E_lit":[{"L_bin":"0"}]}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]},{"E_app":[{"Id":"_get_HpmEvent_event"},[{"E_id":[{"Id":"v"}]}]]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"read_mhpmcounter"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_mhpmcounter"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmcounter"}]},{"E_id":[{"Id":"index"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"read_mhpmcounterh"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_mhpmcounterh"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmcounter"}]},{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]}]},{"Id":"read_mhpmevent"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_mhpmevent"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_id":[{"Id":"index"}]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_mhpmcounter"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_mhpmcounter"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"sys_writable_hpm_counters"}]},{"E_id":[{"Id":"index"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector_range":[{"LE_vector":[{"LE_id":[{"Id":"mhpmcounter"}]},{"E_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"value"}]}]},{"E_lit":["L_unit"]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_mhpmcounterh"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_mhpmcounterh"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"value"}]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"sys_writable_hpm_counters"}]},{"E_id":[{"Id":"index"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector_range":[{"LE_vector":[{"LE_id":[{"Id":"mhpmcounter"}]},{"E_id":[{"Id":"index"}]}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]},{"E_id":[{"Id":"value"}]}]},{"E_lit":["L_unit"]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_mhpmevent"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_mhpmevent"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"value"}]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"sys_writable_hpm_counters"}]},{"E_id":[{"Id":"index"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mhpmevent"}]},{"E_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"legalize_hpmevent"},[{"E_app":[{"Id":"Mk_HpmEvent"},[{"E_match":[{"E_id":[{"Id":"xlen"}]},[{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_id":[{"Id":"index"}]}]]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"value"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":64}]},{"E_id":[{"Id":"value"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Zihpm/zihpm.sail"}]},{"E_lit":[{"L_num":223}]},{"E_lit":[{"L_string":"Unsupported xlen"}]}]]}]}]]}]]}]]}]},{"E_lit":["L_unit"]}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zihpm/zihpm.sail"]},{"DEF_pragma":["file_start","extensions/Sscofpmf/sscofpmf.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"read_mhpmeventh"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_mhpmeventh"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_id":[{"Id":"index"}]}]]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"range"},[{"A_nexp":[{"Nexp_constant":[3]}]},{"A_nexp":[{"Nexp_constant":[31]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"write_mhpmeventh"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_mhpmeventh"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"hpmidx"}]},{"P_id":[{"Id":"index"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"value"}]}]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"sys_writable_hpm_counters"}]},{"E_id":[{"Id":"index"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"mhpmevent"}]},{"E_id":[{"Id":"index"}]}]},{"E_app":[{"Id":"legalize_hpmevent"},[{"E_app":[{"Id":"Mk_HpmEvent"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_id":[{"Id":"index"}]}]]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]}]},{"E_lit":["L_unit"]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"get_scountovf"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"get_scountovf"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"overflow"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":31}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":30}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":29}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":28}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":27}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":26}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":25}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":24}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":23}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":22}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":21}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":20}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":19}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":18}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":17}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":15}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":14}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":13}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":12}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":10}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":9}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":7}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":6}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":5}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":4}]}]]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"_get_HpmEvent_OF"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"mhpmevent"}]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"priv"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_id":[{"Id":"overflow"}]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"overflow"}]},{"E_field":[{"E_id":[{"Id":"mcounteren"}]},{"Id":"bits"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Sscofpmf/sscofpmf.sail"}]},{"E_lit":[{"L_num":74}]},{"E_lit":[{"L_string":"scountovf not readable from User mode"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Sscofpmf/sscofpmf.sail"}]},{"E_lit":[{"L_num":75}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Sscofpmf/sscofpmf.sail"}]},{"E_lit":[{"L_num":76}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Sscofpmf/sscofpmf.sail"]},{"DEF_pragma":["file_start","extensions/Sstc/sstc.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"sstc_CSRs_accessible"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"sstc_CSRs_accessible"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"priv"}]}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Supervisor"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Counteren_TM"},[{"E_id":[{"Id":"mcounteren"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_MEnvcfg_STCE"},[{"E_id":[{"Id":"menvcfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Sstc/sstc.sail"]},{"DEF_pragma":["file_start","extensions/Zawrs/zawrs_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"wrsop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]}]},{"Id":"encdec_wrsop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_wrsop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WRS_STO"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000011101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"WRS_NTO"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000001101"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zawrs/zawrs_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zicond/zicond_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zicondop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]},{"Id":"encdec_zicondop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_zicondop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CZERO_EQZ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"101"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CZERO_NEZ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"111"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"zicondop"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"zicond_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"zicond_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CZERO_EQZ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"czero.eqz"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CZERO_NEZ"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"czero.nez"}]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicond/zicond_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zicntr/zicntr_control.sail"]},{"DEF_pragma":["file_end","extensions/Zicntr/zicntr_control.sail"]},{"DEF_pragma":["file_start","extensions/Zicbom/zicbom_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"cbo_clean_flush_enabled"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cbo_clean_flush_enabled"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_app":[{"Id":"feature_enabled_for_priv"},[{"E_id":[{"Id":"p"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"_get_MEnvcfg_CBCFE"},[{"E_id":[{"Id":"menvcfg"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"_get_SEnvcfg_CBCFE"},[{"E_id":[{"Id":"senvcfg"}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cbop_zicbom"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]}]},{"Id":"encdec_cbop"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_cbop"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBO_CLEAN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000000001"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBO_FLUSH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000000010"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBO_INVAL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"000000000000"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cbop_zicbom"}]},{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"cbop_mnemonic"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"cbop_mnemonic"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBO_CLEAN"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"cbo.clean"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBO_FLUSH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"cbo.flush"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBO_INVAL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"cbo.inval"}]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"cbie"},[{"Id":"CBIE_ILLEGAL"},{"Id":"CBIE_EXEC_FLUSH"},{"Id":"CBIE_EXEC_INVAL"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"cbie"}]}]}]},{"Id":"undefined_cbie"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_cbie"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"CBIE_ILLEGAL"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"cbie"}]}]}]},{"Id":"cbie_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cbie_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"CBIE_ILLEGAL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"CBIE_EXEC_FLUSH"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"CBIE_EXEC_INVAL"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"cbie"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[2]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_cbie"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_cbie"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"CBIE_ILLEGAL"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"CBIE_EXEC_FLUSH"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"CBIE_EXEC_INVAL"}]},{"E_lit":[{"L_num":2}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_bidir":[{"Typ_id":[{"Id":"cbie"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]},{"Id":"encdec_cbie"},null]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_cbie"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBIE_ILLEGAL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"00"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBIE_EXEC_FLUSH"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"01"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"CBIE_EXEC_INVAL"}]}]},{"MPat_pat":[{"MP_lit":[{"L_bin":"11"}]}]}]},{"MCL_backwards":[{"Pat_exp":[{"P_lit":[{"L_bin":"10"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Zicbom/zicbom_insts.sail"}]},{"E_lit":[{"L_num":45}]},{"E_lit":[{"L_string":"reserved CBIE"}]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"checked_cbop"},[{"Id":"CBOP_ILLEGAL"},{"Id":"CBOP_ILLEGAL_VIRTUAL"},{"Id":"CBOP_INVAL_FLUSH"},{"Id":"CBOP_INVAL_INVAL"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"checked_cbop"}]}]}]},{"Id":"undefined_checked_cbop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_checked_cbop"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"CBOP_ILLEGAL"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"checked_cbop"}]}]}]},{"Id":"checked_cbop_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"checked_cbop_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"CBOP_ILLEGAL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":1}]},{"E_id":[{"Id":"CBOP_ILLEGAL_VIRTUAL"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":2}]},{"E_id":[{"Id":"CBOP_INVAL_FLUSH"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"CBOP_INVAL_INVAL"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"checked_cbop"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[3]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_checked_cbop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_checked_cbop"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"CBOP_ILLEGAL"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"CBOP_ILLEGAL_VIRTUAL"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"CBOP_INVAL_FLUSH"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"CBOP_INVAL_INVAL"}]},{"E_lit":[{"L_num":3}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"checked_cbop"}]}]}]},{"Id":"cbop_priv_check"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cbop_priv_check"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"cbie"}]},{"P_id":[{"Id":"mCBIE"}]}]},{"E_app":[{"Id":"encdec_cbie_backwards"},[{"E_app":[{"Id":"_get_MEnvcfg_CBIE"},[{"E_id":[{"Id":"menvcfg"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"cbie"}]},{"P_id":[{"Id":"sCBIE"}]}]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"encdec_cbie_backwards"},[{"E_app":[{"Id":"_get_SEnvcfg_CBIE"},[{"E_id":[{"Id":"senvcfg"}]}]]}]]},{"E_app":[{"Id":"encdec_cbie_backwards"},[{"E_app":[{"Id":"_get_MEnvcfg_CBIE"},[{"E_id":[{"Id":"menvcfg"}]}]]}]]}]}]},{"E_block":[[{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"p"}]},{"E_id":[{"Id":"mCBIE"}]},{"E_id":[{"Id":"sCBIE"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"VirtualUser"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Zicbom/zicbom_insts.sail"}]},{"E_lit":[{"L_num":59}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"VirtualSupervisor"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Zicbom/zicbom_insts.sail"}]},{"E_lit":[{"L_num":60}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"Machine"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_id":[{"Id":"CBOP_INVAL_INVAL"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_id":[{"Id":"CBIE_ILLEGAL"}]},{"P_wild":[]}]]},{"E_id":[{"Id":"CBOP_ILLEGAL"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"User"}]},{"P_wild":[]},{"P_id":[{"Id":"CBIE_ILLEGAL"}]}]]},{"E_id":[{"Id":"CBOP_ILLEGAL"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_id":[{"Id":"CBIE_EXEC_FLUSH"}]},{"P_wild":[]}]]},{"E_id":[{"Id":"CBOP_INVAL_FLUSH"}]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"User"}]},{"P_wild":[]},{"P_id":[{"Id":"CBIE_EXEC_FLUSH"}]}]]},{"E_id":[{"Id":"CBOP_INVAL_FLUSH"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"CBOP_INVAL_INVAL"}]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"regidx"}]},{"Typ_id":[{"Id":"cbop_zicbom"}]}],{"Typ_id":[{"Id":"ExecutionResult"}]}]}]},{"Id":"process_clean_inval"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"process_clean_inval"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"regidx"}]},{"P_id":[{"Id":"rs1"}]}]},{"P_typ":[{"Typ_id":[{"Id":"cbop_zicbom"}]},{"P_id":[{"Id":"cbop"}]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cache_block_size"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"plat_cache_block_size_exp"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"negative_offset"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"ones"},[{"E_id":[{"Id":"plat_cache_block_size_exp"}]}]]}]]}]]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"ext_data_get_addr"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"negative_offset"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_id":[{"Id":"cache_block_size"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_Error"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Ext_DataAddr_Check_Failure"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_OK"},[{"P_id":[{"Id":"vaddr"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"ExceptionType"}]}]}]]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_wild":[]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ep"}]},{"E_app":[{"Id":"effectivePrivilege"},[{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_id":[{"Id":"mstatus"}]},{"E_id":[{"Id":"cur_privilege"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"exc_read"}]},{"E_app":[{"Id":"phys_access_check"},[{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_id":[{"Id":"ep"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"cache_block_size"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"exc_write"}]},{"E_app":[{"Id":"phys_access_check"},[{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_id":[{"Id":"ep"}]},{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"cache_block_size"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"exc_read"}]},{"E_id":[{"Id":"exc_write"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"exc_read"}]}]]},{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"exc_write"}]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"exc_write"}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"Some"},[{"E_id":[{"Id":"e"}]}]]}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"res"}]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"e"}]}]},{"E_match":[{"E_id":[{"Id":"e"}]},[{"Pat_exp":[{"P_app":[{"Id":"E_Load_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Access_Fault"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"E_SAMO_Access_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"E_Load_Page_Fault"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"E_SAMO_Page_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"E_SAMO_Page_Fault"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"E_SAMO_Page_Fault"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Zicbom/zicbom_insts.sail"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_string":"unexpected exception for cmo.clean/inval"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"sub_virtaddr_xlenbits"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"negative_offset"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]]}]}]]}]}]]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicbom/zicbom_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zicboz/zicboz_insts.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"Privilege"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"cbo_zero_enabled"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"cbo_zero_enabled"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"Privilege"}]},{"P_id":[{"Id":"p"}]}]},{"E_app":[{"Id":"feature_enabled_for_priv"},[{"E_id":[{"Id":"p"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"_get_MEnvcfg_CBZE"},[{"E_id":[{"Id":"menvcfg"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"_get_SEnvcfg_CBZE"},[{"E_id":[{"Id":"senvcfg"}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/Zicboz/zicboz_insts.sail"]},{"DEF_pragma":["file_start","extensions/Zifenci/zifencei_insts.sail"]},{"DEF_pragma":["file_end","extensions/Zifenci/zifencei_insts.sail"]},{"DEF_pragma":["file_start","extensions/bfloat16/zfbfmin_utils.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]]}]}]},{"Id":"fsplit_BF16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fsplit_BF16"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"v"}]}]},{"E_tuple":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":15}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":14}]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"v"}]},{"E_lit":[{"L_num":6}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]},{"Id":"fmake_BF16"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fmake_BF16"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_id":[{"Id":"sign"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"exp"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]},{"P_id":[{"Id":"mant"}]}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"exp"}]},{"E_id":[{"Id":"mant"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_tuple":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]}]}]},{"Id":"bf16_to_f32"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bf16_to_f32"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"v"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"sign"}]},{"P_id":[{"Id":"exp"}]},{"P_id":[{"Id":"mant"}]}]]},{"E_app":[{"Id":"fsplit_BF16"},[{"E_id":[{"Id":"v"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_nan"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":7}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_inf"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":7}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fflags"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"is_nan"}]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"mant"}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]},{"E_app":[{"Id":"nvFlag"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"value"}]},{"E_if":[{"E_id":[{"Id":"is_nan"}]},{"E_app":[{"Id":"canonical_NaN_S"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_id":[{"Id":"is_inf"}]},{"E_app":[{"Id":"fmake_S"},[{"E_id":[{"Id":"sign"}]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":23}]}]]}]]},{"E_app":[{"Id":"fmake_S"},[{"E_id":[{"Id":"sign"}]},{"E_id":[{"Id":"exp"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"mant"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]}]]}]}]}]},{"E_block":[[{"E_tuple":[[{"E_id":[{"Id":"fflags"}]},{"E_id":[{"Id":"value"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]},{"Id":"bf16_to_f32_set_flags"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"bf16_to_f32_set_flags"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"nval"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"wval"}]}]]},{"E_app":[{"Id":"bf16_to_f32"},[{"E_id":[{"Id":"nval"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"wval"}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","extensions/bfloat16/zfbfmin_utils.sail"]},{"DEF_pragma":["file_start","extensions/bfloat16/zfbfmin_insts.sail"]},{"DEF_pragma":["file_end","extensions/bfloat16/zfbfmin_insts.sail"]},{"DEF_pragma":["file_start","extensions/bfloat16/zvfbfmin_insts.sail"]},{"DEF_pragma":["file_end","extensions/bfloat16/zvfbfmin_insts.sail"]},{"DEF_pragma":["file_start","extensions/bfloat16/zvfbfwma_insts.sail"]},{"DEF_pragma":["file_end","extensions/bfloat16/zvfbfwma_insts.sail"]},{"DEF_pragma":["file_start","mops/Zimop/zimop_insts.sail"]},{"DEF_pragma":["file_end","mops/Zimop/zimop_insts.sail"]},{"DEF_pragma":["file_start","mops/Zcmop/zcmop_insts.sail"]},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zkt"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zkt"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkt"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkt"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkn"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkn"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvknc"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvknc"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkng"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkng"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvks"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvks"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksc"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksc"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksg"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksg"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sstc"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sstc"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_U"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_U"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_S"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_S"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svbare"}]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv32"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv32"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv39"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv48"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv48"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sv57"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv57"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_F"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_F"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_Mstatus_FS"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_D"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_D"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_Mstatus_FS"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"00"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfinx"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl32b"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl32b"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl64b"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl64b"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl128b"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl128b"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl256b"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl256b"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl512b"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl512b"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvl1024b"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl1024b"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve32x"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvl32b"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_Mstatus_VS"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve32f"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve64x"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve64x"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvl64b"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve64f"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve64f"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve64x"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zve64d"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve64d"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve64f"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_V"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_V"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_V"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvl128b"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve64d"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfh"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfh"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfhmin"}]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfh"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Smcntrpmf"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Smcntrpmf"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicfilp"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"get_xLPE"},[{"E_id":[{"Id":"cur_privilege"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svnapot"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svpbmt"}]},{"E_lit":["L_false"]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svrsw60t59b"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Svrsw60t59b"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicbop"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicbop"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zihintntl"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zihintntl"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zihintpause"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zihintpause"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_C"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_C"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_C"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zca"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zca"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_C"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_C"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_A"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_A"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_A"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zaamo"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zaamo"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_A"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zabha"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zabha"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zaamo"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zacas"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zacas"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zaamo"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zalrsc"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zalrsc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_A"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_M"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_M"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zmmul"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zmmul"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_B"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_B"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_B"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zba"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_B"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbb"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_B"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbkb"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbc"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zbc"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbkc"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zbkc"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbs"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_B"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcb"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_H"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_H"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Misa_H"},[{"E_id":[{"Id":"misa"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"virtual_memory_supported"},[{"E_lit":["L_unit"]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfh"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfhmin"}]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcf"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_C"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_C"}]}]]}]]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zdinx"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zdinx"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcd"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_C"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_C"}]}]]}]]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zhinx"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zhinx"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zhinxmin"}]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zhinxmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zhinx"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfa"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zknh"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zkne"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zknd"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zksh"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zksh"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zksed"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zksed"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zkr"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zkr"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zbkx"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zbkx"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvbb"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkb"}]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvbc"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve64x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkg"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvkned"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksed"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvknha"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvknha"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvknhb"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvknhb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve64x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvksh"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicsr"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Svinval"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Svinval"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zihpm"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zihpm"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Sscofpmf"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sscofpmf"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihpm"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zawrs"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zawrs"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicond"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicond"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicntr"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicbom"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicbom"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zicboz"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicboz"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zifencei"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zifencei"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zfbfmin"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfbfmin"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zvfbfwma"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfbfwma"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zimop"}]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zimop"}]}]]}]}]},{"FCL_funcl":[{"Id":"currentlyEnabled"},{"Pat_exp":[{"P_id":[{"Id":"Ext_Zcmop"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zcmop"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","mops/Zcmop/zcmop_insts.sail"]},{"DEF_pragma":["file_start","postlude/insts_end.sail"]},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZICBOP"},[{"MP_id":[{"Id":"cbop"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"offset11_5"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]},{"MP_lit":[{"L_bin":"00000"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbop"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"offset11_5"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]},{"MP_app":[{"Id":"encdec_cbop_zicbop"},[{"MP_id":[{"Id":"cbop"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbop"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"NTL"},[{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihintntl"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_ntl"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihintntl"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"PAUSE"},[{"MP_lit":["L_unit"]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihintpause"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000"}]},{"MP_lit":[{"L_bin":"0001"}]},{"MP_lit":[{"L_bin":"0000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0001111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihintpause"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"LPAD"},[{"MP_id":[{"Id":"lpl"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"lpl"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[20]}]}]]}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"UTYPE"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[20]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"encdec_uop"},[{"MP_id":[{"Id":"op"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"JAL"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm_19"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm_7_0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm_8"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm_18_9"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm_19"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm_18_9"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm_8"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm_7_0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1101111"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"JALR"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1100111"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"BTYPE"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm7_6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm5_0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm7_5_0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm5_4_1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm7_6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm7_5_0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_bop"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"imm5_4_1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm5_0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"1100011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ITYPE"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_iop"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHIFTIOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SLLI"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHIFTIOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRLI"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHIFTIOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRAI"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ADD"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SLT"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SLTU"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"AND"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"OR"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"XOR"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SLL"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRL"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SUB"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRA"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"LOAD"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]},{"MP_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"valid_load_encdec"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"is_unsigned"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"width_enc"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0000011"}]}]]},{"E_app":[{"Id":"valid_load_encdec"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"is_unsigned"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"STORE"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"width_enc"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"0100011"}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ADDIW"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ADDW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SUBW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SLLW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRLW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRAW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHIFTIWOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SLLIW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHIFTIWOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRLIW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHIFTIWOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SRAIW"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FENCE"},[{"MP_id":[{"Id":"pred"}]},{"MP_id":[{"Id":"succ"}]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000"}]},{"MP_typ":[{"MP_id":[{"Id":"pred"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"succ"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0001111"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FENCE_TSO"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1000"}]},{"MP_lit":[{"L_bin":"0011"}]},{"MP_lit":[{"L_bin":"0011"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0001111"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ECALL"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000000000000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MRET"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0011000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SRET"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"EBREAK"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000000000001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WFI"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000100000101"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SFENCE_VMA"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"virtual_memory_supported"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"not"},[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_true"]}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"virtual_memory_supported"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"not"},[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_true"]}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FENCE_RESERVED"},[{"MP_id":[{"Id":"fm"}]},{"MP_id":[{"Id":"pred"}]},{"MP_id":[{"Id":"succ"}]},{"MP_id":[{"Id":"rs"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"0000"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"1000"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"fm"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"pred"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"succ"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0001111"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"0000"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"1000"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FENCEI_RESERVED"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000000000"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0001111"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000000000"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AMO"},[{"MP_id":[{"Id":"op"}]},{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"size"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"amo_encoding_valid"},[{"E_id":[{"Id":"size"}]},{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rd"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_amoop"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"aq"}]}]]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"rl"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"width_enc_wide"},[{"MP_id":[{"Id":"size"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0101111"}]}]]},{"E_app":[{"Id":"amo_encoding_valid"},[{"E_id":[{"Id":"size"}]},{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rd"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"LOADRES"},[{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zalrsc"}]}]]},{"E_app":[{"Id":"lrsc_width_valid"},[{"E_id":[{"Id":"width"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"aq"}]}]]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"rl"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"width_enc"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0101111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zalrsc"}]}]]},{"E_app":[{"Id":"lrsc_width_valid"},[{"E_id":[{"Id":"width"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"STORECON"},[{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zalrsc"}]}]]},{"E_app":[{"Id":"lrsc_width_valid"},[{"E_id":[{"Id":"width"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"aq"}]}]]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"rl"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"width_enc"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0101111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zalrsc"}]}]]},{"E_app":[{"Id":"lrsc_width_valid"},[{"E_id":[{"Id":"width"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MUL"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"mul_op"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zmmul"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_mul_op"},[{"MP_id":[{"Id":"mul_op"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zmmul"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"DIV"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"REM"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MULW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zmmul"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zmmul"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"DIVW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"REMW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"bool_bits"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SLLIUW"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000010"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBA_RTYPEUW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBA_RTYPEUW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"shamt"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBA_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"shamt"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RORIW"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RORI"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ROLW"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"RORW"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ANDN"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ORN"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"XNOR"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"MAX"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"MAXU"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"MIN"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"MINU"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ROL"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ROR"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_EXTOP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SEXTB"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_EXTOP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"SEXTH"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_EXTOP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ZEXTH"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000100"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBB_EXTOP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"ZEXTH"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000100"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"REV8"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011010011000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"REV8"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011010111000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ORCB"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001010000111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CPOP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CPOPW"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CLZ"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CLZW"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CTZ"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CTZW"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110000"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0011011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CLMUL"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkc"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CLMULH"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkc"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CLMULR"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbc"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbc"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_IOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BCLRI"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_IOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BEXTI"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_IOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BINVI"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011010"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_IOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BSETI"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001010"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":5}]}]]},{"E_lit":["L_zero"]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BCLR"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BEXT"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BINV"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0110100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBS_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"BSET"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbs"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"LOAD_FP"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"float_load_store_width_supported"},[{"E_id":[{"Id":"width"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"width_enc"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0000111"}]}]]},{"E_app":[{"Id":"float_load_store_width_supported"},[{"E_id":[{"Id":"width"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"STORE_FP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]}]]},{"E_app":[{"Id":"float_load_store_width_supported"},[{"E_id":[{"Id":"width"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[7]}]}]]}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"width_enc"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"0100111"}]}]]},{"E_app":[{"Id":"float_load_store_width_supported"},[{"E_id":[{"Id":"width"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_S"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMADD_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"00"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1000011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_S"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMSUB_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"00"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1000111"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_S"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FNMSUB_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"00"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1001011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_S"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FNMADD_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"00"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1001111"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FADD_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSUB_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMUL_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FDIV_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSQRT_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0101100"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_W_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_WU_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100000"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_S_W"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_S_WU"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101000"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_L_S"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_LU_S"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100000"}]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_S_L"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_S_LU"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101000"}]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_F_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJ_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_F_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJN_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_F_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJX_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_F_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMIN_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_F_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMAX_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_X_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FEQ_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_X_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FLT_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_TYPE_X_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FLE_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_TYPE_X_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCLASS_S"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1110000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveSingleFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_TYPE_X_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMV_X_W"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1110000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_TYPE_F_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMV_W_X"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1111000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_D"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMADD_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"01"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1000011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_D"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMSUB_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"01"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1000111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_D"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FNMSUB_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"01"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1001011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_D"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FNMADD_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"01"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1001111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":4}]},{"E_vector":[[{"E_id":[{"Id":"rs3"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FADD_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSUB_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMUL_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FDIV_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSQRT_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0101101"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_W_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_WU_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100001"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_D_W"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_D_WU"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101001"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_S_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_D_S"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_L_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100001"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_LU_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100001"}]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_D_L"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101001"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_D_LU"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101001"}]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJ_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJN_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJX_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMIN_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMAX_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":3}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_X_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FEQ_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_X_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FLT_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_X_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FLE_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":2}]},{"E_vector":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_X_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCLASS_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1110001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_X_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMV_X_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1110001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_F_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMV_D_X"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1111001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FADD_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSUB_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000110"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMUL_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FDIV_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001110"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_H"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMADD_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1000011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_H"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMSUB_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1000111"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_H"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FNMSUB_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1001011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_MADD_TYPE_H"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FNMADD_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1001111"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJ_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJN_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSGNJX_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMIN_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010110"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_F_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMAX_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010110"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_X_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FEQ_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_X_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FLT_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_BIN_X_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FLE_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSQRT_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0101110"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_W_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_WU_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100010"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_H_W"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_H_WU"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101010"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_H_S"}]}]]},{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_H_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100010"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_S_H"}]}]]},{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_D_H"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100001"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfMin"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveDoubleFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"validDoubleRegs"},[{"E_lit":[{"L_num":1}]},{"E_vector":[[{"E_id":[{"Id":"rd"}]}]]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_L_H"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100010"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_LU_H"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100010"}]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_H_L"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101010"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCVT_H_LU"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1101010"}]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_X_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FCLASS_H"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1110010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"haveHalfFPU"},[{"E_lit":["L_unit"]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_X_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMV_X_H"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1110010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"F_UN_F_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FMV_H_X"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1111010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLI_H"},[{"MP_id":[{"Id":"constantidx"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1111010"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_typ":[{"MP_id":[{"Id":"constantidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLI_S"},[{"MP_id":[{"Id":"constantidx"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1111000"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_typ":[{"MP_id":[{"Id":"constantidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLI_D"},[{"MP_id":[{"Id":"constantidx"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1111001"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_typ":[{"MP_id":[{"Id":"constantidx"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMINM_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010110"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMAXM_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010110"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMINM_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMAXM_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMINM_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMAXM_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FROUND_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100010"}]},{"MP_lit":[{"L_bin":"00100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FROUNDNX_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100010"}]},{"MP_lit":[{"L_bin":"00101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FROUND_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_lit":[{"L_bin":"00100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FROUNDNX_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100000"}]},{"MP_lit":[{"L_bin":"00101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FROUND_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100001"}]},{"MP_lit":[{"L_bin":"00100"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FROUNDNX_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0100001"}]},{"MP_lit":[{"L_bin":"00101"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMVH_X_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]},{"E_app":[{"Id":"in32BitMode"},[{"E_lit":["L_unit"]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1110001"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]},{"E_app":[{"Id":"in32BitMode"},[{"E_lit":["L_unit"]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FMVP_D_X"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]},{"E_app":[{"Id":"in32BitMode"},[{"E_lit":["L_unit"]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1011001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]},{"E_app":[{"Id":"in32BitMode"},[{"E_lit":["L_unit"]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLEQ_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLTQ_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010010"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfh"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLEQ_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLTQ_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLEQ_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FLTQ_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FCVTMOD_W_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100001"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_D"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfa"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSETVLI"},[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000"}]},{"MP_typ":[{"MP_id":[{"Id":"ma"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ta"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"sew"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"lmul"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSETVL"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1000000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSETIVLI"},[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1100"}]},{"MP_typ":[{"MP_id":[{"Id":"ma"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ta"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"sew"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"lmul"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"NVSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nvsfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"NVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MASKTYPEV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MOVETYPEV"},[{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vxfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"NXSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nxsfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"NXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nxfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VXSG"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vxsgfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MASKTYPEX"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MOVETYPEX"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VITYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vifunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"NISTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nisfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"NITYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nifunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VISG"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_visgfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MASKTYPEI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MOVETYPEI"},[{"MP_id":[{"Id":"vd"}]},{"MP_id":[{"Id":"simm"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VMVRTYPE"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"nreg"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100111"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_nreg"},[{"MP_id":[{"Id":"nreg"}]}]]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_mvvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MVVMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_mvvmafunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"WVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_wvvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"WVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_wvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"WMVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_wmvvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VEXTTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"vext_vs1"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VMVXS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010000"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MVVCOMPRESS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MVXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_mvxfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MVXMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_mvxmafunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"WVXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_wvxfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"WXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_wxfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"WMVXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_wmvxfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VMVSX"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010000"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fvvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FVVMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fvvmafunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FWVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fwvvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FWVVMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fwvvmafunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FWVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fwvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFUNARY0"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfunary0"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vfunary0_vs1"},[{"MP_id":[{"Id":"vfunary0"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFWUNARY0"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfwunary0"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vfwunary0_vs1"},[{"MP_id":[{"Id":"vfwunary0"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFNUNARY0"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfnunary0"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vfnunary0_vs1"},[{"MP_id":[{"Id":"vfnunary0"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFUNARY1"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfunary1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010011"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vfunary1_vs1"},[{"MP_id":[{"Id":"vfunary1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFMVFS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010000"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FVFTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fvffunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FVFMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fvfmafunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FWVFTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fwvffunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FWVFMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fwvfmafunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FWFTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fwffunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFMERGE"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFMV"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010111"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFMVSF"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010000"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VLSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"0000111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VLSEGFFTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"10000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"0000111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_lit":[{"L_bin":"0100111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VLSSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"10"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"0000111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSSSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"10"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_lit":[{"L_bin":"0100111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VLUXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"01"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"0000111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VLOXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"0000111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSUXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"01"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_lit":[{"L_bin":"0100111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSOXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_lit":[{"L_bin":"0100111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VLRETYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields_pow2"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_vlewidth"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"0000111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSRETYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vs3"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_nfields_pow2"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_lit":[{"L_bin":"0100111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VMTYPE"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd_or_vs3"}]},{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"01011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd_or_vs3"}]}]]},{"MP_app":[{"Id":"encdec_lsop"},[{"MP_id":[{"Id":"op"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_mmfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCPOP_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010000"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"10000"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFIRST_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010000"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"10001"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VMSBF_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VMSIF_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VMSOF_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VIOTA_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"10000"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VID_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"10001"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VVMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vvmfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VVMCTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vvmcfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VVMSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vvmsfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VVCMPTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vvcmpfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VXMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vxmfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VXMCTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vxmcfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VXMSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vxmsfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VXCMPTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vxcmpfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VIMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vimfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VIMCTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vimcfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VIMSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vimsfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VICMPTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vicmpfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"simm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FVVMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fvvmfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FVFMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_fvfmfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RIVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_rivvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RMVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_rmvvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RFVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_rfvvfunct6"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA256SUM0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA256SUM1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA256SIG0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA256SIG1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES32ESMI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"bs"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"10011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES32ESI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"bs"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"10001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES32DSMI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"bs"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"10111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES32DSI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"bs"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"10101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SUM0R"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SUM1R"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":[{"L_bin":"01001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SIG0L"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":[{"L_bin":"01010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SIG0H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":[{"L_bin":"01110"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SIG1L"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":[{"L_bin":"01011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SIG1H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":[{"L_bin":"01111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES64KS1I"},[{"MP_id":[{"Id":"rnum"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Operator":"<_u"},[{"E_id":[{"Id":"rnum"}]},{"E_lit":[{"L_hex":"B"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"11000"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_typ":[{"MP_id":[{"Id":"rnum"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Operator":"<_u"},[{"E_id":[{"Id":"rnum"}]},{"E_lit":[{"L_hex":"B"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES64IM"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"11000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES64KS2"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01"}]},{"MP_lit":[{"L_bin":"11111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES64ESM"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"11011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES64ES"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"11001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkne"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES64DSM"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"11111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"AES64DS"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"11101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SUM0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SUM1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SIG0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00110"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHA512SIG1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zknh"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SM3P0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksh"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksh"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SM3P1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksh"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"01001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksh"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SM4ED"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksed"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"bs"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"11000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksed"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SM4KS"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksed"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"bs"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"11010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zksed"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBKB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"PACK"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBKB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"PACKH"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZBKB_PACKW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0111011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZIP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000010001111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"UNZIP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000010001111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"BREV8"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011010000111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"XPERM8"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkx"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkx"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"XPERM4"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkx"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0010100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbkx"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VANDN_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000001"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VANDN_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000001"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VBREV_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"01010"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VBREV8_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VREV8_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"01001"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCLZ_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"01100"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCTZ_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"01101"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCPOP_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"01110"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VROL_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010101"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VROL_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010101"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VROR_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VROR_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VROR_VI"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm5"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"uimm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01010"}]},{"MP_typ":[{"MP_id":[{"Id":"uimm5"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VWSLL_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"110101"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VWSLL_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"110101"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VWSLL_VI"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"110101"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCLMUL_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCLMUL_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001100"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCLMULH_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001101"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VCLMULH_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001101"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"110"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VGHSH_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1011001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VGMUL_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"10001"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VAESDF"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESDF_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vaesdf"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESDF_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VAESDM"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESDM_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vaesdm"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESDM_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VAESEF"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESEF_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vaesef"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00011"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESEF_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VAESEM"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESEM_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vaesem"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VAESEM_VV"}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VAESKF1_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rnd"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1000101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"rnd"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VAESKF2_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rnd"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101010"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"rnd"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VAESZ_VS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101001"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"00111"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSM4K_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100001"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZVKSM4RTYPE"},[{"MP_id":[{"Id":"ZVK_VSM4R_VV"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101000"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"10000"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZVKSM4RTYPE"},[{"MP_id":[{"Id":"ZVK_VSM4R_VS"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101001"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"10000"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":128}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSHA2MS_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknha"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknhb"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]]},{"E_app":[{"Id":"zvknhab_check_encdec"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101101"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknha"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknhb"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]]},{"E_app":[{"Id":"zvknhab_check_encdec"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZVKSHA2TYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknha"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknhb"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]]},{"E_app":[{"Id":"zvknhab_check_encdec"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_vsha2"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknha"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvknhb"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":64}]}]]}]}]]}]}]]},{"E_app":[{"Id":"zvknhab_check_encdec"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSM3ME_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksh"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":256}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100000"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksh"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":256}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VSM3C_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksh"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":256}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1010111"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1110111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvksh"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"zvk_check_encdec"},[{"E_lit":[{"L_num":256}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"zvk_valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CSRReg"},[{"MP_id":[{"Id":"csr"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"csr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_csrop"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"CSRImm"},[{"MP_id":[{"Id":"csr"}]},{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"csr"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_csrop"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SINVAL_VMA"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svinval"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001011"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svinval"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SFENCE_W_INVAL"},[{"MP_lit":["L_unit"]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svinval"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001100"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svinval"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SFENCE_INVAL_IR"},[{"MP_lit":["L_unit"]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svinval"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0001100"}]},{"MP_lit":[{"L_bin":"00001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Svinval"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"WRS"},[{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zawrs"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_wrsop"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zawrs"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZICOND_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicond"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"0000111"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_zicondop"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"0110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicond"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZICBOM"},[{"MP_id":[{"Id":"cbop"}]},{"MP_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbom"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_app":[{"Id":"encdec_cbop"},[{"MP_id":[{"Id":"cbop"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0001111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicbom"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZICBOZ"},[{"MP_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicboz"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000000000100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"010"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0001111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicboz"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FENCEI"},[{"MP_lit":["L_unit"]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zifencei"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000000000000"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"001"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"0001111"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zifencei"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FCVT_BF16_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"10"}]},{"MP_lit":[{"L_bin":"01000"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FCVT_S_BF16"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01000"}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_lit":[{"L_bin":"00110"}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"encdec_rounding_mode"},[{"MP_id":[{"Id":"rm"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1010011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFNCVTBF16_F_F_W"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"11101"}]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFWCVTBF16_F_F_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010010"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_lit":[{"L_bin":"01101"}]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFWMACCBF16_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfwma"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"111011"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfwma"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"VFWMACCBF16_VF"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfwma"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"111011"}]},{"MP_typ":[{"MP_id":[{"Id":"vm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"101"}]},{"MP_app":[{"Id":"encdec_vreg"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_lit":[{"L_bin":"1010111"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zvfbfwma"}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":16}]}]]}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZIMOP_MOP_R"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"mop_30"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"mop_27_26"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"mop_21_20"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zimop"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1"}]},{"MP_typ":[{"MP_id":[{"Id":"mop_30"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_typ":[{"MP_id":[{"Id":"mop_27_26"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"0111"}]},{"MP_typ":[{"MP_id":[{"Id":"mop_21_20"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zimop"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZIMOP_MOP_RR"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"mop_30"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"mop_27_26"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zimop"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1"}]},{"MP_typ":[{"MP_id":[{"Id":"mop_30"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_typ":[{"MP_id":[{"Id":"mop_27_26"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"100"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"1110011"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zimop"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ILLEGAL"},[{"MP_id":[{"Id":"s"}]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"encdec_compressed"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_NTL"},[{"MP_id":[{"Id":"op"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihintntl"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_app":[{"Id":"encdec_ntl"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihintntl"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_NOP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000"}]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDI4SPN"},[{"MP_id":[{"Id":"rd"}]},{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"nz96"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nz54"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nz3"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nz2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nz96"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nz54"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nz3"}]},{"E_id":[{"Id":"nz2"}]}]]}]]}]]},{"E_lit":[{"L_bin":"00000000"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000"}]},{"MP_typ":[{"MP_id":[{"Id":"nz54"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nz96"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nz2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nz3"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nz96"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nz54"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nz3"}]},{"E_id":[{"Id":"nz2"}]}]]}]]}]]},{"E_lit":[{"L_bin":"00000000"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LW"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LD"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SW"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"110"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SD"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"111"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDI"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000"}]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_JAL"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"i11"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i10"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i98"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i4"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i31"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001"}]},{"MP_typ":[{"MP_id":[{"Id":"i11"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i4"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i98"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i10"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i31"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDIW"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001"}]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LI"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010"}]},{"MP_typ":[{"MP_id":[{"Id":"imm5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"imm40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDI16SP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"nzi9"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nzi87"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nzi6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nzi5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nzi4"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi9"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi87"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi6"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi5"}]},{"E_id":[{"Id":"nzi4"}]}]]}]]}]]}]]},{"E_lit":[{"L_bin":"000000"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011"}]},{"MP_typ":[{"MP_id":[{"Id":"nzi9"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00010"}]},{"MP_typ":[{"MP_id":[{"Id":"nzi4"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nzi6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nzi87"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"nzi5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi9"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi87"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi6"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzi5"}]},{"E_id":[{"Id":"nzi4"}]}]]}]]}]]}]]},{"E_lit":[{"L_bin":"000000"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LUI"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm17"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"imm1612"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"sp"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm17"}]},{"E_id":[{"Id":"imm1612"}]}]]},{"E_lit":[{"L_bin":"000000"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011"}]},{"MP_typ":[{"MP_id":[{"Id":"imm17"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"imm1612"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"sp"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm17"}]},{"E_id":[{"Id":"imm1612"}]}]]},{"E_lit":[{"L_bin":"000000"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SRLI"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"shamt5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"shamt40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"shamt5"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"shamt40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"shamt5"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SRAI"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"shamt5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"shamt40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"shamt5"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"shamt40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"shamt5"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ANDI"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"i40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SUB"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_lit":[{"L_bin":"00"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_XOR"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_lit":[{"L_bin":"01"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_OR"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_AND"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SUBW"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_lit":[{"L_bin":"00"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDW"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_lit":[{"L_bin":"11"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_lit":[{"L_bin":"01"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_J"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"i11"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i10"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i98"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i4"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i31"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101"}]},{"MP_typ":[{"MP_id":[{"Id":"i11"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i4"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i98"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i10"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i7"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i31"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_BEQZ"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"i8"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i21"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]]},{"MP_id":[{"Id":"rs"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"110"}]},{"MP_typ":[{"MP_id":[{"Id":"i8"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"i76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i21"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_BNEZ"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"i8"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i21"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]]},{"MP_id":[{"Id":"rs"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"111"}]},{"MP_typ":[{"MP_id":[{"Id":"i8"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"i76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i21"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"i5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SLLI"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"shamt5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"shamt40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]}]]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"shamt5"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"000"}]},{"MP_typ":[{"MP_id":[{"Id":"shamt5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"shamt40"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"shamt5"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LWSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui42"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"010"}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui42"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LDSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011"}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SWSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui52"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]}]]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"110"}]},{"MP_typ":[{"MP_id":[{"Id":"ui52"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SDSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"111"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_JR"},[{"MP_id":[{"Id":"rs1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_JALR"},[{"MP_id":[{"Id":"rs1"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_bin":"00000"}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_MV"},[{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"0"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_EBREAK"},[{"MP_lit":["L_unit"]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"1001"}]},{"MP_lit":[{"L_bin":"0000000000"}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADD"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"1"}]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"encdec_reg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LBU"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"uimm0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]},{"MP_id":[{"Id":"rdc"}]},{"MP_id":[{"Id":"rsc1"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LHU"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]},{"MP_id":[{"Id":"rdc"}]},{"MP_id":[{"Id":"rsc1"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LH"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]},{"MP_id":[{"Id":"rdc"}]},{"MP_id":[{"Id":"rsc1"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"001"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_lit":[{"L_bin":"1"}]},{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SB"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"uimm0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"uimm0"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SH"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_lit":[{"L_bin":"0"}]},{"MP_typ":[{"MP_id":[{"Id":"uimm1"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ZEXT_B"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_lit":[{"L_bin":"000"}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SEXT_B"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_lit":[{"L_bin":"001"}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ZEXT_H"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_lit":[{"L_bin":"010"}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SEXT_H"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_lit":[{"L_bin":"011"}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zbb"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ZEXT_W"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zba"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_NOT"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_lit":[{"L_bin":"11"}]},{"MP_lit":[{"L_bin":"101"}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_MUL"},[{"MP_id":[{"Id":"rsdc"}]},{"MP_id":[{"Id":"rsc2"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zmmul"}]}]]}]]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"100"}]},{"MP_lit":[{"L_bin":"111"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_lit":[{"L_bin":"10"}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcb"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_M"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zmmul"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FLWSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui42"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011"}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui42"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FSWSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui52"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]}]]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"111"}]},{"MP_typ":[{"MP_id":[{"Id":"ui52"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FLW"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"011"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_cfreg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FSW"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"111"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui2"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui6"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_cfreg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcf"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FLDSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]}]]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001"}]},{"MP_typ":[{"MP_id":[{"Id":"ui5"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui43"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FSDSP"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui86"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_freg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"10"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FLD"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"001"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_cfreg"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FSD"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]}]]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"101"}]},{"MP_typ":[{"MP_id":[{"Id":"ui53"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_app":[{"Id":"encdec_creg"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_typ":[{"MP_id":[{"Id":"ui76"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]}]},{"MP_app":[{"Id":"encdec_cfreg"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_lit":[{"L_bin":"00"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcd"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ZCMOP"},[{"MP_id":[{"Id":"mop"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcmop"}]}]]}]},{"MPat_when":[{"MP_vector_concat":[[{"MP_lit":[{"L_bin":"01100"}]},{"MP_typ":[{"MP_id":[{"Id":"mop"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_lit":[{"L_bin":"100000"}]},{"MP_lit":[{"L_bin":"01"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zcmop"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_ILLEGAL"},[{"MP_id":[{"Id":"s"}]}]]}]},{"MPat_pat":[{"MP_id":[{"Id":"s"}]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZICBOP"},[{"P_tuple":[[{"P_id":[{"Id":"cbop"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"offset"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"NTL"},[{"P_wild":[]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_NTL"},[{"P_wild":[]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"PAUSE"},[{"P_lit":["L_unit"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"LPAD"},[{"P_id":[{"Id":"lpl"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"is_landing_pad_expected"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"unaligned_pc"}]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"get_arch_pc"},[{"E_lit":["L_unit"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_bin":"00"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"label_mismatch"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX"},[{"E_app":[{"Id":"Regno"},[{"E_lit":[{"L_num":7}]}]]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":12}]}]]},{"E_id":[{"Id":"lpl"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"lpl"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":20}]}]]}]]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_id":[{"Id":"unaligned_pc"}]},{"E_id":[{"Id":"label_mismatch"}]}]]},{"E_block":[[{"E_app":[{"Id":"Trap"},[{"E_tuple":[[{"E_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"CTL_TRAP"},[{"E_app":[{"Id":"make_landing_pad_exception"},[{"E_lit":["L_unit"]}]]}]]},{"E_id":[{"Id":"PC"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"reset_elp"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]},{"E_block":[[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"UTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"off"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_hex":"000"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"LUI"}]},{"E_id":[{"Id":"off"}]}]},{"Pat_exp":[{"P_id":[{"Id":"AUIPC"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"get_arch_pc"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"off"}]}]]}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"JAL"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"link_address"}]},{"E_app":[{"Id":"get_next_pc"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"jump_to"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"PC"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Retire_Success"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"link_address"}]}]]},{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"failure"}]},{"E_id":[{"Id":"failure"}]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"BTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"taken"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"BEQ"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BNE"}]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BLT"}]},{"E_app":[{"Operator":"<_s"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BGE"}]},{"E_app":[{"Operator":">=_s"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BLTU"}]},{"E_app":[{"Operator":"<_u"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BGEU"}]},{"E_app":[{"Operator":">=_u"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]}]]}]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"taken"}]},{"E_app":[{"Id":"jump_to"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"PC"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ITYPE"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"immext"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"ADDI"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"immext"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SLTI"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Operator":"<_s"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"immext"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SLTIU"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Operator":"<_u"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"immext"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ANDI"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"immext"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ORI"}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"immext"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"XORI"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"immext"}]}]]}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHIFTIOP"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shamt"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"shamt"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"log2_xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"SLLI"}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"shamt"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRLI"}]},{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"shamt"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRAI"}]},{"E_app":[{"Id":"shift_bits_right_arith"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"shamt"}]}]]}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"RTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"ADD"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SLT"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Operator":"<_s"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SLTU"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Operator":"<_u"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AND"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"OR"}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"XOR"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SLL"}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"log2_xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRL"}]},{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"log2_xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SUB"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRA"}]},{"E_app":[{"Id":"shift_bits_right_arith"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"log2_xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"LOAD"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"is_unsigned"}]},{"P_id":[{"Id":"width"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"offset"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_lit":[{"L_string":"extensions/I/base_insts.sail:290.28-290.29"}]}]},{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"width"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"data"}]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"extend_value"},[{"E_id":[{"Id":"is_unsigned"}]},{"E_id":[{"Id":"data"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_id":[{"Id":"e"}]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"STORE"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"offset"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_lit":[{"L_string":"extensions/I/base_insts.sail:321.28-321.29"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"data"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_id":[{"Id":"e"}]}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ADDIW"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"result"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"RTYPEW"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"ADDW"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SUBW"}]},{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SLLW"}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRLW"}]},{"E_app":[{"Id":"shift_bits_right"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRAW"}]},{"E_app":[{"Id":"shift_bits_right_arith"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHIFTIWOP"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"SLLIW"}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"shamt"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRLIW"}]},{"E_app":[{"Id":"shift_bits_right"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"shamt"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SRAIW"}]},{"E_app":[{"Id":"shift_bits_right_arith"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"shamt"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FENCE"},[{"P_tuple":[[{"P_id":[{"Id":"pred"}]},{"P_id":[{"Id":"succ"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"fiom"}]},{"E_app":[{"Id":"is_fiom_active"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"pred"}]},{"E_app":[{"Id":"effective_fence_set"},[{"E_id":[{"Id":"pred"}]},{"E_id":[{"Id":"fiom"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"succ"}]},{"E_app":[{"Id":"effective_fence_set"},[{"E_id":[{"Id":"succ"}]},{"E_id":[{"Id":"fiom"}]}]]}]},{"E_block":[[{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"pred"}]},{"E_id":[{"Id":"succ"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"11"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"11"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_rw_rw"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"10"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"11"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_r_rw"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"10"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"10"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_r_r"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"11"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"01"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_rw_w"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"01"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"01"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_w_w"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"01"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"11"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_w_rw"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"11"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"10"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_rw_r"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"10"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"01"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_r_w"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"01"}]}]]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"10"}]}]]}]]},{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_w_r"}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_wild":[]}]},{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"00"}]}]]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_wild":[]}]},{"P_lit":[{"L_bin":"00"}]}]]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_wild":[]}]}]]},{"E_lit":["L_unit"]}]},{"Pat_exp":[{"P_wild":[]},{"E_block":[[{"E_app":[{"Id":"print"},[{"E_lit":[{"L_string":"FIXME: unsupported fence"}]}]]},{"E_lit":["L_unit"]}]]}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FENCE_TSO"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"sail_barrier"},[{"E_id":[{"Id":"Barrier_RISCV_tso"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ECALL"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"ExceptionType"}]},{"P_id":[{"Id":"trap"}]}]},{"E_match":[{"E_id":[{"Id":"cur_privilege"}]},[{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"E_U_EnvCall"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"E_S_EnvCall"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"E_M_EnvCall"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":527}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":528}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"sync_exception"}]},{"P_id":[{"Id":"t"}]}]},{"E_struct":[[{"FE_fexp":[{"Id":"trap"},{"E_id":[{"Id":"trap"}]}]},{"FE_fexp":[{"Id":"excinfo"},{"E_typ":[{"Typ_app":[{"Id":"option"},[{"A_typ":[{"Typ_id":[{"Id":"xlenbits"}]}]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]},{"FE_fexp":[{"Id":"ext"},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Trap"},[{"E_tuple":[[{"E_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"CTL_TRAP"},[{"E_id":[{"Id":"t"}]}]]},{"E_id":[{"Id":"PC"}]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MRET"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"ext_check_xret_priv"},[{"E_id":[{"Id":"Machine"}]}]]}]]},{"E_app":[{"Id":"Ext_XRET_Priv_Failure"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"set_next_pc"},[{"E_app":[{"Id":"exception_handler"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"CTL_MRET"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"PC"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SRET"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"sret_illegal"}]}]},{"E_match":[{"E_id":[{"Id":"cur_privilege"}]},[{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_TSR"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":570}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":571}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"sret_illegal"}]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"ext_check_xret_priv"},[{"E_id":[{"Id":"Supervisor"}]}]]}]]},{"E_app":[{"Id":"Ext_XRET_Priv_Failure"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"set_next_pc"},[{"E_app":[{"Id":"exception_handler"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"CTL_SRET"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"PC"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"EBREAK"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"PC"}]}]]},{"E_app":[{"Id":"E_Breakpoint"},[{"E_lit":["L_unit"]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WFI"},[{"P_lit":["L_unit"]}]]},{"E_match":[{"E_id":[{"Id":"cur_privilege"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_app":[{"Id":"Enter_Wait"},[{"E_id":[{"Id":"WAIT_WFI"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_TW"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"Enter_Wait"},[{"E_id":[{"Id":"WAIT_WFI"}]}]]}]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":609}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":610}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SFENCE_VMA"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"addr"}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"asid"}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"Some"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"asidlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"cur_privilege"}]},[{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_match":[{"E_app":[{"Id":"_get_Mstatus_TVM"},[{"E_id":[{"Id":"mstatus"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_bin":"1"}]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[1]}]}]]},{"P_wild":[]}]},{"E_block":[[{"E_app":[{"Id":"flush_TLB"},[{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"addr"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_block":[[{"E_app":[{"Id":"flush_TLB"},[{"E_id":[{"Id":"asid"}]},{"E_id":[{"Id":"addr"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":635}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/I/base_insts.sail"}]},{"E_lit":[{"L_num":636}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FENCE_RESERVED"},[{"P_tuple":[[{"P_id":[{"Id":"fm"}]},{"P_id":[{"Id":"pred"}]},{"P_id":[{"Id":"succ"}]},{"P_id":[{"Id":"rs"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FENCEI_RESERVED"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"JALR"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"update_elp_state"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"link_address"}]},{"E_app":[{"Id":"get_next_pc"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"target"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"jump_to"},[{"E_app":[{"Id":"bitvector_update"},[{"E_id":[{"Id":"target"}]},{"E_lit":[{"L_num":0}]},{"E_lit":["L_zero"]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Retire_Success"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"link_address"}]}]]},{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"failure"}]},{"E_id":[{"Id":"failure"}]}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AMO"},[{"P_tuple":[[{"P_id":[{"Id":"op"}]},{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"width"}]},{"TP_var":[{"Var":"'width"}]}]},{"E_id":[{"Id":"width"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"xlen_bytes"}]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_lit":[{"L_string":"extensions/A/zaamo_insts.sail:62.32-62.33"}]}]},{"E_match":[{"E_app":[{"Id":"ext_data_get_addr"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"ReadWrite"},[{"E_tuple":[[{"E_id":[{"Id":"Data"}]},{"E_id":[{"Id":"Data"}]}]]}]]},{"E_id":[{"Id":"width"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_Error"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Ext_DataAddr_Check_Failure"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_OK"},[{"P_id":[{"Id":"vaddr"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_aligned_vaddr"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"width"}]}]]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"E_SAMO_Addr_Align"},[{"E_lit":["L_unit"]}]]}]]}]]},{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"ReadWrite"},[{"E_tuple":[[{"E_id":[{"Id":"Data"}]},{"E_id":[{"Id":"Data"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"e"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"addr"}]},{"P_wild":[]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[8]}]}]}]]},{"P_id":[{"Id":"rs2_val"}]}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_app":[{"Id":"trunc"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"trunc"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"rX_pair_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"mem_write_ea"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]}]]},{"E_id":[{"Id":"rl"}]},{"E_lit":["L_true"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"e"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"mem_read"},[{"E_app":[{"Id":"ReadWrite"},[{"E_tuple":[[{"E_id":[{"Id":"Data"}]},{"E_id":[{"Id":"Data"}]}]]}]]},{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"aq"}]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]}]]},{"E_lit":["L_true"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"e"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"loaded"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'width"}]},{"Nexp_constant":[8]}]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"AMOSWAP"}]},{"E_id":[{"Id":"rs2_val"}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOADD"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOXOR"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOAND"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOOR"}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMIN"}]},{"E_if":[{"E_app":[{"Operator":"<_s"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]},{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMAX"}]},{"E_if":[{"E_app":[{"Operator":">_s"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]},{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMINU"}]},{"E_if":[{"E_app":[{"Operator":"<_u"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]},{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOMAXU"}]},{"E_if":[{"E_app":[{"Operator":">_u"},[{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]]},{"E_id":[{"Id":"rs2_val"}]},{"E_id":[{"Id":"loaded"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"AMOCAS"}]},{"E_id":[{"Id":"rs2_val"}]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"AMOCAS"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"loaded"}]},{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_app":[{"Id":"trunc"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rd"}]}]]}]]},{"E_app":[{"Id":"trunc"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]}]]},{"E_app":[{"Id":"rX_pair_bits"},[{"E_id":[{"Id":"rd"}]}]]}]]}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"loaded"}]}]]}]]},{"E_app":[{"Id":"wX_pair_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"loaded"}]}]]}]]}]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"mem_write_value"},[{"E_id":[{"Id":"addr"}]},{"E_id":[{"Id":"width"}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"width"}]}]]}]]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]}]]},{"E_id":[{"Id":"rl"}]},{"E_lit":["L_true"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"loaded"}]}]]}]]},{"E_app":[{"Id":"wX_pair_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"loaded"}]}]]}]]}]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_block":[[{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/A/zaamo_insts.sail"}]},{"E_lit":[{"L_num":114}]},{"E_lit":[{"L_string":"AMO got false from mem_write_value"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"e"}]}]]}]]}]}]]}]]}]}]]}]}]]}]}]]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"LOADRES"},[{"P_tuple":[[{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_lit":[{"L_string":"extensions/A/zalrsc_insts.sail:39.28-39.29"}]}]},{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_id":[{"Id":"width"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_id":[{"Id":"aq"}]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]}]]},{"E_lit":["L_true"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"data"}]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"data"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_id":[{"Id":"e"}]}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"STORECON"},[{"P_tuple":[[{"P_id":[{"Id":"aq"}]},{"P_id":[{"Id":"rl"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"xlen_bytes"}]}]]},{"E_lit":[{"L_string":"extensions/A/zalrsc_insts.sail:64.28-64.29"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"data"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"aq"}]},{"E_id":[{"Id":"rl"}]}]]},{"E_id":[{"Id":"rl"}]},{"E_lit":["L_true"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"b"}]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_bits_forwards"},[{"E_app":[{"Id":"not_bool"},[{"E_id":[{"Id":"b"}]}]]}]]}]]}]]},{"E_app":[{"Id":"cancel_reservation"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_id":[{"Id":"e"}]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MUL"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"mul_op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_bits"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_bits"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_int"}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"mul_op"}]},{"Id":"signed_rs1"}]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_bits"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_int"}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"mul_op"}]},{"Id":"signed_rs2"}]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs2_bits"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs2_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"to_bits_truncate"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"xlen"}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"rs1_int"}]},{"E_id":[{"Id":"rs2_int"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_if":[{"E_field":[{"E_id":[{"Id":"mul_op"}]},{"Id":"high"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"xlen"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"xlen"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"DIV"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"is_unsigned"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_bits"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_bits"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs2_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs2_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"quotient"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"rs2_int"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"quot_round_zero"},[{"E_id":[{"Id":"rs1_int"}]},{"E_id":[{"Id":"rs2_int"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"quotient"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"quotient"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_id":[{"Id":"quotient"}]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits_truncate"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"quotient"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"REM"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"is_unsigned"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_bits"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_bits"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs2_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs2_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"remainder"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"rs2_int"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"rs1_int"}]},{"E_app":[{"Id":"rem_round_zero"},[{"E_id":[{"Id":"rs1_int"}]},{"E_id":[{"Id":"rs2_int"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits_truncate"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"remainder"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MULW"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_bits"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_bits"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_int"}]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_bits"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_int"}]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs2_bits"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result32"}]}]},{"E_app":[{"Id":"to_bits_truncate"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"rs1_int"}]},{"E_id":[{"Id":"rs2_int"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result32"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"DIVW"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"is_unsigned"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_bits"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_bits"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs2_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs2_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"quotient"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"rs2_int"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"quot_round_zero"},[{"E_id":[{"Id":"rs1_int"}]},{"E_id":[{"Id":"rs2_int"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"quotient"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"quotient"}]},{"E_app":[{"Id":"pow2"},[{"E_lit":[{"L_num":31}]}]]}]]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_app":[{"Id":"pow2"},[{"E_lit":[{"L_num":31}]}]]}]]},{"E_id":[{"Id":"quotient"}]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"to_bits_truncate"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"quotient"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"REMW"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"is_unsigned"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_bits"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_bits"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_int"}]},{"E_if":[{"E_id":[{"Id":"is_unsigned"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs2_bits"}]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs2_bits"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"remainder"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"rs2_int"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"rs1_int"}]},{"E_app":[{"Id":"rem_round_zero"},[{"E_id":[{"Id":"rs1_int"}]},{"E_id":[{"Id":"rs2_int"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"to_bits_truncate"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"remainder"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SLLIUW"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_id":[{"Id":"shamt"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBA_RTYPEUW"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"shamt"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBA_RTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"shamt"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"RORIW"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"rotate_bits_right"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"shamt"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"RORI"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shamt"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"shamt"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"log2_xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"rotate_bits_right"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"shamt"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBB_RTYPEW"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shamt"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"ROLW"}]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"shamt"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"RORW"}]},{"E_app":[{"Id":"rotate_bits_right"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"shamt"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBB_RTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"ANDN"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"rs2_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ORN"}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"rs2_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"XNOR"}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MAX"}]},{"E_if":[{"E_app":[{"Operator":">_s"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"MAXU"}]},{"E_if":[{"E_app":[{"Operator":">_u"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"MIN"}]},{"E_if":[{"E_app":[{"Operator":"<_s"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"MINU"}]},{"E_if":[{"E_app":[{"Operator":"<_u"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"rs2_val"}]}]}]},{"Pat_exp":[{"P_id":[{"Id":"ROL"}]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"log2_xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ROR"}]},{"E_app":[{"Id":"rotate_bits_right"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"log2_xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBB_EXTOP"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"SEXTB"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"SEXTH"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ZEXTH"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"REV8"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"rev8"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ORCB"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"result"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":8}]},"Ord_inc",{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"result"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"i"}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_lit":[{"L_hex":"00"}]},{"E_lit":[{"L_hex":"FF"}]}]}]}]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CPOP"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"count_ones"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CPOPW"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"count_ones"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CLZ"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"count_leading_zeros"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CLZW"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"count_leading_zeros"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CTZ"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"count_trailing_zeros"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CTZW"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"count_trailing_zeros"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CLMUL"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prod"}]},{"E_app":[{"Id":"carryless_mul"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"prod"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CLMULH"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prod"}]},{"E_app":[{"Id":"carryless_mul"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"prod"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"xlen"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"xlen"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CLMULR"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"carryless_mulr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBS_IOP"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"mask"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"shamt"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_id":[{"Id":"shamt"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"BCLRI"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"mask"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BEXTI"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"mask"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BINVI"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"mask"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BSETI"}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"mask"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBS_RTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"mask"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"shift_bits_left"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_lit":[{"L_num":5}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"BCLR"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"mask"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BEXT"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"mask"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BINV"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"mask"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"BSET"}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"mask"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_NOP"},[{"P_wild":[]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ADDI4SPN"},[{"P_tuple":[[{"P_id":[{"Id":"rdc"}]},{"P_id":[{"Id":"nzimm"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"00"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"nzimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ITYPE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"sp"}]},{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"ADDI"}]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LW"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc"}]},{"P_id":[{"Id":"rdc"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LD"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc"}]},{"P_id":[{"Id":"rdc"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":["L_false"]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SW"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc1"}]},{"P_id":[{"Id":"rsc2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SD"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc1"}]},{"P_id":[{"Id":"rsc2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ADDI"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rsd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ITYPE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"ADDI"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_JAL"},[{"P_id":[{"Id":"imm"}]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"JAL"},[{"E_tuple":[[{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":21}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_id":[{"Id":"ra"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ADDIW"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rsd"}]}]]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ADDIW"},[{"E_tuple":[[{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"imm"}]}]]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LI"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ITYPE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"zreg"}]},{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"ADDI"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ADDI16SP"},[{"P_id":[{"Id":"imm"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_hex":"0"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ITYPE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"sp"}]},{"E_id":[{"Id":"sp"}]},{"E_id":[{"Id":"ADDI"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LUI"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[20]}]}]]},{"P_id":[{"Id":"res"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":20}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"UTYPE"},[{"E_tuple":[[{"E_id":[{"Id":"res"}]},{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"LUI"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SRLI"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rsd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"SHIFTIOP"},[{"E_tuple":[[{"E_id":[{"Id":"shamt"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"SRLI"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SRAI"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rsd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"SHIFTIOP"},[{"E_tuple":[[{"E_id":[{"Id":"shamt"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"SRAI"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ANDI"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rsd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ITYPE"},[{"E_tuple":[[{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"imm"}]}]]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"ANDI"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SUB"},[{"P_tuple":[[{"P_id":[{"Id":"rsd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPE"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"SUB"}]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_XOR"},[{"P_tuple":[[{"P_id":[{"Id":"rsd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPE"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"XOR"}]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_OR"},[{"P_tuple":[[{"P_id":[{"Id":"rsd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPE"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"OR"}]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_AND"},[{"P_tuple":[[{"P_id":[{"Id":"rsd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPE"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"AND"}]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SUBW"},[{"P_tuple":[[{"P_id":[{"Id":"rsd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPEW"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"SUBW"}]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ADDW"},[{"P_tuple":[[{"P_id":[{"Id":"rsd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPEW"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"ADDW"}]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_J"},[{"P_id":[{"Id":"imm"}]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"JAL"},[{"E_tuple":[[{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":21}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_BEQZ"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs"}]}]]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"BTYPE"},[{"E_tuple":[[{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":13}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_id":[{"Id":"zreg"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs"}]}]]},{"E_id":[{"Id":"BEQ"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_BNEZ"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs"}]}]]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"BTYPE"},[{"E_tuple":[[{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":13}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_id":[{"Id":"zreg"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rs"}]}]]},{"E_id":[{"Id":"BNE"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SLLI"},[{"P_tuple":[[{"P_id":[{"Id":"shamt"}]},{"P_id":[{"Id":"rsd"}]}]]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"SHIFTIOP"},[{"E_tuple":[[{"E_id":[{"Id":"shamt"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"SLLI"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LWSP"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"sp"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":["L_false"]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LDSP"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"sp"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":["L_false"]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SWSP"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"sp"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SDSP"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"sp"}]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_JR"},[{"P_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"JALR"},[{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":12}]}]]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_JALR"},[{"P_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"JALR"},[{"E_tuple":[[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":12}]}]]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"ra"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_MV"},[{"P_tuple":[[{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPE"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]},{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"ADD"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_EBREAK"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"EBREAK"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ADD"},[{"P_tuple":[[{"P_id":[{"Id":"rsd"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"RTYPE"},[{"E_tuple":[[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"ADD"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LBU"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rdc"}]},{"P_id":[{"Id":"rsc1"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":["L_true"]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LHU"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rdc"}]},{"P_id":[{"Id":"rsc1"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":["L_true"]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_LH"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rdc"}]},{"P_id":[{"Id":"rsc1"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":["L_false"]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SB"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc1"}]},{"P_id":[{"Id":"rsc2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SH"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc1"}]},{"P_id":[{"Id":"rsc2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ZEXT_B"},[{"P_id":[{"Id":"rsdc"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsdc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rsd"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SEXT_B"},[{"P_id":[{"Id":"rsdc"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsdc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ZBB_EXTOP"},[{"E_tuple":[[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"SEXTB"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ZEXT_H"},[{"P_id":[{"Id":"rsdc"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsdc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ZBB_EXTOP"},[{"E_tuple":[[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"ZEXTH"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_SEXT_H"},[{"P_id":[{"Id":"rsdc"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsdc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ZBB_EXTOP"},[{"E_tuple":[[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"SEXTH"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ZEXT_W"},[{"P_id":[{"Id":"rsdc"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rsd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsdc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"ZBA_RTYPEUW"},[{"E_tuple":[[{"E_id":[{"Id":"zreg"}]},{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"rsd"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_NOT"},[{"P_id":[{"Id":"rsdc"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsdc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"r"}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"r"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_MUL"},[{"P_tuple":[[{"P_id":[{"Id":"rsdc"}]},{"P_id":[{"Id":"rsc2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"MUL"},[{"E_tuple":[[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd"}]},{"E_struct":[[{"FE_fexp":[{"Id":"high"},{"E_lit":["L_false"]}]},{"FE_fexp":[{"Id":"signed_rs1"},{"E_lit":["L_true"]}]},{"FE_fexp":[{"Id":"signed_rs2"},{"E_lit":["L_true"]}]}]]}]]}]]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"LOAD_FP"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"width"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"flen_bytes"}]}]]},{"E_lit":[{"L_string":"extensions/FD/fext_insts.sail:277.28-277.29"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"offset"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_read"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"width"}]},{"E_app":[{"Id":"Read"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"result"}]}]]},{"E_block":[[{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"nan_box"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_id":[{"Id":"e"}]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"STORE_FP"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"flen_bytes"}]}]]},{"E_lit":[{"L_string":"extensions/FD/fext_insts.sail:313.28-313.29"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"offset"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"data"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"width"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"vmem_write"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"offset"}]},{"E_id":[{"Id":"width"}]},{"E_id":[{"Id":"data"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/FD/fext_insts.sail"}]},{"E_lit":[{"L_num":319}]},{"E_lit":[{"L_string":"store got false from vmem_write"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_id":[{"Id":"e"}]}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_MADD_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs3"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_32b"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_32b"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs3_val_32b"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs3"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_32b"}]}]]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMADD_S"}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_32b"}]},{"E_id":[{"Id":"rs2_val_32b"}]},{"E_id":[{"Id":"rs3_val_32b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FMSUB_S"}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_32b"}]},{"E_id":[{"Id":"rs2_val_32b"}]},{"E_app":[{"Id":"negate_S"},[{"E_id":[{"Id":"rs3_val_32b"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMSUB_S"}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"negate_S"},[{"E_id":[{"Id":"rs1_val_32b"}]}]]},{"E_id":[{"Id":"rs2_val_32b"}]},{"E_id":[{"Id":"rs3_val_32b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMADD_S"}]},{"E_app":[{"Id":"riscv_f32MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"negate_S"},[{"E_id":[{"Id":"rs1_val_32b"}]}]]},{"E_id":[{"Id":"rs2_val_32b"}]},{"E_app":[{"Id":"negate_S"},[{"E_id":[{"Id":"rs3_val_32b"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_32b"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_RM_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_32b"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_32b"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_32b"}]}]]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"FADD_S"}]},{"E_app":[{"Id":"riscv_f32Add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_32b"}]},{"E_id":[{"Id":"rs2_val_32b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FSUB_S"}]},{"E_app":[{"Id":"riscv_f32Sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_32b"}]},{"E_id":[{"Id":"rs2_val_32b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FMUL_S"}]},{"E_app":[{"Id":"riscv_f32Mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_32b"}]},{"E_id":[{"Id":"rs2_val_32b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FDIV_S"}]},{"E_app":[{"Id":"riscv_f32Div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_32b"}]},{"E_id":[{"Id":"rs2_val_32b"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_32b"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSQRT_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_f32Sqrt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_W_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_W"}]}]]},{"E_app":[{"Id":"riscv_f32ToI32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_W"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_WU_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_WU"}]}]]},{"E_app":[{"Id":"riscv_f32ToUi32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_WU"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_S_W"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_W"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_i32ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_W"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_S_WU"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_WU"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_ui32ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_WU"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_L_S"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fext_insts.sail:590.19-590.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_L"}]}]]},{"E_app":[{"Id":"riscv_f32ToI64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_L"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_LU_S"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fext_insts.sail:606.19-606.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_LU"}]}]]},{"E_app":[{"Id":"riscv_f32ToUi64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_LU"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_S_L"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fext_insts.sail:622.19-622.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_L"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_i64ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_L"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_S_LU"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/fext_insts.sail:638.19-638.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_LU"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_ui64ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_LU"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_F_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJ_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_S"}]},{"E_app":[{"Id":"fmake_S"},[{"E_id":[{"Id":"s2"}]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_F_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJN_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_S"}]},{"E_app":[{"Id":"fmake_S"},[{"E_app":[{"Id":"xor_vec"},[{"E_lit":[{"L_bin":"1"}]},{"E_id":[{"Id":"s2"}]}]]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_F_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJX_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_S"}]},{"E_app":[{"Id":"fmake_S"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s1"}]},{"E_id":[{"Id":"s2"}]}]]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_F_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMIN_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs1_lt_rs2"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_S"},[{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_S"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]}]]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_if":[{"E_id":[{"Id":"rs1_lt_rs2"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_F_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMAX_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs2_lt_rs1"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_S"},[{"E_id":[{"Id":"rs2_val_S"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_S"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]}]]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_if":[{"E_id":[{"Id":"rs2_lt_rs1"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_X_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FEQ_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f32Eq"},[{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_X_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FLT_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f32Lt"},[{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_TYPE_X_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FLE_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f32Le"},[{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_TYPE_X_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCLASS_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"P_id":[{"Id":"rd_val_10b"}]}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_inf_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0000000001"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_norm_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0000000010"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_subnorm_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0000000100"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0000001000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0000010000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_subnorm_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0000100000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_norm_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0001000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_inf_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0010000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_SNaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"0100000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_QNaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_lit":[{"L_bin":"1000000000"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]}]}]}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_10b"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_TYPE_X_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMV_X_W"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_TYPE_F_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMV_W_X"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"nan_box"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FLWSP"},[{"P_tuple":[[{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"sp"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FSWSP"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"sp"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FLW"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc"}]},{"P_id":[{"Id":"rdc"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"cfregidx_to_fregidx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FSW"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc1"}]},{"P_id":[{"Id":"rsc2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"00"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"cfregidx_to_fregidx"},[{"E_id":[{"Id":"rsc2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_MADD_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs3"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_64b"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_64b"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs3_val_64b"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs3"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_64b"}]}]]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMADD_D"}]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_64b"}]},{"E_id":[{"Id":"rs2_val_64b"}]},{"E_id":[{"Id":"rs3_val_64b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FMSUB_D"}]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_64b"}]},{"E_id":[{"Id":"rs2_val_64b"}]},{"E_app":[{"Id":"negate_D"},[{"E_id":[{"Id":"rs3_val_64b"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMSUB_D"}]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"negate_D"},[{"E_id":[{"Id":"rs1_val_64b"}]}]]},{"E_id":[{"Id":"rs2_val_64b"}]},{"E_id":[{"Id":"rs3_val_64b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMADD_D"}]},{"E_app":[{"Id":"riscv_f64MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"negate_D"},[{"E_id":[{"Id":"rs1_val_64b"}]}]]},{"E_id":[{"Id":"rs2_val_64b"}]},{"E_app":[{"Id":"negate_D"},[{"E_id":[{"Id":"rs3_val_64b"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_64b"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_RM_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_64b"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_64b"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_64b"}]}]]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"FADD_D"}]},{"E_app":[{"Id":"riscv_f64Add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_64b"}]},{"E_id":[{"Id":"rs2_val_64b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FSUB_D"}]},{"E_app":[{"Id":"riscv_f64Sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_64b"}]},{"E_id":[{"Id":"rs2_val_64b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FMUL_D"}]},{"E_app":[{"Id":"riscv_f64Mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_64b"}]},{"E_id":[{"Id":"rs2_val_64b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FDIV_D"}]},{"E_app":[{"Id":"riscv_f64Div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_64b"}]},{"E_id":[{"Id":"rs2_val_64b"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_64b"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSQRT_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_f64Sqrt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_W_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_W"}]}]]},{"E_app":[{"Id":"riscv_f64ToI32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_W"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_WU_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_WU"}]}]]},{"E_app":[{"Id":"riscv_f64ToUi32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_WU"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_D_W"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_W"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_i32ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_W"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_D_WU"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_WU"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_ui32ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_WU"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_S_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_f64ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_D_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_f32ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_L_D"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/dext_insts.sail:533.19-533.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_L"}]}]]},{"E_app":[{"Id":"riscv_f64ToI64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_L"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_LU_D"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/dext_insts.sail:549.19-549.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_LU"}]}]]},{"E_app":[{"Id":"riscv_f64ToUi64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_LU"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_D_L"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/dext_insts.sail:565.19-565.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_L"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_i64ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_L"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_D_LU"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/dext_insts.sail:581.19-581.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_LU"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_ui64ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_LU"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJ_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_app":[{"Id":"fmake_D"},[{"E_id":[{"Id":"s2"}]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJN_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_app":[{"Id":"fmake_D"},[{"E_app":[{"Id":"xor_vec"},[{"E_lit":[{"L_bin":"1"}]},{"E_id":[{"Id":"s2"}]}]]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJX_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_app":[{"Id":"fmake_D"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s1"}]},{"E_id":[{"Id":"s2"}]}]]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMIN_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs1_lt_rs2"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_D"},[{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_D"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_if":[{"E_id":[{"Id":"rs1_lt_rs2"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMAX_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs2_lt_rs1"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_D"},[{"E_id":[{"Id":"rs2_val_D"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_D"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_if":[{"E_id":[{"Id":"rs2_lt_rs1"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_X_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FEQ_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f64Eq"},[{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_X_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FLT_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f64Lt"},[{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_X_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FLE_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f64Le"},[{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_X_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCLASS_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"P_id":[{"Id":"rd_val_10b"}]}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_inf_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0000000001"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_norm_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0000000010"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_subnorm_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0000000100"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0000001000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0000010000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_subnorm_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0000100000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_norm_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0001000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_inf_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0010000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_SNaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"0100000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_QNaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_lit":[{"L_bin":"1000000000"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]}]}]}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_10b"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_X_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMV_X_D"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/dext_insts.sail:863.32-863.33"}]}]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_F_TYPE_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMV_D_X"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"flen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/FD/dext_insts.sail:869.32-869.33"}]}]},{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"nan_box"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FLDSP"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"sp"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FSDSP"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"sp"}]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FLD"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc"}]},{"P_id":[{"Id":"rdc"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd"}]},{"E_app":[{"Id":"cfregidx_to_fregidx"},[{"E_id":[{"Id":"rdc"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"LOAD_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"rd"}]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_FSD"},[{"P_tuple":[[{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rsc1"}]},{"P_id":[{"Id":"rsc2"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[12]}]}]]},{"P_id":[{"Id":"imm"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_bin":"000"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"creg2reg_idx"},[{"E_id":[{"Id":"rsc1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2"}]},{"E_app":[{"Id":"cfregidx_to_fregidx"},[{"E_id":[{"Id":"rsc2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"STORE_FP"},[{"E_tuple":[[{"E_id":[{"Id":"imm"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"rs1"}]},{"E_lit":[{"L_num":8}]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_RM_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_16b"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_16b"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_16b"}]}]]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"FADD_H"}]},{"E_app":[{"Id":"riscv_f16Add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_16b"}]},{"E_id":[{"Id":"rs2_val_16b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FSUB_H"}]},{"E_app":[{"Id":"riscv_f16Sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_16b"}]},{"E_id":[{"Id":"rs2_val_16b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FMUL_H"}]},{"E_app":[{"Id":"riscv_f16Mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_16b"}]},{"E_id":[{"Id":"rs2_val_16b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FDIV_H"}]},{"E_app":[{"Id":"riscv_f16Div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_16b"}]},{"E_id":[{"Id":"rs2_val_16b"}]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_16b"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_MADD_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs3"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_16b"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_16b"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs3_val_16b"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs3"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_16b"}]}]]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"FMADD_H"}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_16b"}]},{"E_id":[{"Id":"rs2_val_16b"}]},{"E_id":[{"Id":"rs3_val_16b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FMSUB_H"}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_16b"}]},{"E_id":[{"Id":"rs2_val_16b"}]},{"E_app":[{"Id":"negate_H"},[{"E_id":[{"Id":"rs3_val_16b"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMSUB_H"}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"negate_H"},[{"E_id":[{"Id":"rs1_val_16b"}]}]]},{"E_id":[{"Id":"rs2_val_16b"}]},{"E_id":[{"Id":"rs3_val_16b"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNMADD_H"}]},{"E_app":[{"Id":"riscv_f16MulAdd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"negate_H"},[{"E_id":[{"Id":"rs1_val_16b"}]}]]},{"E_id":[{"Id":"rs2_val_16b"}]},{"E_app":[{"Id":"negate_H"},[{"E_id":[{"Id":"rs3_val_16b"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_16b"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJ_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_app":[{"Id":"fmake_H"},[{"E_id":[{"Id":"s2"}]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJN_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_app":[{"Id":"fmake_H"},[{"E_app":[{"Id":"xor_vec"},[{"E_lit":[{"L_bin":"1"}]},{"E_id":[{"Id":"s2"}]}]]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSGNJX_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s1"}]},{"P_id":[{"Id":"e1"}]},{"P_id":[{"Id":"m1"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"s2"}]},{"P_id":[{"Id":"e2"}]},{"P_id":[{"Id":"m2"}]}]]},{"E_app":[{"Id":"fsplit_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_app":[{"Id":"fmake_H"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"s1"}]},{"E_id":[{"Id":"s2"}]}]]},{"E_id":[{"Id":"e1"}]},{"E_id":[{"Id":"m1"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMIN_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs1_lt_rs2"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_H"},[{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_H"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]}]]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_if":[{"E_id":[{"Id":"rs1_lt_rs2"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_F_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMAX_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs2_lt_rs1"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_H"},[{"E_id":[{"Id":"rs2_val_H"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_H"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_if":[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]}]]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_if":[{"E_id":[{"Id":"rs2_lt_rs1"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_X_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FEQ_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f16Eq"},[{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_X_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FLT_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f16Lt"},[{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_BIN_X_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FLE_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f16Le"},[{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FSQRT_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_f16Sqrt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_W_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_W"}]}]]},{"E_app":[{"Id":"riscv_f16ToI32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_W"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_WU_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_WU"}]}]]},{"E_app":[{"Id":"riscv_f16ToUi32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_WU"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_H_W"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_W"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_i32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_W"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_H_WU"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_WU"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_ui32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_WU"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_H_S"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_f32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_H_D"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_or_X_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_f64ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_S_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_f16ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_D_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_f16ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_L_H"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/zfh_insts.sail:685.19-685.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_L"}]}]]},{"E_app":[{"Id":"riscv_f16ToI64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_L"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_LU_H"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/zfh_insts.sail:701.19-701.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_LU"}]}]]},{"E_app":[{"Id":"riscv_f16ToUi64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_LU"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_H_L"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/zfh_insts.sail:717.19-717.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_L"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_i64ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_L"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCVT_H_LU"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/FD/zfh_insts.sail:733.19-733.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_LU"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_ui64ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_LU"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_or_X_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_X_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FCLASS_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_or_X_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[10]}]}]]},{"P_id":[{"Id":"rd_val_10b"}]}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_inf_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0000000001"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_norm_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0000000010"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_subnorm_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0000000100"}]},{"E_if":[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0000001000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0000010000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_subnorm_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0000100000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_norm_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0001000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_pos_inf_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0010000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_SNaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"0100000000"}]},{"E_if":[{"E_app":[{"Id":"f_is_QNaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_lit":[{"L_bin":"1000000000"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":10}]}]]}]}]}]}]}]}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val_10b"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_X_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMV_X_H"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rF_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"rd_val_X"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rs1_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_X"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"F_UN_F_TYPE_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"FMV_H_X"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_X"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val_X"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"nan_box"},[{"E_app":[{"Id":"mult_atom"},[{"E_if":[{"E_lit":["L_true"]},{"E_lit":[{"L_num":8}]},{"E_lit":[{"L_num":4}]}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"rd_val_H"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLI_H"},[{"P_tuple":[[{"P_id":[{"Id":"constantidx"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"bits"}]}]},{"E_match":[{"E_id":[{"Id":"constantidx"}]},[{"Pat_exp":[{"P_lit":[{"L_bin":"00000"}]},{"E_block":[[{"E_lit":[{"L_hex":"BC00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00001"}]},{"E_block":[[{"E_lit":[{"L_hex":"0400"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00010"}]},{"E_block":[[{"E_lit":[{"L_hex":"0100"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00011"}]},{"E_block":[[{"E_lit":[{"L_hex":"0200"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00100"}]},{"E_block":[[{"E_lit":[{"L_hex":"1C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00101"}]},{"E_block":[[{"E_lit":[{"L_hex":"2000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00110"}]},{"E_block":[[{"E_lit":[{"L_hex":"2C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00111"}]},{"E_block":[[{"E_lit":[{"L_hex":"3000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01000"}]},{"E_block":[[{"E_lit":[{"L_hex":"3400"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01001"}]},{"E_block":[[{"E_lit":[{"L_hex":"3500"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01010"}]},{"E_block":[[{"E_lit":[{"L_hex":"3600"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01011"}]},{"E_block":[[{"E_lit":[{"L_hex":"3700"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01100"}]},{"E_block":[[{"E_lit":[{"L_hex":"3800"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01101"}]},{"E_block":[[{"E_lit":[{"L_hex":"3900"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01110"}]},{"E_block":[[{"E_lit":[{"L_hex":"3A00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01111"}]},{"E_block":[[{"E_lit":[{"L_hex":"3B00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10000"}]},{"E_block":[[{"E_lit":[{"L_hex":"3C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10001"}]},{"E_block":[[{"E_lit":[{"L_hex":"3D00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10010"}]},{"E_block":[[{"E_lit":[{"L_hex":"3E00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10011"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10100"}]},{"E_block":[[{"E_lit":[{"L_hex":"4000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10101"}]},{"E_block":[[{"E_lit":[{"L_hex":"4100"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10110"}]},{"E_block":[[{"E_lit":[{"L_hex":"4200"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10111"}]},{"E_block":[[{"E_lit":[{"L_hex":"4400"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11000"}]},{"E_block":[[{"E_lit":[{"L_hex":"4800"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11001"}]},{"E_block":[[{"E_lit":[{"L_hex":"4C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11010"}]},{"E_block":[[{"E_lit":[{"L_hex":"5800"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11011"}]},{"E_block":[[{"E_lit":[{"L_hex":"5C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11100"}]},{"E_block":[[{"E_lit":[{"L_hex":"7800"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11101"}]},{"E_block":[[{"E_lit":[{"L_hex":"7C00"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11110"}]},{"E_block":[[{"E_lit":[{"L_hex":"7C00"}]}]]}]},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_wild":[]}]},{"E_block":[[{"E_app":[{"Id":"canonical_NaN_H"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"bits"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLI_S"},[{"P_tuple":[[{"P_id":[{"Id":"constantidx"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"bits"}]}]},{"E_match":[{"E_id":[{"Id":"constantidx"}]},[{"Pat_exp":[{"P_lit":[{"L_bin":"00000"}]},{"E_block":[[{"E_lit":[{"L_hex":"BF800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00001"}]},{"E_block":[[{"E_lit":[{"L_hex":"00800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00010"}]},{"E_block":[[{"E_lit":[{"L_hex":"37800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00011"}]},{"E_block":[[{"E_lit":[{"L_hex":"38000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00100"}]},{"E_block":[[{"E_lit":[{"L_hex":"3B800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00101"}]},{"E_block":[[{"E_lit":[{"L_hex":"3C000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00110"}]},{"E_block":[[{"E_lit":[{"L_hex":"3D800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00111"}]},{"E_block":[[{"E_lit":[{"L_hex":"3E000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01000"}]},{"E_block":[[{"E_lit":[{"L_hex":"3E800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01001"}]},{"E_block":[[{"E_lit":[{"L_hex":"3EA00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01010"}]},{"E_block":[[{"E_lit":[{"L_hex":"3EC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01011"}]},{"E_block":[[{"E_lit":[{"L_hex":"3EE00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01100"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01101"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F200000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01110"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F400000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01111"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F600000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10000"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10001"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FA00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10010"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FC00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10011"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FE00000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10100"}]},{"E_block":[[{"E_lit":[{"L_hex":"40000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10101"}]},{"E_block":[[{"E_lit":[{"L_hex":"40200000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10110"}]},{"E_block":[[{"E_lit":[{"L_hex":"40400000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10111"}]},{"E_block":[[{"E_lit":[{"L_hex":"40800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11000"}]},{"E_block":[[{"E_lit":[{"L_hex":"41000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11001"}]},{"E_block":[[{"E_lit":[{"L_hex":"41800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11010"}]},{"E_block":[[{"E_lit":[{"L_hex":"43000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11011"}]},{"E_block":[[{"E_lit":[{"L_hex":"43800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11100"}]},{"E_block":[[{"E_lit":[{"L_hex":"47000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11101"}]},{"E_block":[[{"E_lit":[{"L_hex":"47800000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11110"}]},{"E_block":[[{"E_lit":[{"L_hex":"7F800000"}]}]]}]},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_wild":[]}]},{"E_block":[[{"E_app":[{"Id":"canonical_NaN_S"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"bits"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLI_D"},[{"P_tuple":[[{"P_id":[{"Id":"constantidx"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"bits"}]}]},{"E_match":[{"E_id":[{"Id":"constantidx"}]},[{"Pat_exp":[{"P_lit":[{"L_bin":"00000"}]},{"E_block":[[{"E_lit":[{"L_hex":"BFF0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00001"}]},{"E_block":[[{"E_lit":[{"L_hex":"0010000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00010"}]},{"E_block":[[{"E_lit":[{"L_hex":"3EF0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00011"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F00000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00100"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F70000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00101"}]},{"E_block":[[{"E_lit":[{"L_hex":"3F80000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00110"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FB0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"00111"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FC0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01000"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FD0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01001"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FD4000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01010"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FD8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01011"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FDC000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01100"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FE0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01101"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FE4000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01110"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FE8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"01111"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FEC000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10000"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FF0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10001"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FF4000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10010"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FF8000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10011"}]},{"E_block":[[{"E_lit":[{"L_hex":"3FFC000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10100"}]},{"E_block":[[{"E_lit":[{"L_hex":"4000000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10101"}]},{"E_block":[[{"E_lit":[{"L_hex":"4004000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10110"}]},{"E_block":[[{"E_lit":[{"L_hex":"4008000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"10111"}]},{"E_block":[[{"E_lit":[{"L_hex":"4010000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11000"}]},{"E_block":[[{"E_lit":[{"L_hex":"4020000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11001"}]},{"E_block":[[{"E_lit":[{"L_hex":"4030000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11010"}]},{"E_block":[[{"E_lit":[{"L_hex":"4060000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11011"}]},{"E_block":[[{"E_lit":[{"L_hex":"4070000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11100"}]},{"E_block":[[{"E_lit":[{"L_hex":"40E0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11101"}]},{"E_block":[[{"E_lit":[{"L_hex":"40F0000000000000"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_bin":"11110"}]},{"E_block":[[{"E_lit":[{"L_hex":"7FF0000000000000"}]}]]}]},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_wild":[]}]},{"E_block":[[{"E_app":[{"Id":"canonical_NaN_D"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"bits"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMINM_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs1_lt_rs2"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_H"},[{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_H"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]}]]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_if":[{"E_id":[{"Id":"rs1_lt_rs2"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMAXM_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs2_lt_rs1"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_H"},[{"E_id":[{"Id":"rs2_val_H"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_H"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_NaN_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_H"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]}]]},{"E_id":[{"Id":"rs2_val_H"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_H"},[{"E_id":[{"Id":"rs2_val_H"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_H"},[{"E_id":[{"Id":"rs1_val_H"}]}]]}]]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_if":[{"E_id":[{"Id":"rs2_lt_rs1"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMINM_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs1_lt_rs2"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_S"},[{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_S"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_S"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]}]]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_if":[{"E_id":[{"Id":"rs1_lt_rs2"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMAXM_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs2_lt_rs1"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_S"},[{"E_id":[{"Id":"rs2_val_S"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_S"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_NaN_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_S"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]}]]},{"E_id":[{"Id":"rs2_val_S"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_S"},[{"E_id":[{"Id":"rs2_val_S"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_S"},[{"E_id":[{"Id":"rs1_val_S"}]}]]}]]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_if":[{"E_id":[{"Id":"rs2_lt_rs1"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMINM_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs1_lt_rs2"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_D"},[{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_D"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_if":[{"E_id":[{"Id":"rs1_lt_rs2"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMAXM_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"is_quiet"}]},{"E_lit":["L_true"]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"rs2_lt_rs1"}]},{"P_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"fle_D"},[{"E_id":[{"Id":"rs2_val_D"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"is_quiet"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_NaN_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_app":[{"Id":"canonical_NaN_D"},[{"E_lit":["L_unit"]}]]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]}]]},{"E_id":[{"Id":"rs2_val_D"}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"f_is_neg_zero_D"},[{"E_id":[{"Id":"rs2_val_D"}]}]]},{"E_app":[{"Id":"f_is_pos_zero_D"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_if":[{"E_id":[{"Id":"rs2_lt_rs1"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]}]}]}]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FROUND_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_f16roundToInt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FROUNDNX_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_H"}]}]]},{"E_app":[{"Id":"riscv_f16roundToInt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_H"}]},{"E_lit":["L_true"]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_H"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_H"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FROUND_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_f32roundToInt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FROUNDNX_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"riscv_f32roundToInt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]},{"E_lit":["L_true"]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FROUND_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_f64roundToInt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_lit":["L_false"]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FROUNDNX_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_D"}]}]]},{"E_app":[{"Id":"riscv_f64roundToInt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_D"}]},{"E_lit":["L_true"]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMVH_X_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"rd_val_X"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_X"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FMVP_D_X"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_X"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_X"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rd_val_D"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"rs2_val_X"}]},{"E_id":[{"Id":"rs1_val_X"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_D"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLEQ_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f16Le_quiet"},[{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLTQ_H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_H"}]},{"E_app":[{"Id":"rF_H"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f16Lt_quiet"},[{"E_id":[{"Id":"rs1_val_H"}]},{"E_id":[{"Id":"rs2_val_H"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLEQ_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f32Le_quiet"},[{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLTQ_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_S"}]},{"E_app":[{"Id":"rF_S"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f32Lt_quiet"},[{"E_id":[{"Id":"rs1_val_S"}]},{"E_id":[{"Id":"rs2_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLEQ_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f64Le_quiet"},[{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FLTQ_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_id":[{"Id":"bool"}]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]}]},{"E_app":[{"Id":"riscv_f64Lt_quiet"},[{"E_id":[{"Id":"rs1_val_D"}]},{"E_id":[{"Id":"rs2_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bool_to_bits"},[{"E_id":[{"Id":"rd_val"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FCVTMOD_W_D"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_D"}]},{"E_app":[{"Id":"rF_D"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val"}]}]]},{"E_app":[{"Id":"fcvtmod_helper"},[{"E_id":[{"Id":"rs1_val_D"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"rd_val"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSETVLI"},[{"P_tuple":[[{"P_id":[{"Id":"ma"}]},{"P_id":[{"Id":"ta"}]},{"P_id":[{"Id":"sew"}]},{"P_id":[{"Id":"lmul"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"avl"}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":64}]}]]},{"E_id":[{"Id":"vl"}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"requires_fixed_vlmax"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute_vsetvl_type"},[{"E_id":[{"Id":"ma"}]},{"E_id":[{"Id":"ta"}]},{"E_id":[{"Id":"sew"}]},{"E_id":[{"Id":"lmul"}]},{"E_id":[{"Id":"avl"}]},{"E_id":[{"Id":"requires_fixed_vlmax"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSETVL"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vt"}]},{"E_app":[{"Id":"Mk_Vtype"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Vtype_vill"},[{"E_id":[{"Id":"vt"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"_get_Vtype_reserved"},[{"E_id":[{"Id":"vt"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":64}]},{"E_lit":[{"L_num":9}]}]]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"handle_illegal_vtype"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"avl"}]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_if":[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"ones"},[{"E_lit":[{"L_num":64}]}]]},{"E_id":[{"Id":"vl"}]}]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"requires_fixed_vlmax"}]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute_vsetvl_type"},[{"E_app":[{"Id":"_get_Vtype_vma"},[{"E_id":[{"Id":"vt"}]}]]},{"E_app":[{"Id":"_get_Vtype_vta"},[{"E_id":[{"Id":"vt"}]}]]},{"E_app":[{"Id":"_get_Vtype_vsew"},[{"E_id":[{"Id":"vt"}]}]]},{"E_app":[{"Id":"_get_Vtype_vlmul"},[{"E_id":[{"Id":"vt"}]}]]},{"E_id":[{"Id":"avl"}]},{"E_id":[{"Id":"requires_fixed_vlmax"}]},{"E_id":[{"Id":"rd"}]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSETIVLI"},[{"P_tuple":[[{"P_id":[{"Id":"ma"}]},{"P_id":[{"Id":"ta"}]},{"P_id":[{"Id":"sew"}]},{"P_id":[{"Id":"lmul"}]},{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"avl"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"execute_vsetvl_type"},[{"E_id":[{"Id":"ma"}]},{"E_id":[{"Id":"ta"}]},{"E_id":[{"Id":"sew"}]},{"E_id":[{"Id":"lmul"}]},{"E_id":[{"Id":"avl"}]},{"E_lit":["L_false"]},{"E_id":[{"Id":"rd"}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VV_VADD"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSUB"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VAND"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VOR"}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VXOR"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSADDU"}]},{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSADD"}]},{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSUBU"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSUB"}]},{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSMUL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_mul"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_mul"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_mul"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSLL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VSSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMINU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"min_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMIN"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"min_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMAXU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"max_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VMAX"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"max_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VRGATHER"}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:121.71-121.72"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:123.48-123.49"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"idx"}]},{"E_id":[{"Id":"VLMAX"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"idx"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VV_VRGATHEREI16"}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}]}]]},{"P_id":[{"Id":"vs1_new"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":16}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"LMUL_pow"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_new"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:131.71-131.72"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:133.48-133.49"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"idx"}]},{"E_id":[{"Id":"VLMAX"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"idx"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"NVSTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:196.24-196.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"NVS_VNSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NVS_VNSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'o"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"arith_shifted"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"arith_shifted"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"NVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:267.24-267.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"NV_VNCLIPU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"result_wide"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NV_VNCLIP"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[4]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"result_wide"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MASKTYPEV"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_masked"},[{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]}]]}]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MOVETYPEV"},[{"P_tuple":[[{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VXTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VX_VADD"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSUB"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VRSUB"}]},{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VAND"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VOR"}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VXOR"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSADDU"}]},{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSADD"}]},{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSUBU"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSUB"}]},{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSMUL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_mul"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_mul"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_mul"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSLL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMINU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"min_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMIN"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"min_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMAXU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"max_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VMAX"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"max_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"NXSTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:565.24-565.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"NXS_VNSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NXS_VNSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'o"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"arith_shifted"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"arith_shifted"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"NXTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:636.24-636.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"NX_VNCLIPU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"result_wide"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NX_VNCLIP"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[4]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"result_wide"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VXSG"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VX_VSLIDEUP"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VSLIDEDOWN"}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:728.69-728.70"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:730.58-730.59"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"rs1_val"}]}]]},{"E_id":[{"Id":"VLMAX"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VX_VRGATHER"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:735.69-735.70"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:737.58-737.59"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"rs1_val"}]},{"E_id":[{"Id":"VLMAX"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MASKTYPEX"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_masked"},[{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]}]]}]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MOVETYPEX"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_id":[{"Id":"rs1_val"}]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VITYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"simm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VI_VADD"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VRSUB"}]},{"E_app":[{"Id":"sub_vec"},[{"E_id":[{"Id":"imm_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VAND"}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VOR"}]},{"E_app":[{"Id":"or_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VXOR"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSADDU"}]},{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSADD"}]},{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSLL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"NISTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:976.24-976.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"NIS_VNSRL"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"imm_val"}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NIS_VNSRA"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"imm_val"}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'o"}]},{"Nexp_constant":[2]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"arith_shifted"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"arith_shifted"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"NITYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1047.24-1047.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"shift_amount"}]},{"E_app":[{"Id":"get_shift_amount"},[{"E_id":[{"Id":"imm_val"}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"NI_VNCLIPU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"unsigned_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"result_wide"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"NI_VNCLIP"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_times":[{"Nexp_var":[{"Var":"'m"}]},{"Nexp_constant":[4]}]}]}]]},{"P_id":[{"Id":"v_double"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_wide"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"v_double"}]},{"E_id":[{"Id":"shift_amount"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"signed_saturation"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"result_wide"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VISG"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"simm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"zero_extend"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"simm"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VI_VSLIDEUP"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"imm_val"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"imm_val"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VSLIDEDOWN"}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1139.69-1139.70"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1141.58-1141.59"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"imm_val"}]}]]},{"E_id":[{"Id":"VLMAX"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"imm_val"}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VI_VRGATHER"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1146.69-1146.70"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_id":[{"Id":"SEW_pow"}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"VLMAX"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1148.58-1148.59"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"imm_val"}]},{"E_id":[{"Id":"VLMAX"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"imm_val"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MASKTYPEI"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"simm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_masked"},[{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_id":[{"Id":"imm_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]}]]}]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MOVETYPEI"},[{"P_tuple":[[{"P_id":[{"Id":"vd"}]},{"P_id":[{"Id":"simm"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_id":[{"Id":"imm_val"}]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VMVRTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"nreg"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL"}]},{"E_id":[{"Id":"nreg"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_pow"}]},{"E_app":[{"Id":"log2"},[{"E_id":[{"Id":"EMUL"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVV_VAADDU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_add"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VAADD"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_add"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VASUBU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_sub"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VASUB"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_sub"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMUL"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMULH"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMULHU"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMULHSU"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VDIVU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"q"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"quot_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"q"}]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VDIV"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_max"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_min"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"q"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"quot_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"q'"}]}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"q"}]},{"E_id":[{"Id":"elem_max"}]}]]},{"E_id":[{"Id":"elem_min"}]},{"E_id":[{"Id":"q"}]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"q'"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREMU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"rem_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"r"}]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREM"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"rem_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"r"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MVVMATYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVV_VMACC"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VNMSAC"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VMADD"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VNMSUB"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1533.24-1533.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"WVV_VADD"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VSUB"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VADDU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VSUBU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VWMUL"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VWMULU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVV_VWMULSU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1607.24-1607.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"WV_VADD"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WV_VSUB"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WV_VADDU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WV_VSUBU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WMVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1676.24-1676.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"WMVV_VWMACC"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVV_VWMACCU"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVV_VWMACCSU"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VEXTTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'n"}]}],{"NC_set":[{"Nexp_var":[{"Var":"'n"}]},[1,2,3]]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]},{"P_id":[{"Id":"SEW_frac_pow"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VEXT2_ZVF2"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT2_SVF2"}]},{"E_lit":[{"L_num":1}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT4_ZVF4"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT4_SVF4"}]},{"E_lit":[{"L_num":2}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT8_ZVF8"}]},{"E_lit":[{"L_num":3}]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT8_SVF8"}]},{"E_lit":[{"L_num":3}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_div"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW_frac_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_div"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW_frac_pow"}]}]]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_div"}]},{"E_id":[{"Id":"LMUL_pow_div"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_div"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW_div"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1753.21-1753.22"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_div"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_div"}]},{"E_id":[{"Id":"LMUL_pow_div"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VEXT2_ZVF2"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT2_SVF2"}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT4_ZVF4"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT4_SVF4"}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT8_ZVF8"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VEXT8_SVF8"}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VMVXS"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1812.21-1812.22"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MVVCOMPRESS"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"start_element"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"nat"}]},{"Id":"vd_idx"}]},{"E_lit":[{"L_num":0}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"p"}]},{"TP_var":[{"Var":"'p"}]}]},{"E_id":[{"Id":"vd_idx"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"p"}]}]]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1863.22-1863.23"}]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"p"}]}]]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"vd_idx"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"vd_idx"}]},{"E_lit":[{"L_num":1}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"vd_idx"}]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"p"}]},{"TP_var":[{"Var":"'p"}]}]},{"E_id":[{"Id":"vd_idx"}]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"p"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MVXTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVX_VAADDU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_add"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VAADD"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_add"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_add"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VASUBU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_sub"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VASUB"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"result_sub"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rounding_incr"}]},{"E_app":[{"Id":"get_fixed_rounding_incr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"result_sub"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"rounding_incr"}]}]]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VSLIDE1UP"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VSLIDE1DOWN"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"last_elem"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"last_elem"}]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:1963.57-1963.58"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"last_elem"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_id":[{"Id":"rs1_val"}]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMUL"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMULH"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMULHU"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMULHSU"}]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_id":[{"Id":"SEW"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VDIVU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"q"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"quot_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"q"}]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VDIV"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_max"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"elem_min"}]}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"q"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"quot_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"q'"}]}]},{"E_if":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"q"}]},{"E_id":[{"Id":"elem_max"}]}]]},{"E_id":[{"Id":"elem_min"}]},{"E_id":[{"Id":"q"}]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"q'"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VREMU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"rem_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"r"}]}]]}]]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VREM"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"divisor"}]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"r"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"divisor"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"dividend"}]},{"E_app":[{"Id":"rem_round_zero"},[{"E_id":[{"Id":"dividend"}]},{"E_id":[{"Id":"divisor"}]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"r"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MVXMATYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVX_VMACC"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VNMSAC"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VMADD"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVX_VNMSUB"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"get_slice_int"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WVXTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:2119.24-2119.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"WVX_VADD"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VSUB"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VADDU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VSUBU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VWMUL"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VWMULU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WVX_VWMULSU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WXTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:2192.24-2192.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"WX_VADD"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WX_VSUB"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WX_VADDU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WX_VSUBU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WMVXTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:2261.24-2261.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACCU"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACC"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACCUS"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"WMVX_VWMACCSU"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VMVSX"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_arith_insts.sail:2317.21-2317.22"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"rs1_val"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:45.17-45.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VADD"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSUB"}]},{"E_app":[{"Id":"fp_sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMIN"}]},{"E_app":[{"Id":"fp_min"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMAX"}]},{"E_app":[{"Id":"fp_max"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMUL"}]},{"E_app":[{"Id":"fp_mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VDIV"}]},{"E_app":[{"Id":"fp_div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSGNJ"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSGNJN"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"xor_vec"},[{"E_lit":[{"L_bin":"1"}]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VSGNJX"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"xor_vec"},[{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FVVMATYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:123.17-123.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VMACC"}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMACC"}]},{"E_app":[{"Id":"fp_nmulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMSAC"}]},{"E_app":[{"Id":"fp_mulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMSAC"}]},{"E_app":[{"Id":"fp_nmuladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMADD"}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMADD"}]},{"E_app":[{"Id":"fp_nmulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VMSUB"}]},{"E_app":[{"Id":"fp_mulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VNMSUB"}]},{"E_app":[{"Id":"fp_nmuladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FWVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:198.36-198.37"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVV_VADD"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VSUB"}]},{"E_app":[{"Id":"fp_sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VMUL"}]},{"E_app":[{"Id":"fp_mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FWVVMATYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:266.36-266.37"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVV_VMACC"}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VNMACC"}]},{"E_app":[{"Id":"fp_nmulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VMSAC"}]},{"E_app":[{"Id":"fp_mulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVV_VNMSAC"}]},{"E_app":[{"Id":"fp_nmuladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FWVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:332.36-332.37"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWV_VADD"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_VSUB"}]},{"E_app":[{"Id":"fp_sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFUNARY0"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vfunary0"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:394.17-394.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"vfunary0"}]},[{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_XU_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToUi16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32ToUi32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToUi64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_X_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToI16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32ToI32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToI64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_F_XU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_ui32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_ui32ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_ui64ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_F_X"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_i32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_i32ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_i64ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_RTZ_XU_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToUi16"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32ToUi32"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToUi64"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FV_CVT_RTZ_X_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToI16"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32ToI32"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToI64"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFWUNARY0"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vfwunary0"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:515.35-515.36"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"vfwunary0"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_XU_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToUi32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f32ToUi64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_X_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToI32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f32ToI64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_F_XU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_app":[{"Id":"riscv_ui32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_ui32ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_ui32ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_F_X"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_app":[{"Id":"riscv_i32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_i32ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":32}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_i32ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_F_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f32ToF64"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_RTZ_XU_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToUi32"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f32ToUi64"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWV_CVT_RTZ_X_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16ToI32"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f32ToI64"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFNUNARY0"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vfnunary0"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:648.18-648.19"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"vfnunary0"}]},[{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_XU_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_app":[{"Id":"riscv_f16ToUi8"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f32ToUi16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToUi32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_X_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_app":[{"Id":"riscv_f16ToI8"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f32ToI16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToI32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_F_XU"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_ui32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_ui64ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_F_X"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_i32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_i64ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_F_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f32ToF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToF32"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_ROD_F_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f32ToF16"},[{"E_lit":[{"L_bin":"110"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToF32"},[{"E_lit":[{"L_bin":"110"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_RTZ_XU_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_app":[{"Id":"riscv_f16ToUi8"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f32ToUi16"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToUi32"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FNV_CVT_RTZ_X_F"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":8}]},{"E_app":[{"Id":"riscv_f16ToI8"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f32ToI16"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64ToI32"},[{"E_lit":[{"L_bin":"001"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFUNARY1"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vfunary1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:783.17-783.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"vfunary1"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVV_VSQRT"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Sqrt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Sqrt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Sqrt"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VRSQRT7"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Rsqrte7"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Rsqrte7"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Rsqrte7"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VREC7"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_id":[{"Id":"bits_fflags"}]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]}]},{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"riscv_f16Recip7"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"riscv_f32Recip7"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"riscv_f64Recip7"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVV_VCLASS"}]},{"E_app":[{"Id":"fp_class"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFMVFS"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_vd_unmasked"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"flen"}]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:862.32-862.33"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},[{"Pat_exp":[{"P_lit":[{"L_num":16}]},{"E_app":[{"Id":"wF_H"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"wF_D"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]]}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FVFTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:911.17-911.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VF_VADD"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSUB"}]},{"E_app":[{"Id":"fp_sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VRSUB"}]},{"E_app":[{"Id":"fp_sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMIN"}]},{"E_app":[{"Id":"fp_min"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMAX"}]},{"E_app":[{"Id":"fp_max"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMUL"}]},{"E_app":[{"Id":"fp_mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VDIV"}]},{"E_app":[{"Id":"fp_div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VRDIV"}]},{"E_app":[{"Id":"fp_div"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSGNJ"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSGNJN"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"xor_vec"},[{"E_lit":[{"L_bin":"1"}]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSGNJX"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"xor_vec"},[{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_vector":[[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSLIDE1UP"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VSLIDE1DOWN"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"last_elem"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"last_elem"}]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:947.57-947.58"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"last_elem"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_id":[{"Id":"rs1_val"}]}]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FVFMATYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:1004.17-1004.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VF_VMACC"}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMACC"}]},{"E_app":[{"Id":"fp_nmulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMSAC"}]},{"E_app":[{"Id":"fp_mulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMSAC"}]},{"E_app":[{"Id":"fp_nmuladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMADD"}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMADD"}]},{"E_app":[{"Id":"fp_nmulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VMSUB"}]},{"E_app":[{"Id":"fp_mulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VF_VNMSUB"}]},{"E_app":[{"Id":"fp_nmuladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FWVFTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:1078.36-1078.37"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVF_VADD"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VSUB"}]},{"E_app":[{"Id":"fp_sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VMUL"}]},{"E_app":[{"Id":"fp_mul"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FWVFMATYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:1145.36-1145.37"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWVF_VMACC"}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VNMACC"}]},{"E_app":[{"Id":"fp_nmulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VMSAC"}]},{"E_app":[{"Id":"fp_mulsub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWVF_VNMSAC"}]},{"E_app":[{"Id":"fp_nmuladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FWFTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:1210.36-1210.37"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FWF_VADD"}]},{"E_app":[{"Id":"fp_add"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FWF_VSUB"}]},{"E_app":[{"Id":"fp_sub"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"fp_widen"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFMERGE"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"start_element"}]}]},{"E_match":[{"E_app":[{"Id":"get_start_element"},[{"E_lit":["L_unit"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"end_element"}]},{"E_app":[{"Id":"get_end_element"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"real_num_elem"}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"sub_atom"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_vd_masked"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:1270.17-1270.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Id":"result"}]},{"E_app":[{"Id":"vector_init"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"start_element"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"end_element"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"real_num_elem"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]}]]}]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFMV"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_vd_unmasked"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:1319.17-1319.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_id":[{"Id":"rs1_val"}]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFMVSF"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_vd_unmasked"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_insts.sail:1358.32-1358.33"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"num_elem"}]}]]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"rs1_val"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"agtype"}]},{"P_id":[{"Id":"tail_ag"}]}]},{"E_app":[{"Id":"get_vtype_vta"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"tail_ag"}]},[{"Pat_exp":[{"P_id":[{"Id":"UNDISTURBED"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"AGNOSTIC"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VLSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:85.21-85.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_load"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vlseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"num_elem"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VLSEGFFTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:162.21-162.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_load"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vlsegff"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"num_elem"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vs3"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:219.21-219.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_store"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vsseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vs3"}]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"num_elem"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VLSSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:280.21-280.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_load"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vlsseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"num_elem"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSSSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vs3"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_id":[{"Id":"SEW_pow"}]}]]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:338.21-338.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_store"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"EEW"}]},{"E_id":[{"Id":"EMUL_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vssseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vs3"}]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"num_elem"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VLUXSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_bytes"}]},{"E_app":[{"Id":"get_sew_bytes"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_index_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_id":[{"Id":"EEW_data_pow"}]}]]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:400.21-400.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_indexed_load"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"nf"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_index_pow"}]}]]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vlxseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"EEW_index_bytes"}]},{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VLOXSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_bytes"}]},{"E_app":[{"Id":"get_sew_bytes"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_index_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_id":[{"Id":"EEW_data_pow"}]}]]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:427.21-427.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_indexed_load"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"nf"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_index_pow"}]}]]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vlxseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"EEW_index_bytes"}]},{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":3}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSUXSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vs3"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_bytes"}]},{"E_app":[{"Id":"get_sew_bytes"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_index_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_id":[{"Id":"EEW_data_pow"}]}]]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:487.21-487.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_indexed_store"},[{"E_id":[{"Id":"nf"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_index_pow"}]}]]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vsxseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vs3"}]},{"E_id":[{"Id":"EEW_index_bytes"}]},{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSOXSEGTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vs3"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_index_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_data_bytes"}]},{"E_app":[{"Id":"get_sew_bytes"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_index_pow"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_index_pow"}]},{"E_id":[{"Id":"EEW_data_pow"}]}]]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_lit":[{"L_num":8}]}]]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:514.21-514.22"}]}]},{"E_if":[{"E_app":[{"Id":"illegal_indexed_store"},[{"E_id":[{"Id":"nf"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_index_pow"}]}]]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"process_vsxseg"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vs3"}]},{"E_id":[{"Id":"EEW_index_bytes"}]},{"E_id":[{"Id":"EEW_data_bytes"}]},{"E_id":[{"Id":"EMUL_index_pow"}]},{"E_id":[{"Id":"EMUL_data_pow"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":3}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VLRETYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"width"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW_pow"}]},{"E_app":[{"Id":"vlewidth_pow_forwards"},[{"E_id":[{"Id":"width"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"load_width_bytes"}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"EEW_pow"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"EEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_per_reg"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"elem_per_reg"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:577.26-577.27"}]}]},{"E_app":[{"Id":"process_vlre"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSRETYPE"},[{"P_tuple":[[{"P_id":[{"Id":"nf"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vs3"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"load_width_bytes"}]},{"E_lit":[{"L_num":1}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_lit":[{"L_num":8}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"elem_per_reg"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vlen"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"elem_per_reg"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:641.26-641.27"}]}]},{"E_app":[{"Id":"process_vsre"},[{"E_id":[{"Id":"nf"}]},{"E_id":[{"Id":"load_width_bytes"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"vs3"}]},{"E_id":[{"Id":"elem_per_reg"}]}]]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VMTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd_or_vs3"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EEW"}]},{"E_lit":[{"L_num":8}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"EMUL_pow"}]},{"E_lit":[{"L_num":0}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vl_val"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"evl"}]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"rem_positive_round_zero"},[{"E_id":[{"Id":"vl_val"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vl_val"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"vl_val"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":1}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"EMUL_pow"}]},{"E_id":[{"Id":"EEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"evl"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_mem_insts.sail:705.17-705.18"}]}]},{"E_app":[{"Id":"process_vm"},[{"E_id":[{"Id":"vd_or_vs3"}]},{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"evl"}]},{"E_id":[{"Id":"op"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"MMTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"MM_VMAND"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vs1_val"}]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMNAND"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vs1_val"}]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMANDN"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"vs1_val"}]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMXOR"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vs1_val"}]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMOR"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vs1_val"}]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMNOR"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vs1_val"}]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMORN"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"vs1_val"}]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MM_VMXNOR"}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vs1_val"}]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCPOP_M"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_wild":[]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"nat"}]},{"Id":"count"}]},{"E_lit":[{"L_num":0}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"vs2_val"}]}]]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"count"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"count"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"count"}]}]]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFIRST_M"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_wild":[]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"int"}]},{"Id":"index"}]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"index"}]},{"E_app":[{"Id":"negate_atom"},[{"E_lit":[{"L_num":1}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"vs2_val"}]}]]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"index"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_unit"]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"xlen"}]},{"E_id":[{"Id":"index"}]}]]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VMSBF_M"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vs2"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"found_elem"}]},{"E_lit":["L_false"]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"found_elem"}]},{"E_lit":["L_true"]}]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"found_elem"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VMSIF_M"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vs2"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"found_elem"}]},{"E_lit":["L_false"]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"found_elem"}]}]]}]]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"found_elem"}]},{"E_lit":["L_true"]}]},{"E_lit":["L_unit"]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VMSOF_M"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vlen"}]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vs2"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"found_elem"}]},{"E_lit":["L_false"]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"found_elem"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_one"]}]},{"E_assign":[{"LE_id":[{"Id":"found_elem"}]},{"E_lit":["L_true"]}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_lit":["L_zero"]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VIOTA_M"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"assert_vstart"},[{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vs2"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"int"}]},{"Id":"sum"}]},{"E_lit":[{"L_num":0}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"sum"}]}]]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"sum"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"sum"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_lit":["L_unit"]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VID_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_normal"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VVMTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVM_VMADC"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVM_VMSBC"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VVMCTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVMC_VMADC"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVMC_VMSBC"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VVMSTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_masked"},[{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vec_trues"}]}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vec_trues"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVMS_VADC"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVMS_VSBC"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VVCMPTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSEQ"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSNE"}]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLTU"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLT"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLEU"}]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VVCMP_VMSLE"}]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VXMTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXM_VMADC"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXM_VMSBC"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VXMCTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXMC_VMADC"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXMC_VMSBC"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VXMSTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_masked"},[{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vec_trues"}]}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vec_trues"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXMS_VADC"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXMS_VSBC"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VXCMPTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSEQ"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSNE"}]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLTU"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLT"}]},{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLEU"}]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSLE"}]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSGTU"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VXCMP_VMSGT"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"rs1_val"}]}]]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VIMTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"simm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VIM_VMADC"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"imm_val"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VIMCTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"simm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VIMC_VMADC"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"imm_val"}]}]]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VIMSTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"simm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_masked"},[{"E_id":[{"Id":"vd"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vec_trues"}]}]},{"E_app":[{"Id":"ones"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask_carry"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vec_trues"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VIMS_VADC"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"imm_val"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"vm_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VICMPTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"simm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_vd_unmasked"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"imm_val"}]}]},{"E_app":[{"Id":"sign_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"simm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSEQ"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSNE"}]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"imm_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSLEU"}]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"imm_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSLE"}]},{"E_app":[{"Id":"lteq_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"imm_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSGTU"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"imm_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VICMP_VMSGT"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"imm_val"}]}]]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FVVMTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_vd_unmasked"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_vm_insts.sail:36.17-36.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFEQ"}]},{"E_app":[{"Id":"fp_eq"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFNE"}]},{"E_app":[{"Id":"not_bool"},[{"E_app":[{"Id":"fp_eq"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFLE"}]},{"E_app":[{"Id":"fp_le"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"FVVM_VMFLT"}]},{"E_app":[{"Id":"fp_lt"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FVFMTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_fp_vd_unmasked"},[{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_fp_vm_insts.sail:103.17-103.18"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar_fp"},[{"E_id":[{"Id":"rs1"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_bin":"0"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result_cmp"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"res"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFEQ"}]},{"E_app":[{"Id":"fp_eq"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFNE"}]},{"E_app":[{"Id":"not_bool"},[{"E_app":[{"Id":"fp_eq"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFLE"}]},{"E_app":[{"Id":"fp_le"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFLT"}]},{"E_app":[{"Id":"fp_lt"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFGE"}]},{"E_app":[{"Id":"fp_ge"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VFM_VMFGT"}]},{"E_app":[{"Id":"fp_gt"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bool_to_bit"},[{"E_id":[{"Id":"res"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"RIVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_widening_reduction"},[{"E_id":[{"Id":"SEW_widen"}]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/V/vext_red_insts.sail:33.24-33.25"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem_vs"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem_vd"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW_widen"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem_vs"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"d"}]},{"TP_var":[{"Var":"'d"}]}]},{"E_id":[{"Id":"num_elem_vd"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'d"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vd"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_match":[{"E_app":[{"Id":"init_masked_source"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"Id":"sum"}]},{"E_app":[{"Id":"read_single_element"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs1"}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"elem"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"IVV_VWREDSUMU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"IVV_VWREDSUM"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]]}]}]]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"sum"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"sum"}]},{"E_id":[{"Id":"elem"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_single_element"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"sum"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"RMVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem_vs"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem_vd"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"illegal_reduction"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_return":[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem_vs"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"d"}]},{"TP_var":[{"Var":"'d"}]}]},{"E_id":[{"Id":"num_elem_vd"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'d"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"mask"}]}]},{"E_match":[{"E_app":[{"Id":"init_masked_source"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Id":"sum"}]},{"E_app":[{"Id":"read_single_element"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vs1"}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem_vs"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"sum"}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDSUM"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDAND"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDOR"}]},{"E_app":[{"Id":"or_vec"},[{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDXOR"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"sum"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMIN"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"min_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sum"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMINU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"min_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"sum"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMAX"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"max_int"},[{"E_app":[{"Id":"signed"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"signed"},[{"E_id":[{"Id":"sum"}]}]]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"MVV_VREDMAXU"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"max_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"sum"}]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_single_element"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"sum"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"RFVVTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem_vs"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"FVV_VFWREDOSUM"}]}]]},{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"FVV_VFWREDUSUM"}]}]]}]]},{"E_app":[{"Id":"process_rfvv_widening_reduction"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]},{"E_app":[{"Id":"process_rfvv_single"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"num_elem_vs"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA256SIG0"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"inb"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":3}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA256SIG1"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"inb"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":17}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":10}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA256SUM0"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"inb"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":13}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":22}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA256SUM1"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"inb"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":11}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"inb"}]},{"E_lit":[{"L_num":25}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES32ESMI"},[{"P_tuple":[[{"P_id":[{"Id":"bs"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"shamt"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"bs"}]},{"E_lit":[{"L_bin":"000"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"si"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"so"}]}]},{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_id":[{"Id":"si"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"mixed"}]}]},{"E_app":[{"Id":"aes_mixcolumn_byte_fwd"},[{"E_id":[{"Id":"so"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"mixed"}]},{"E_id":[{"Id":"shamt"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES32ESI"},[{"P_tuple":[[{"P_id":[{"Id":"bs"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"shamt"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"bs"}]},{"E_lit":[{"L_bin":"000"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"si"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"so"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_hex":"000000"}]},{"E_app":[{"Id":"aes_sbox_fwd"},[{"E_id":[{"Id":"si"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"so"}]},{"E_id":[{"Id":"shamt"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES32DSMI"},[{"P_tuple":[[{"P_id":[{"Id":"bs"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"shamt"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"bs"}]},{"E_lit":[{"L_bin":"000"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"si"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"so"}]}]},{"E_app":[{"Id":"aes_sbox_inv"},[{"E_id":[{"Id":"si"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"mixed"}]}]},{"E_app":[{"Id":"aes_mixcolumn_byte_inv"},[{"E_id":[{"Id":"so"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"mixed"}]},{"E_id":[{"Id":"shamt"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES32DSI"},[{"P_tuple":[[{"P_id":[{"Id":"bs"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"shamt"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"bs"}]},{"E_lit":[{"L_bin":"000"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"si"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"so"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_hex":"000000"}]},{"E_app":[{"Id":"aes_sbox_inv"},[{"E_id":[{"Id":"si"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"so"}]},{"E_id":[{"Id":"shamt"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SIG0H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":24}]}]]}]]}]]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SIG0L"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":25}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":24}]}]]}]]}]]}]]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SIG1H"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":29}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":13}]}]]}]]}]]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SIG1L"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":29}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":26}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":13}]}]]}]]}]]}]]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SUM0R"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":25}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":30}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":28}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":4}]}]]}]]}]]}]]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SUM1R"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":23}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":14}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftr"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":9}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":14}]}]]}]]}]]}]]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES64KS1I"},[{"P_tuple":[[{"P_id":[{"Id":"rnum"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:333.19-333.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"prev"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"subwords"}]}]},{"E_app":[{"Id":"aes_subword_fwd"},[{"E_id":[{"Id":"prev"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_if":[{"E_app":[{"Id":"eq_bits"},[{"E_id":[{"Id":"rnum"}]},{"E_lit":[{"L_hex":"A"}]}]]},{"E_id":[{"Id":"subwords"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"subwords"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"aes_decode_rcon"},[{"E_id":[{"Id":"rnum"}]}]]}]]}]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES64KS2"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:343.19-343.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"w0"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"w1"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"w1"}]},{"E_id":[{"Id":"w0"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES64IM"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:351.19-351.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"w0"}]}]},{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"w1"}]}]},{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"w1"}]},{"E_id":[{"Id":"w0"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES64ESM"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:359.19-359.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"sr"}]}]},{"E_app":[{"Id":"aes_rv64_shiftrows_fwd"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"wd"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sr"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"sb"}]}]},{"E_app":[{"Id":"aes_apply_fwd_sbox_to_each_byte"},[{"E_id":[{"Id":"wd"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_mixcolumn_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sb"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_app":[{"Id":"aes_mixcolumn_fwd"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sb"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES64ES"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:368.19-368.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"sr"}]}]},{"E_app":[{"Id":"aes_rv64_shiftrows_fwd"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"wd"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sr"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"aes_apply_fwd_sbox_to_each_byte"},[{"E_id":[{"Id":"wd"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES64DSM"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:376.19-376.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"sr"}]}]},{"E_app":[{"Id":"aes_rv64_shiftrows_inv"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"wd"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sr"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"sb"}]}]},{"E_app":[{"Id":"aes_apply_inv_sbox_to_each_byte"},[{"E_id":[{"Id":"wd"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sb"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_app":[{"Id":"aes_mixcolumn_inv"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sb"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"AES64DS"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:385.19-385.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"sr"}]}]},{"E_app":[{"Id":"aes_rv64_shiftrows_inv"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"wd"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"sr"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"aes_apply_inv_sbox_to_each_byte"},[{"E_id":[{"Id":"wd"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SIG0"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:435.19-435.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"input"}]}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":7}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SIG1"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:443.19-443.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"input"}]}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":61}]}]]},{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":6}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SUM0"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:451.19-451.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"input"}]}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":28}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":34}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":39}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SHA512SUM1"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zkn_insts.sail:459.19-459.20"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"input"}]}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":14}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"rotater"},[{"E_id":[{"Id":"input"}]},{"E_lit":[{"L_num":41}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SM3P0"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"r1"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"r1"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"r1"}]},{"E_lit":[{"L_num":9}]}]]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"r1"}]},{"E_lit":[{"L_num":17}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SM3P1"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"r1"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"r1"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"r1"}]},{"E_lit":[{"L_num":15}]}]]},{"E_app":[{"Id":"rotatel"},[{"E_id":[{"Id":"r1"}]},{"E_lit":[{"L_num":23}]}]]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SM4ED"},[{"P_tuple":[[{"P_id":[{"Id":"bs"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"shamt"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"bs"}]},{"E_lit":[{"L_bin":"000"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"sb_in"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_hex":"000000"}]},{"E_app":[{"Id":"sm4_sbox"},[{"E_id":[{"Id":"sb_in"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"y"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"x"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_hex":"0000003F"}]}]]},{"E_lit":[{"L_num":26}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_hex":"000000C0"}]}]]},{"E_lit":[{"L_num":10}]}]]}]]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"z"}]}]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"y"}]},{"E_id":[{"Id":"shamt"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"z"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SM4KS"},[{"P_tuple":[[{"P_id":[{"Id":"bs"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"shamt"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"bs"}]},{"E_lit":[{"L_bin":"000"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]},{"P_id":[{"Id":"sb_in"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"shift_bits_right"},[{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"shamt"}]}]]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"x"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_hex":"000000"}]},{"E_app":[{"Id":"sm4_sbox"},[{"E_id":[{"Id":"sb_in"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"y"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"x"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_hex":"00000007"}]}]]},{"E_lit":[{"L_num":29}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_hex":"000000FE"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_hex":"00000001"}]}]]},{"E_lit":[{"L_num":23}]}]]},{"E_app":[{"Id":"shiftl"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"x"}]},{"E_lit":[{"L_hex":"000000F8"}]}]]},{"E_lit":[{"L_num":13}]}]]}]]}]]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"z"}]}]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_id":[{"Id":"y"}]},{"E_id":[{"Id":"shamt"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"z"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBKB_RTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"P_id":[{"Id":"result"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"PACK"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"xlen_bytes"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"xlen_bytes"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"PACKH"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZBKB_PACKW"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/K/zbkb_insts.sail:54.19-54.20"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"result"}]}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"sign_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"result"}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZIP"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/K/zbkb_insts.sail:74.19-74.20"}]}]},{"E_exit":[{"E_lit":["L_unit"]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"UNZIP"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/K/zbkb_insts.sail:97.19-97.20"}]}]},{"E_exit":[{"E_lit":["L_unit"]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"BREV8"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"brev8"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"XPERM8"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"result"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":8}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"result"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"index"}]}]]},{"E_id":[{"Id":"xlen"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_id":[{"Id":"index"}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"index"}]}]]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"index"}]}]]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]}]}]]}]}]]}]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"XPERM4"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"xlenbits"}]},{"Id":"result"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":4}]},"Ord_inc",{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"result"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"i"}]}]},{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"index"}]}]]},{"E_id":[{"Id":"xlen"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_id":[{"Id":"index"}]}]]}]]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"index"}]}]]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"index"}]}]]}]]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]}]}]]}]}]]}]},{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VANDN_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VANDN_VX"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"and_vec"},[{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"rs1_val"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VBREV_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"Id":"output"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"output"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"j"}]}]]}]},{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"j"}]}]]}]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_id":[{"Id":"output"}]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VBREV8_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"brev8"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VREV8_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rev8"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCLZ_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"clz"}]},{"E_app":[{"Id":"count_leading_zeros"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"to_bits"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"clz"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCTZ_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ctz"}]},{"E_app":[{"Id":"count_trailing_zeros"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"to_bits"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"ctz"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCPOP_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"j"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"add_bits_int"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":[{"L_num":1}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VROL_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_pow"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VROL_VX"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rotate_bits_left"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_pow"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VROR_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rotate_bits_right"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_pow"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VROR_VX"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rotate_bits_right"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_pow"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VROR_VI"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_pow"}]},{"E_app":[{"Id":"get_sew_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"SEW_pow"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"uimm_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"rotate_bits_right"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"uimm_val"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"SEW_pow"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VWSLL_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvbb_insts.sail:542.24-542.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val_vec"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val_vec"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen_bits"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val_vec"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val_vec"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"sub_vec_int"},[{"E_id":[{"Id":"SEW_widen_bits"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VWSLL_VX"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvbb_insts.sail:593.24-593.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val_vec"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen_bits"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val_vec"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"sub_vec_int"},[{"E_id":[{"Id":"SEW_widen_bits"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VWSLL_VI"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"lteq_int"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvbb_insts.sail:643.24-643.25"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"uimm_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val_vec"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen_bits"}]},{"E_app":[{"Id":"to_bits_unsafe"},[{"E_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val_vec"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"shift_bits_left"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"uimm_val"}]},{"E_app":[{"Id":"zero_extend"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"o"}]}]]},{"E_app":[{"Id":"sub_vec_int"},[{"E_id":[{"Id":"SEW_widen_bits"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCLMUL_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prod"}]},{"E_app":[{"Id":"carryless_mul"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"prod"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCLMUL_VX"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prod"}]},{"E_app":[{"Id":"carryless_mul"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"prod"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"m"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCLMULH_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prod"}]},{"E_app":[{"Id":"carryless_mul"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"prod"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VCLMULH_VX"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]},{"P_id":[{"Id":"rs1_val"}]}]},{"E_app":[{"Id":"get_scalar"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"prod"}]},{"E_app":[{"Id":"carryless_mul"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"prod"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"n"}]}]]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VGHSH_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkg_insts.sail:23.18-23.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkg_insts.sail:33.31-33.32"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"X"}]}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"Id":"H"}]},{"E_app":[{"Id":"brev8"},[{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"Id":"Z"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":128}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"S"}]}]},{"E_app":[{"Id":"brev8"},[{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"X"}]}]]}]]}]},{"E_block":[[{"E_for":[{"Id":"b"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"S"}]},{"E_id":[{"Id":"b"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"Z"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"Z"}]},{"E_id":[{"Id":"H"}]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"reduce"}]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":127}]}]]},{"E_lit":["L_one"]}]]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"H"}]},{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_if":[{"E_id":[{"Id":"reduce"}]},{"E_assign":[{"LE_id":[{"Id":"H"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_hex":"87"}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]}]]}]},{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"brev8"},[{"E_id":[{"Id":"Z"}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VGMUL_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkg_insts.sail:72.18-72.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkg_insts.sail:81.31-81.32"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"Y"}]}]},{"E_app":[{"Id":"brev8"},[{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"Id":"H"}]},{"E_app":[{"Id":"brev8"},[{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"Id":"Z"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":128}]}]]},{"E_block":[[{"E_for":[{"Id":"b"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"Y"}]},{"E_id":[{"Id":"b"}]}]]},{"E_lit":["L_one"]}]]},{"E_assign":[{"LE_id":[{"Id":"Z"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"Z"}]},{"E_id":[{"Id":"H"}]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"reduce"}]},{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":127}]}]]},{"E_lit":["L_one"]}]]}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"H"}]},{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_if":[{"E_id":[{"Id":"reduce"}]},{"E_assign":[{"LE_id":[{"Id":"H"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"H"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_hex":"87"}]}]]}]]}]},{"E_lit":["L_unit"]}]}]]}]}]]}]},{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"brev8"},[{"E_id":[{"Id":"Z"}]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VAESDF"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:29.18-29.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:38.31-38.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"state"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"rkey"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDF_VV"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDF_VS"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sr"}]},{"E_app":[{"Id":"aes_shift_rows_inv"},[{"E_id":[{"Id":"state"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sb"}]},{"E_app":[{"Id":"aes_subbytes_inv"},[{"E_id":[{"Id":"sr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ark"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"sb"}]},{"E_id":[{"Id":"rkey"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"ark"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VAESDM"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:82.18-82.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:91.31-91.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"state"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"rkey"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDM_VV"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESDM_VS"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sr"}]},{"E_app":[{"Id":"aes_shift_rows_inv"},[{"E_id":[{"Id":"state"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sb"}]},{"E_app":[{"Id":"aes_subbytes_inv"},[{"E_id":[{"Id":"sr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ark"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"sb"}]},{"E_id":[{"Id":"rkey"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mix"}]},{"E_app":[{"Id":"aes_mixcolumns_inv"},[{"E_id":[{"Id":"ark"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"mix"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VAESEF"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:136.18-136.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:145.31-145.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"state"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"rkey"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEF_VV"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEF_VS"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sb"}]},{"E_app":[{"Id":"aes_subbytes_fwd"},[{"E_id":[{"Id":"state"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sr"}]},{"E_app":[{"Id":"aes_shift_rows_fwd"},[{"E_id":[{"Id":"sb"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ark"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"sr"}]},{"E_id":[{"Id":"rkey"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"ark"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VAESEM"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:189.18-189.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:198.31-198.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"state"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[128]}]}]]},{"P_id":[{"Id":"rkey"}]}]},{"E_match":[{"E_id":[{"Id":"funct6"}]},[{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEM_VV"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"ZVK_VAESEM_VS"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sb"}]},{"E_app":[{"Id":"aes_subbytes_fwd"},[{"E_id":[{"Id":"state"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"sr"}]},{"E_app":[{"Id":"aes_shift_rows_fwd"},[{"E_id":[{"Id":"sb"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"mix"}]},{"E_app":[{"Id":"aes_mixcolumns_fwd"},[{"E_id":[{"Id":"sr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ark"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"mix"}]},{"E_id":[{"Id":"rkey"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"ark"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VAESKF1_VI"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rnd"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:237.18-237.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"Id":"rnd_val"}]},{"E_id":[{"Id":"rnd"}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_lit":[{"L_num":10}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_lit":[{"L_num":0}]}]]}]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":3}]}]},{"E_app":[{"Id":"not_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"r"}]}]},{"E_app":[{"Id":"sub_vec_int"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[4]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"Id":"w"}]},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:255.31-255.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"current_round_key"}]},{"E_app":[{"Id":"get_velem_quad_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"aes_subword_fwd"},[{"E_app":[{"Id":"rotater"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"current_round_key"}]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"aes_decode_rcon"},[{"E_id":[{"Id":"r"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"current_round_key"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"current_round_key"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":2}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"current_round_key"}]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":3}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"current_round_key"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_app":[{"Id":"write_velem_quad_vec"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"w"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VAESKF2_VI"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rnd"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:287.18-287.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"Id":"rnd_val"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"rnd"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":0}]}]]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rnd_val"}]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gt_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"rnd_val"}]}]]},{"E_lit":[{"L_num":14}]}]]}]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":3}]}]},{"E_app":[{"Id":"not_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[4]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"Id":"w"}]},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:303.31-303.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"current_round_key"}]},{"E_app":[{"Id":"get_velem_quad_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"round_key_b"}]},{"E_app":[{"Id":"get_velem_quad_vec"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]}]},{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_one"]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"aes_subword_fwd"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"current_round_key"}]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"round_key_b"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"aes_subword_fwd"},[{"E_app":[{"Id":"rotater"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"current_round_key"}]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_num":8}]}]]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"aes_decode_rcon"},[{"E_app":[{"Id":"sub_vec_int"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"rnd_val"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"round_key_b"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"round_key_b"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":2}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"round_key_b"}]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":3}]}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"round_key_b"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_app":[{"Id":"write_velem_quad_vec"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"w"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VAESZ_VS"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:338.18-338.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvkned_insts.sail:347.31-347.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"state"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rkey"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"ark"}]},{"E_app":[{"Id":"xor_vec"},[{"E_id":[{"Id":"state"}]},{"E_id":[{"Id":"rkey"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"ark"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSM4K_VI"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksed_insts.sail:23.18-23.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rnd"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"00"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"uimm"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksed_insts.sail:33.31-33.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rk_in"}]},{"E_app":[{"Id":"get_velem_quad_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[4]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"Id":"rk_out"}]},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"zvk_sm4_sbox"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"rnd"}]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":0}]}]},{"E_app":[{"Id":"zvk_round_key"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"zvk_sm4_sbox"},[{"E_app":[{"Id":"add_bits_int"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"rnd"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":1}]}]},{"E_app":[{"Id":"zvk_round_key"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"zvk_sm4_sbox"},[{"E_app":[{"Id":"add_bits_int"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"rnd"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":2}]}]},{"E_app":[{"Id":"zvk_round_key"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"zvk_sm4_sbox"},[{"E_app":[{"Id":"add_bits_int"},[{"E_app":[{"Id":"shiftl"},[{"E_id":[{"Id":"rnd"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":3}]}]]}]]}]]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"rk_out"}]},{"E_lit":[{"L_num":3}]}]},{"E_app":[{"Id":"zvk_round_key"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_app":[{"Id":"write_velem_quad_vec"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rk_out"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZVKSM4RTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksed_insts.sail:82.18-82.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksed_insts.sail:91.31-91.32"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"rk_in"}]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VSM4R_VV"}]}]]},{"E_app":[{"Id":"get_velem_quad_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]},{"E_app":[{"Id":"get_velem_quad_vec"},[{"E_id":[{"Id":"vs2_val"}]},{"E_lit":[{"L_num":0}]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"x_in"}]},{"E_app":[{"Id":"get_velem_quad_vec"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[4]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"Id":"x_out"}]},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":0}]}]},{"E_app":[{"Id":"zvk_sm4_round"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":1}]}]]}]]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":1}]}]},{"E_app":[{"Id":"zvk_sm4_round"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":2}]}]]}]]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":2}]}]},{"E_app":[{"Id":"zvk_sm4_round"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"B"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"rk_in"}]},{"E_lit":[{"L_num":3}]}]]}]]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"S"}]},{"E_app":[{"Id":"zvk_sm4_subword"},[{"E_id":[{"Id":"B"}]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"x_out"}]},{"E_lit":[{"L_num":3}]}]},{"E_app":[{"Id":"zvk_sm4_round"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"x_in"}]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"S"}]}]]}]},{"E_app":[{"Id":"write_velem_quad_vec"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"x_out"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSHA2MS_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"SEW"}]},{"TP_var":[{"Var":"'SEW"}]}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvknhab_insts.sail:27.30-27.31"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[20]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'SEW"}]}]}]]}]}]]},{"Id":"w"}]},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":20}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvknhab_insts.sail:39.31-39.32"}]}]},{"E_assign":[{"LE_id":[{"Id":"w"}]},{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_app":[{"Id":"plain_vector_update"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]},{"E_lit":[{"L_num":1}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_lit":[{"L_num":2}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":2}]}]]}]]}]]},{"E_lit":[{"L_num":3}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]}]]}]]},{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]},{"E_lit":[{"L_num":9}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_lit":[{"L_num":10}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":2}]}]]}]]}]]},{"E_lit":[{"L_num":11}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]}]]}]]},{"E_lit":[{"L_num":12}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]}]]}]]},{"E_lit":[{"L_num":13}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]]},{"E_lit":[{"L_num":14}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":2}]}]]}]]}]]},{"E_lit":[{"L_num":15}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":16}]}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_sig1"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":14}]}]]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":9}]}]]}]]},{"E_app":[{"Id":"zvk_sig0"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":17}]}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_sig1"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":15}]}]]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":10}]}]]}]]},{"E_app":[{"Id":"zvk_sig0"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":18}]}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_sig1"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":16}]}]]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":11}]}]]}]]},{"E_app":[{"Id":"zvk_sig0"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":2}]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_lit":[{"L_num":19}]}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_sig1"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":17}]}]]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":12}]}]]}]]},{"E_app":[{"Id":"zvk_sig0"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":4}]}]]},{"E_id":[{"Id":"SEW"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":3}]}]]}]]}]},{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":17}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":16}]}]]}]]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZVKSHA2TYPE"},[{"P_tuple":[[{"P_id":[{"Id":"funct6"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":64}]}]]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvknhab_insts.sail:95.30-95.31"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":4}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvknhab_insts.sail:105.31-105.32"}]}]},{"E_var":[{"LE_id":[{"Id":"f"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"e"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"a"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"h"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"g"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"d"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":2}]}]]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"c"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"message_sched_plus_c"}]},{"E_app":[{"Id":"get_velem_quad"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"w0"}]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VSHA2CL_VV"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"message_sched_plus_c"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"message_sched_plus_c"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":3}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]]}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"w1"}]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"funct6"}]},{"E_id":[{"Id":"ZVK_VSHA2CL_VV"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"message_sched_plus_c"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"message_sched_plus_c"}]},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":4}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":3}]}]]}]]}]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"T1"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"h"}]},{"E_app":[{"Id":"zvk_sum1"},[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"SEW"}]}]]}]]},{"E_app":[{"Id":"zvk_ch"},[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"f"}]},{"E_id":[{"Id":"g"}]}]]}]]},{"E_id":[{"Id":"w0"}]}]]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"T2"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_sum0"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"zvk_maj"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"b"}]},{"E_id":[{"Id":"c"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"h"}]},{"E_id":[{"Id":"g"}]}]},{"E_assign":[{"LE_id":[{"Id":"g"}]},{"E_id":[{"Id":"f"}]}]},{"E_assign":[{"LE_id":[{"Id":"f"}]},{"E_id":[{"Id":"e"}]}]},{"E_assign":[{"LE_id":[{"Id":"e"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"d"}]},{"E_id":[{"Id":"T1"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"d"}]},{"E_id":[{"Id":"c"}]}]},{"E_assign":[{"LE_id":[{"Id":"c"}]},{"E_id":[{"Id":"b"}]}]},{"E_assign":[{"LE_id":[{"Id":"b"}]},{"E_id":[{"Id":"a"}]}]},{"E_assign":[{"LE_id":[{"Id":"a"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"T1"}]},{"E_id":[{"Id":"T2"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"T1"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"h"}]},{"E_app":[{"Id":"zvk_sum1"},[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"SEW"}]}]]}]]},{"E_app":[{"Id":"zvk_ch"},[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"f"}]},{"E_id":[{"Id":"g"}]}]]}]]},{"E_id":[{"Id":"w1"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"T2"}]},{"E_app":[{"Id":"add_bits"},[{"E_app":[{"Id":"zvk_sum0"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"SEW"}]}]]},{"E_app":[{"Id":"zvk_maj"},[{"E_id":[{"Id":"a"}]},{"E_id":[{"Id":"b"}]},{"E_id":[{"Id":"c"}]}]]}]]}]},{"E_assign":[{"LE_id":[{"Id":"h"}]},{"E_id":[{"Id":"g"}]}]},{"E_assign":[{"LE_id":[{"Id":"g"}]},{"E_id":[{"Id":"f"}]}]},{"E_assign":[{"LE_id":[{"Id":"f"}]},{"E_id":[{"Id":"e"}]}]},{"E_assign":[{"LE_id":[{"Id":"e"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"d"}]},{"E_id":[{"Id":"T1"}]}]]}]},{"E_assign":[{"LE_id":[{"Id":"d"}]},{"E_id":[{"Id":"c"}]}]},{"E_assign":[{"LE_id":[{"Id":"c"}]},{"E_id":[{"Id":"b"}]}]},{"E_assign":[{"LE_id":[{"Id":"b"}]},{"E_id":[{"Id":"a"}]}]},{"E_assign":[{"LE_id":[{"Id":"a"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"T1"}]},{"E_id":[{"Id":"T2"}]}]]}]},{"E_app":[{"Id":"write_velem_quad"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"a"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"b"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"f"}]}]]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSM3ME_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"SEW"}]},{"TP_var":[{"Var":"'SEW"}]}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksh_insts.sail:23.18-23.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[24]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"Id":"w"}]},{"E_app":[{"Id":"vector_init"},[{"E_lit":[{"L_num":24}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksh_insts.sail:34.31-34.32"}]}]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_id":[{"Id":"j"}]}]},{"E_app":[{"Id":"rev8"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"j"}]}]]}]]}]]}]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":8}]}]]}]},{"E_app":[{"Id":"rev8"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":8}]}]]},{"E_id":[{"Id":"j"}]}]]}]]}]]}]}]]}]},{"E_for":[{"Id":"j"},{"E_lit":[{"L_num":16}]},{"E_lit":[{"L_num":23}]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"w"}]},{"E_id":[{"Id":"j"}]}]},{"E_app":[{"Id":"zvk_sh_w"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":16}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":9}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":3}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":13}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"j"}]},{"E_lit":[{"L_num":6}]}]]}]]}]]}]}]},{"E_app":[{"Id":"write_velem_oct_vec"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"vrev8"},[{"E_app":[{"Id":"ediv_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_vector":[[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":23}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":22}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":21}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":20}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":19}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":18}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":17}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":16}]}]]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VSM3C_VI"},[{"P_tuple":[[{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"uimm"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksh_insts.sail:67.18-67.19"}]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"vs2_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"vd_val"}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rnds"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"uimm"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_len"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vl"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"vstart"}]}]]},{"E_lit":[{"L_num":8}]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_id":[{"Id":"eg_start"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"eg_len"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_assert":[{"E_app":[{"Id":"lt_int"},[{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":8}]}]]},{"E_lit":[{"L_num":7}]}]]},{"E_id":[{"Id":"num_elem"}]}]]},{"E_lit":[{"L_string":"extensions/vector_crypto/zvksh_insts.sail:78.31-78.32"}]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[8]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"P_id":[{"Id":"A_H"}]}]},{"E_app":[{"Id":"vrev8"},[{"E_app":[{"Id":"ediv_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"get_velem_oct_vec"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"vs2_val"}]}]]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_constant":[8]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}]}]]},{"P_id":[{"Id":"w"}]}]},{"E_app":[{"Id":"vrev8"},[{"E_app":[{"Id":"ediv_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_app":[{"Id":"get_velem_oct_vec"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"vs2_val"}]}]]},{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"x_0"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":4}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"x_1"}]},{"E_app":[{"Id":"xor_vec"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":5}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"A1_H1"}]},{"E_app":[{"Id":"zvk_sm3_round"},[{"E_id":[{"Id":"A_H"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"x_0"}]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"rnds"}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"A2_H2"}]},{"E_app":[{"Id":"zvk_sm3_round"},[{"E_id":[{"Id":"A1_H1"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"w"}]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"x_1"}]},{"E_app":[{"Id":"add_atom"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"rnds"}]}]]},{"E_lit":[{"L_num":1}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_velem_oct_vec"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"vrev8"},[{"E_app":[{"Id":"ediv_int"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"SEW"}]}]]},{"E_lit":[{"L_num":8}]}]]},{"E_vector":[[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A1_H1"}]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A2_H2"}]},{"E_lit":[{"L_num":6}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A1_H1"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A2_H2"}]},{"E_lit":[{"L_num":4}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A1_H1"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A2_H2"}]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A1_H1"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"A2_H2"}]},{"E_lit":[{"L_num":0}]}]]}]]}]]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CSRReg"},[{"P_tuple":[[{"P_id":[{"Id":"csr"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_app":[{"Id":"doCSR"},[{"E_id":[{"Id":"csr"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]},{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"op"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"CSRRW"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"CSRImm"},[{"P_tuple":[[{"P_id":[{"Id":"csr"}]},{"P_id":[{"Id":"imm"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_app":[{"Id":"doCSR"},[{"E_id":[{"Id":"csr"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"imm"}]}]]},{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"op"}]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"op"}]},{"E_id":[{"Id":"CSRRW"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":5}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SINVAL_VMA"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rs2"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"execute"},[{"E_app":[{"Id":"SFENCE_VMA"},[{"E_tuple":[[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"rs2"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SFENCE_W_INVAL"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"User"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"SFENCE_INVAL_IR"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"User"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WRS"},[{"P_id":[{"Id":"WRS_STO"}]}]]},{"E_app":[{"Id":"Enter_Wait"},[{"E_id":[{"Id":"WAIT_WRS_STO"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"WRS"},[{"P_id":[{"Id":"WRS_NTO"}]}]]},{"E_app":[{"Id":"Enter_Wait"},[{"E_id":[{"Id":"WAIT_WRS_NTO"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZICOND_RTYPE"},[{"P_tuple":[[{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]},{"P_id":[{"Id":"op"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"condition"}]}]},{"E_match":[{"E_id":[{"Id":"op"}]},[{"Pat_exp":[{"P_id":[{"Id":"CZERO_EQZ"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"CZERO_NEQ"}]},{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]}]]}]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_if":[{"E_id":[{"Id":"condition"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZICBOM"},[{"P_tuple":[[{"P_id":[{"Id":"CBO_CLEAN"}]},{"P_id":[{"Id":"rs1"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"cbo_clean_flush_enabled"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_app":[{"Id":"process_clean_inval"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"CBO_CLEAN"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZICBOM"},[{"P_tuple":[[{"P_id":[{"Id":"CBO_FLUSH"}]},{"P_id":[{"Id":"rs1"}]}]]}]]},{"E_if":[{"E_app":[{"Id":"cbo_clean_flush_enabled"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_app":[{"Id":"process_clean_inval"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"CBO_FLUSH"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZICBOM"},[{"P_tuple":[[{"P_id":[{"Id":"CBO_INVAL"}]},{"P_id":[{"Id":"rs1"}]}]]}]]},{"E_match":[{"E_app":[{"Id":"cbop_priv_check"},[{"E_id":[{"Id":"cur_privilege"}]}]]},[{"Pat_exp":[{"P_id":[{"Id":"CBOP_ILLEGAL"}]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"CBOP_ILLEGAL_VIRTUAL"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Zicbom/zicbom_insts.sail"}]},{"E_lit":[{"L_num":153}]},{"E_lit":[{"L_string":"unimplemented"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"CBOP_INVAL_INVAL"}]},{"E_app":[{"Id":"process_clean_inval"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"CBO_INVAL"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"CBOP_INVAL_FLUSH"}]},{"E_app":[{"Id":"process_clean_inval"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"CBO_FLUSH"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZICBOZ"},[{"P_id":[{"Id":"rs1"}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"cbo_zero_enabled"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"rX_bits"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"cache_block_size"}]},{"E_app":[{"Id":"pow2"},[{"E_id":[{"Id":"plat_cache_block_size_exp"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"negative_offset"}]},{"E_app":[{"Id":"sub_vec"},[{"E_app":[{"Id":"and_vec"},[{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"not_vec"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"ones"},[{"E_id":[{"Id":"plat_cache_block_size_exp"}]}]]}]]}]]}]]},{"E_id":[{"Id":"rs1_val"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"ext_data_get_addr"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"negative_offset"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]},{"E_id":[{"Id":"cache_block_size"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_Error"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Ext_DataAddr_Check_Failure"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ext_DataAddr_OK"},[{"P_id":[{"Id":"vaddr"}]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_id":[{"Id":"vaddr"}]},{"E_app":[{"Id":"Write"},[{"E_id":[{"Id":"Data"}]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"sub_virtaddr_xlenbits"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"negative_offset"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"paddr"}]},{"P_wild":[]}]]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"mem_write_ea"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"cache_block_size"}]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"sub_virtaddr_xlenbits"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"negative_offset"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_wild":[]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"mem_write_value"},[{"E_id":[{"Id":"paddr"}]},{"E_id":[{"Id":"cache_block_size"}]},{"E_app":[{"Id":"zeros"},[{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"pow2"},[{"E_app":[{"Id":"__id"},[{"E_id":[{"Id":"plat_cache_block_size_exp"}]}]]}]]}]]}]]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_true"]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_lit":["L_false"]}]]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/Zicboz/zicboz_insts.sail"}]},{"E_lit":[{"L_num":54}]},{"E_lit":[{"L_string":"store got false from mem_write_value"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Memory_Exception"},[{"E_tuple":[[{"E_app":[{"Id":"sub_virtaddr_xlenbits"},[{"E_id":[{"Id":"vaddr"}]},{"E_id":[{"Id":"negative_offset"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]}]]}]]}]}]]}]]}]}]]}]]}]}]]}]]}]}]]}]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FENCEI"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FCVT_BF16_S"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val_S"}]},{"E_app":[{"Id":"rF_or_X_S"},[{"E_id":[{"Id":"rs1"}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"rm'"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"encdec_rounding_mode_forwards"},[{"E_id":[{"Id":"rm'"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_BF16"}]}]]},{"E_app":[{"Id":"riscv_f32ToBF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"rs1_val_S"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_BF16"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_BF16"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"FCVT_S_BF16"},[{"P_tuple":[[{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rm"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_app":[{"Id":"select_instr_or_fcsr_rm"},[{"E_id":[{"Id":"rm"}]}]]},{"E_app":[{"Id":"None"},[{"E_lit":["L_unit"]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"rd_val_S"}]}]]},{"E_app":[{"Id":"bf16_to_f32"},[{"E_app":[{"Id":"rF_BF16"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_app":[{"Id":"wF_S"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"rd_val_S"}]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFNCVTBF16_F_F_W"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"LMUL_pow"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/bfloat16/zvfbfmin_insts.sail:30.18-30.19"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_tuple":[[{"P_id":[{"Id":"fflags"}]},{"P_id":[{"Id":"elem"}]}]]},{"E_app":[{"Id":"riscv_f32ToBF16"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"accrue_fflags"},[{"E_id":[{"Id":"fflags"}]}]]},{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_id":[{"Id":"elem"}]}]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFWCVTBF16_F_F_V"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/bfloat16/zvfbfmin_insts.sail:81.18-81.19"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"bf16_to_f32_set_flags"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFWMACCBF16_VV"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"vs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs1"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/bfloat16/zvfbfwma_insts.sail:31.18-31.19"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs1_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs1"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"bf16_to_f32_set_flags"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"bf16_to_f32_set_flags"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs1_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"VFWMACCBF16_VF"},[{"P_tuple":[[{"P_id":[{"Id":"vm"}]},{"P_id":[{"Id":"vs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"vd"}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW"}]},{"E_app":[{"Id":"get_sew"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow"}]},{"E_app":[{"Id":"get_lmul_pow"},[{"E_lit":["L_unit"]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"num_elem"}]},{"E_app":[{"Id":"get_num_elem"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"SEW"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"SEW_widen"}]},{"E_app":[{"Id":"mult_atom"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"LMUL_pow_widen"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"LMUL_pow"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"illegal_fp_variable_width"},[{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"rm_3b"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"valid_reg_overlap"},[{"E_id":[{"Id":"vs2"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"SEW"}]},{"E_lit":[{"L_num":16}]}]]},{"E_lit":[{"L_string":"extensions/bfloat16/zvfbfwma_insts.sail:81.18-81.19"}]}]},{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"n"}]},{"TP_var":[{"Var":"'n"}]}]},{"E_id":[{"Id":"num_elem"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"m"}]},{"TP_var":[{"Var":"'m"}]}]},{"E_id":[{"Id":"SEW"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_var":[{"P_id":[{"Id":"o"}]},{"TP_var":[{"Var":"'o"}]}]},{"E_id":[{"Id":"SEW_widen"}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]},{"P_id":[{"Id":"vm_val"}]}]},{"E_app":[{"Id":"read_vmask"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"vm"}]},{"E_id":[{"Id":"zvreg"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"P_id":[{"Id":"vd_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'m"}]}]}]]}]}]]},{"P_id":[{"Id":"vs2_val"}]}]},{"E_app":[{"Id":"read_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW"}]},{"E_id":[{"Id":"LMUL_pow"}]},{"E_id":[{"Id":"vs2"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_tuple":[[{"Typ_app":[{"Id":"vector"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]},{"A_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'o"}]}]}]]}]}]]},{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_var":[{"Var":"'n"}]}]}]]}]]},{"P_tuple":[[{"P_id":[{"Id":"initial_result"}]},{"P_id":[{"Id":"mask"}]}]]}]},{"E_match":[{"E_app":[{"Id":"init_masked_result"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"vm_val"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"v"}]}]]},{"E_id":[{"Id":"v"}]}]},{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}]},{"E_block":[[{"E_var":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"initial_result"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"bf16_to_f32_set_flags"},[{"E_app":[{"Id":"rF_BF16"},[{"E_id":[{"Id":"rs1"}]}]]}]]}]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_lit":[{"L_num":0}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"num_elem"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":1}]},"Ord_inc",{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"mask"}]},{"E_id":[{"Id":"i"}]}]]},{"E_lit":["L_one"]}]]},{"E_block":[[{"E_assign":[{"LE_vector":[{"LE_id":[{"Id":"result"}]},{"E_id":[{"Id":"i"}]}]},{"E_app":[{"Id":"fp_muladd"},[{"E_id":[{"Id":"rm_3b"}]},{"E_app":[{"Id":"bf16_to_f32_set_flags"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vs2_val"}]},{"E_id":[{"Id":"i"}]}]]}]]},{"E_id":[{"Id":"rs1_val"}]},{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"vd_val"}]},{"E_id":[{"Id":"i"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]}]]}]},{"E_app":[{"Id":"write_vreg"},[{"E_id":[{"Id":"num_elem"}]},{"E_id":[{"Id":"SEW_widen"}]},{"E_id":[{"Id":"LMUL_pow_widen"}]},{"E_id":[{"Id":"vd"}]},{"E_id":[{"Id":"result"}]}]]},{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":16}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZIMOP_MOP_R"},[{"P_tuple":[[{"P_id":[{"Id":"mop"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZIMOP_MOP_RR"},[{"P_tuple":[[{"P_id":[{"Id":"mop"}]},{"P_id":[{"Id":"rs2"}]},{"P_id":[{"Id":"rs1"}]},{"P_id":[{"Id":"rd"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"wX_bits"},[{"E_id":[{"Id":"rd"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]},{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ZCMOP"},[{"P_id":[{"Id":"mop"}]}]]},{"E_block":[[{"E_id":[{"Id":"RETIRE_SUCCESS"}]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"ILLEGAL"},[{"P_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]},{"FCL_funcl":[{"Id":"execute"},{"Pat_exp":[{"P_app":[{"Id":"C_ILLEGAL"},[{"P_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]}]}]}]]}},{"DEF_mapdef":{"MD_mapping":[{"Id":"assembly"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZICBOP"},[{"MP_id":[{"Id":"cbop"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"offset"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"prefetch_mnemonic"},[{"MP_id":[{"Id":"cbop"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_12"},[{"MP_id":[{"Id":"offset"}]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"NTL"},[{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"ntl."}]},{"MP_app":[{"Id":"ntl_name"},[{"MP_id":[{"Id":"op"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_NTL"},[{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.ntl."}]},{"MP_app":[{"Id":"ntl_name"},[{"MP_id":[{"Id":"op"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"PAUSE"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pause"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"LPAD"},[{"MP_id":[{"Id":"lpl"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"lpad"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_20"},[{"MP_id":[{"Id":"lpl"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"UTYPE"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"utype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_20"},[{"MP_id":[{"Id":"imm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"JAL"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"jal"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_21"},[{"MP_id":[{"Id":"imm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"JALR"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"jalr"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_id":[{"Id":"imm"}]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"BTYPE"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"btype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_13"},[{"MP_id":[{"Id":"imm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ITYPE"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"itype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_id":[{"Id":"imm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHIFTIOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"shiftiop_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"rtype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"LOAD"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]},{"MP_id":[{"Id":"width"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"l"}]},{"MP_app":[{"Id":"width_mnemonic"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"maybe_u"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_id":[{"Id":"imm"}]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"STORE"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"s"}]},{"MP_app":[{"Id":"width_mnemonic"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_id":[{"Id":"imm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"ADDIW"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"addiw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_id":[{"Id":"imm"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_app":[{"Id":"rtypew_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"SHIFTIWOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_app":[{"Id":"shiftiwop_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"shamt"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FENCE"},[{"MP_id":[{"Id":"pred"}]},{"MP_id":[{"Id":"succ"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fence"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"fence_bits"},[{"MP_id":[{"Id":"pred"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"fence_bits"},[{"MP_id":[{"Id":"succ"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FENCE_TSO"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fence.tso"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ECALL"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ecall"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MRET"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mret"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SRET"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sret"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"EBREAK"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"ebreak"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WFI"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"wfi"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SFENCE_VMA"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sfence.vma"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FENCE_RESERVED"},[{"MP_id":[{"Id":"fm"}]},{"MP_id":[{"Id":"pred"}]},{"MP_id":[{"Id":"succ"}]},{"MP_id":[{"Id":"rs"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"0000"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"1000"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fence.reserved."}]},{"MP_app":[{"Id":"fence_bits"},[{"MP_id":[{"Id":"pred"}]}]]},{"MP_lit":[{"L_string":"."}]},{"MP_app":[{"Id":"fence_bits"},[{"MP_id":[{"Id":"succ"}]}]]},{"MP_lit":[{"L_string":"."}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_lit":[{"L_string":"."}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_string":"."}]},{"MP_app":[{"Id":"hex_bits_4"},[{"MP_id":[{"Id":"fm"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"0000"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"fm"}]},{"E_lit":[{"L_bin":"1000"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"FENCEI_RESERVED"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000000000"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fence.i.reserved."}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_lit":[{"L_string":"."}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_lit":[{"L_string":"."}]},{"MP_app":[{"Id":"hex_bits_12"},[{"MP_id":[{"Id":"imm"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000000000"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AMO"},[{"MP_id":[{"Id":"op"}]},{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"amo_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_lit":[{"L_string":"."}]},{"MP_app":[{"Id":"width_mnemonic_wide"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"maybe_aqrl"},[{"MP_tuple":[[{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]}]]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"LOADRES"},[{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"lr."}]},{"MP_app":[{"Id":"width_mnemonic"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"maybe_aqrl"},[{"MP_tuple":[[{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]}]]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"STORECON"},[{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sc."}]},{"MP_app":[{"Id":"width_mnemonic"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"maybe_aqrl"},[{"MP_tuple":[[{"MP_id":[{"Id":"aq"}]},{"MP_id":[{"Id":"rl"}]}]]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MUL"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"mul_op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"mul_mnemonic"},[{"MP_id":[{"Id":"mul_op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"DIV"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"div"}]},{"MP_app":[{"Id":"maybe_u"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"REM"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"rem"}]},{"MP_app":[{"Id":"maybe_u"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"MULW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"mulw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"DIVW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"div"}]},{"MP_app":[{"Id":"maybe_u"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_lit":[{"L_string":"w"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"REMW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"is_unsigned"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"rem"}]},{"MP_app":[{"Id":"maybe_u"},[{"MP_id":[{"Id":"is_unsigned"}]}]]},{"MP_lit":[{"L_string":"w"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SLLIUW"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"slli.uw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBA_RTYPEUW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"shamt"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zba_rtypeuw_mnemonic"},[{"MP_id":[{"Id":"shamt"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBA_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"shamt"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zba_rtype_mnemonic"},[{"MP_id":[{"Id":"shamt"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RORIW"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"roriw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RORI"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"rori"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBB_RTYPEW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zbb_rtypew_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zbb_rtype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBB_EXTOP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zbb_extop_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"REV8"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"rev8"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ORCB"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"orc.b"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CPOP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"cpop"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CPOPW"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"cpopw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CLZ"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"clz"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CLZW"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"clzw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CTZ"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"ctz"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CTZW"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"ctzw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CLMUL"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"clmul"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CLMULH"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"clmulh"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CLMULR"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"clmulr"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBS_IOP"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zbs_iop_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBS_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zbs_rtype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_NOP"},[{"MP_lit":[{"L_bin":"000000"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"c.nop"}]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_NOP"},[{"MP_id":[{"Id":"imm"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":6}]}]]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.nop"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_6"},[{"MP_id":[{"Id":"imm"}]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":6}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDI4SPN"},[{"MP_id":[{"Id":"rdc"}]},{"MP_id":[{"Id":"nzimm"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"nzimm"}]},{"E_lit":[{"L_bin":"00000000"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.addi4spn"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_10"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"nzimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"nzimm"}]},{"E_lit":[{"L_bin":"00000000"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_LW"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc"}]},{"MP_id":[{"Id":"rdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.lw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_7"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LD"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc"}]},{"MP_id":[{"Id":"rdc"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.ld"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc"}]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SW"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_7"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SD"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sd"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDI"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"zreg"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.addi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_6"},[{"MP_id":[{"Id":"imm"}]}]]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rsd"}]},{"E_id":[{"Id":"zreg"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_JAL"},[{"MP_id":[{"Id":"imm"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.jal"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDIW"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rsd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.addiw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_6"},[{"MP_id":[{"Id":"imm"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_LI"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.li"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_6"},[{"MP_id":[{"Id":"imm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDI16SP"},[{"MP_id":[{"Id":"imm"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.addi16sp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_10"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_hex":"0"}]}]]}]]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LUI"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"sp"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000"}]}]]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.lui"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_6"},[{"MP_id":[{"Id":"imm"}]}]]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"sp"}]}]]},{"E_app":[{"Id":"neq_bits"},[{"E_id":[{"Id":"imm"}]},{"E_lit":[{"L_bin":"000000"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SRLI"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rsd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.srli"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SRAI"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rsd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.srai"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_ANDI"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rsd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.andi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_6"},[{"MP_id":[{"Id":"imm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SUB"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sub"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_XOR"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.xor"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_OR"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.or"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_AND"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.and"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SUBW"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.subw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADDW"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.addw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_J"},[{"MP_id":[{"Id":"imm"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.j"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[11]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_BEQZ"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.beqz"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_9"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_BNEZ"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.bnez"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rs"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_9"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[8]}]}]]}]},{"MP_lit":[{"L_bin":"0"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SLLI"},[{"MP_id":[{"Id":"shamt"}]},{"MP_id":[{"Id":"rsd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.slli"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"shamt"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LWSP"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.lwsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_LDSP"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.ldsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_9"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rd"}]},{"E_id":[{"Id":"zreg"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SWSP"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.swsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_SDSP"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sdsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_9"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_JR"},[{"MP_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.jr"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_JALR"},[{"MP_id":[{"Id":"rs1"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.jalr"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs1"}]},{"E_id":[{"Id":"zreg"}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_MV"},[{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.mv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_EBREAK"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"c.ebreak"}]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_ADD"},[{"MP_id":[{"Id":"rsd"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.add"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rsd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]},{"E_app":[{"Id":"neq_anything"},[{"E_id":[{"Id":"rs2"}]},{"E_id":[{"Id":"zreg"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_LBU"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rdc"}]},{"MP_id":[{"Id":"rsc1"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.lbu"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_LHU"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rdc"}]},{"MP_id":[{"Id":"rsc1"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.lhu"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_LH"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rdc"}]},{"MP_id":[{"Id":"rsc1"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.lh"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SB"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sb"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SH"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sh"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_ZEXT_B"},[{"MP_id":[{"Id":"rsdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.zext.b"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsdc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SEXT_B"},[{"MP_id":[{"Id":"rsdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sext.b"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsdc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_ZEXT_H"},[{"MP_id":[{"Id":"rsdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.zext.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsdc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_SEXT_H"},[{"MP_id":[{"Id":"rsdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.sext.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsdc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_ZEXT_W"},[{"MP_id":[{"Id":"rsdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.zext.w"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsdc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_NOT"},[{"MP_id":[{"Id":"rsdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.not"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsdc"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_MUL"},[{"MP_id":[{"Id":"rsdc"}]},{"MP_id":[{"Id":"rsc2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.mul"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"LOAD_FP"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"width"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fl"}]},{"MP_app":[{"Id":"width_mnemonic"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_id":[{"Id":"imm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"STORE_FP"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fs"}]},{"MP_app":[{"Id":"width_mnemonic"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_12"},[{"MP_id":[{"Id":"imm"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_MADD_TYPE_S"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_madd_type_mnemonic_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_rm_type_mnemonic_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"FSQRT_S"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fsqrt.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_fx_type_mnemonic_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_xf_type_mnemonic_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_TYPE_F_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_type_mnemonic_f_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_TYPE_X_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_type_mnemonic_x_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_TYPE_X_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_type_mnemonic_x_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_TYPE_F_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_type_mnemonic_f_S"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FLWSP"},[{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.flwsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"imm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FSWSP"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rs2"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.fswsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FLW"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc"}]},{"MP_id":[{"Id":"rdc"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.flw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"cfreg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_7"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc"}]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"MCL_bidir":[{"MPat_when":[{"MP_app":[{"Id":"C_FSW"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]},{"MPat_when":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.fsw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"cfreg_name"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_7"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"00"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_MADD_TYPE_D"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_madd_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_rm_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_ff_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_fx_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_xf_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_F_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_f_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_X_TYPE_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_x_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_X_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_x_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_F_TYPE_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_f_type_mnemonic_D"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_FLDSP"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.fldsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_9"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_FSDSP"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.fsdsp"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_9"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[6]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"sp_reg_name"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_FLD"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc"}]},{"MP_id":[{"Id":"rdc"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.fld"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"cfreg_name"},[{"MP_id":[{"Id":"rdc"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_FSD"},[{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rsc1"}]},{"MP_id":[{"Id":"rsc2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.fsd"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"cfreg_name"},[{"MP_id":[{"Id":"rsc2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_8"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"uimm"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]}]},{"MP_lit":[{"L_bin":"000"}]}]]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"creg_name"},[{"MP_id":[{"Id":"rsc1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_RM_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_rm_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_MADD_TYPE_H"},[{"MP_id":[{"Id":"rs3"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_madd_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_F_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_f_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_BIN_X_TYPE_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_bin_x_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_FF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_ff_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_FX_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_fx_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_RM_XF_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_rm_xf_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_or_reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_F_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_f_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"F_UN_X_TYPE_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"f_un_x_type_mnemonic_H"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLI_H"},[{"MP_id":[{"Id":"constantidx"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fli.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"constantidx"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLI_S"},[{"MP_id":[{"Id":"constantidx"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fli.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"constantidx"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLI_D"},[{"MP_id":[{"Id":"constantidx"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fli.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"constantidx"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMINM_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fminm.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMAXM_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fmaxm.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMINM_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fminm.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMAXM_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fmaxm.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMINM_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fminm.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMAXM_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fmaxm.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FROUND_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fround.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FROUNDNX_H"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"froundnx.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FROUND_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fround.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FROUNDNX_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"froundnx.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FROUND_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fround.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FROUNDNX_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"froundnx.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMVH_X_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fmvh.x.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FMVP_D_X"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fmvp.d.x"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLEQ_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fleq.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLTQ_H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fltq.h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLEQ_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fleq.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLTQ_S"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fltq.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLEQ_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fleq.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FLTQ_D"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fltq.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FCVTMOD_W_D"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fcvtmod.w.d"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"rtz"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSETVLI"},[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsetvli"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vtype_assembly"},[{"MP_tuple":[[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSETVL"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsetvl"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSETIVLI"},[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsetivli"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vtype_assembly"},[{"MP_tuple":[[{"MP_id":[{"Id":"ma"}]},{"MP_id":[{"Id":"ta"}]},{"MP_id":[{"Id":"sew"}]},{"MP_id":[{"Id":"lmul"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"NVSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"nvstype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"NVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"nvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MASKTYPEV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmerge.vvm"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MOVETYPEV"},[{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmv.v.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vxtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"NXSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"nxstype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"NXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"nxtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VXSG"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vxsg_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MASKTYPEX"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmerge.vxm"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MOVETYPEX"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmv.v.x"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VITYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vitype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"NISTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"nistype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"NITYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"nitype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VISG"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"visg_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MASKTYPEI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmerge.vim"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MOVETYPEI"},[{"MP_id":[{"Id":"vd"}]},{"MP_id":[{"Id":"simm"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmv.v.i"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VMVRTYPE"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"nreg"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmv"}]},{"MP_app":[{"Id":"nreg_string"},[{"MP_id":[{"Id":"nreg"}]}]]},{"MP_lit":[{"L_string":"r.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"mvvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MVVMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"mvvmatype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"wvvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"wvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WMVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"wmvvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VEXTTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vexttype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VMVXS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmv.x.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MVVCOMPRESS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vcompress.vm"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MVXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"mvxtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MVXMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"mvxmatype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WVXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"wvxtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"wxtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WMVXTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"wmvxtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VMVSX"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmv.s.x"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fvvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FVVMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fvvmatype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FWVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fwvvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FWVVMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fwvvmatype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FWVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fwvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFUNARY0"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfunary0"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vfunary0_mnemonic"},[{"MP_id":[{"Id":"vfunary0"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFWUNARY0"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfwunary0"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vfwunary0_mnemonic"},[{"MP_id":[{"Id":"vfwunary0"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFNUNARY0"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfnunary0"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vfnunary0_mnemonic"},[{"MP_id":[{"Id":"vfnunary0"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFUNARY1"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vfunary1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vfunary1_mnemonic"},[{"MP_id":[{"Id":"vfunary1"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFMVFS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfmv.f.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FVFTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fvftype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FVFMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fvfmatype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FWVFTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fwvftype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FWVFMATYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fwvfmatype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FWFTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fwftype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFMERGE"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfmerge.vfm"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFMV"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfmv.v.f"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFMVSF"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfmv.s.f"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VLSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vl"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"e"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VLSEGFFTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vl"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"e"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":"ff.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vs"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"e"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VLSSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vls"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"e"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSSSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vss"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"e"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VLUXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vlux"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"ei"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VLOXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vlox"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"ei"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSUXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsux"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"ei"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSOXSEGTYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vs3"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsox"}]},{"MP_app":[{"Id":"nfields_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"ei"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VLRETYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"width"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vl"}]},{"MP_app":[{"Id":"nfields_pow2_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"re"}]},{"MP_app":[{"Id":"vlewidth_bitsnumberstr"},[{"MP_id":[{"Id":"width"}]}]]},{"MP_lit":[{"L_string":".v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSRETYPE"},[{"MP_id":[{"Id":"nf"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vs3"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vs"}]},{"MP_app":[{"Id":"nfields_pow2_string"},[{"MP_id":[{"Id":"nf"}]}]]},{"MP_lit":[{"L_string":"r.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VMTYPE"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd_or_vs3"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vmtype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd_or_vs3"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"MMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"mmtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCPOP_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vcpop.m"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFIRST_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfirst.m"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VMSBF_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmsbf.m"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VMSIF_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmsif.m"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VMSOF_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vmsof.m"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VIOTA_M"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"viota.m"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VID_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vid.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VVMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vvmtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VVMCTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vvmctype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VVMSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vvmstype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VVCMPTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vvcmptype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VXMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vxmtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VXMCTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vxmctype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VXMSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vxmstype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VXCMPTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vxcmptype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VIMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vimtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VIMCTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vimctype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VIMSTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vimstype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"v0"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VICMPTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"simm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vicmptype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_signed_5"},[{"MP_id":[{"Id":"simm"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FVVMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fvvmtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FVFMTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"fvfmtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RIVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"rivvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RMVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"rmvvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"RFVVTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"rfvvtype_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA256SIG0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha256sig0"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA256SIG1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha256sig1"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA256SUM0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha256sum0"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA256SUM1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha256sum1"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES32ESMI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes32esmi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"bs"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES32ESI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes32esi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"bs"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES32DSMI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes32dsmi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"bs"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES32DSI"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes32dsi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"bs"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SIG0L"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sig0l"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SIG0H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sig0h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SIG1L"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sig1l"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SIG1H"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sig1h"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SUM0R"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sum0r"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SUM1R"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sum1r"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES64KS1I"},[{"MP_id":[{"Id":"rnum"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes64ks1i"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_4"},[{"MP_id":[{"Id":"rnum"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES64KS2"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes64ks2"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES64IM"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes64im"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES64ESM"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes64esm"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES64ES"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes64es"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES64DSM"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes64dsm"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"AES64DS"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"aes64ds"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SIG0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sig0"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SIG1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sig1"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SUM0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sum0"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SHA512SUM1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sha512sum1"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SM3P0"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sm3p0"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SM3P1"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sm3p1"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SM4ED"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sm4ed"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"bs"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SM4KS"},[{"MP_id":[{"Id":"bs"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sm4ks"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_2"},[{"MP_id":[{"Id":"bs"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBKB_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zbkb_rtype_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZBKB_PACKW"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"packw"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZIP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"zip"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"UNZIP"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"unzip"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"BREV8"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"brev8"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"XPERM8"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"xperm8"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"XPERM4"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"xperm4"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VANDN_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vandn.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VANDN_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vandn.vx"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VBREV_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vbrev.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VBREV8_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vbrev8.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VREV8_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vrev8.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCLZ_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vclz.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCTZ_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vctz.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCPOP_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vcpop.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VROL_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vrol.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VROL_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vrol.vx"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VROR_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vror.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VROR_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vror.vx"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VROR_VI"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vror.vi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_6"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VWSLL_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vwsll.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VWSLL_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vwsll.vx"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VWSLL_VI"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vwsll.vi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"uimm"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCLMUL_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vclmul.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCLMUL_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vclmul.vx"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCLMULH_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vclmulh.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VCLMULH_VX"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vclmulh.vx"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VGHSH_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vghsh.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VGMUL_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vgmul.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VAESDF"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vaesdf_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VAESDM"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vaesdm_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VAESEF"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vaesef_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VAESEM"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vaesem_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VAESKF1_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rnd"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vaeskf1.vi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"rnd"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VAESKF2_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"rnd"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vaeskf2.vi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"rnd"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VAESZ_VS"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vaesz.vs"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSM4K_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsm4k.vi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"uimm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZVKSM4RTYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vsm4r_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSHA2MS_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsha2ms.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZVKSHA2TYPE"},[{"MP_id":[{"Id":"funct6"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"vsha2_mnemonic"},[{"MP_id":[{"Id":"funct6"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSM3ME_VV"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsm3me.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VSM3C_VI"},[{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"uimm"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vsm3c.vi"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"uimm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CSRImm"},[{"MP_id":[{"Id":"csr"}]},{"MP_id":[{"Id":"imm"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"csr_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_lit":[{"L_string":"i"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"csr_name_map"},[{"MP_id":[{"Id":"csr"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_5"},[{"MP_id":[{"Id":"imm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"CSRReg"},[{"MP_id":[{"Id":"csr"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"csr_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"csr_name_map"},[{"MP_id":[{"Id":"csr"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SINVAL_VMA"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rs2"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"sinval.vma"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SFENCE_W_INVAL"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sfence.w.inval"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"SFENCE_INVAL_IR"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sfence.inval.ir"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WRS"},[{"MP_id":[{"Id":"WRS_STO"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"wrs.sto"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"WRS"},[{"MP_id":[{"Id":"WRS_NTO"}]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"wrs.nto"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZICOND_RTYPE"},[{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]},{"MP_id":[{"Id":"op"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"zicond_mnemonic"},[{"MP_id":[{"Id":"op"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZICBOM"},[{"MP_id":[{"Id":"cbop"}]},{"MP_id":[{"Id":"rs1"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_app":[{"Id":"cbop_mnemonic"},[{"MP_id":[{"Id":"cbop"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZICBOZ"},[{"MP_id":[{"Id":"rs1"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"cbo.zero"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":"("}]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"opt_spc"},[{"MP_lit":["L_unit"]}]]},{"MP_lit":[{"L_string":")"}]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FENCEI"},[{"MP_lit":["L_unit"]}]]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fence.i"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FCVT_BF16_S"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fcvt.bf16.s"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"FCVT_S_BF16"},[{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rm"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"fcvt.s.bf16"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"frm_mnemonic"},[{"MP_id":[{"Id":"rm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFNCVTBF16_F_F_W"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfncvtbf16.f.f.w"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFWCVTBF16_F_F_V"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfwcvtbf16.f.f.v"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFWMACCBF16_VV"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfwmaccbf16.vv"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"VFWMACCBF16_VF"},[{"MP_id":[{"Id":"vm"}]},{"MP_id":[{"Id":"vs2"}]},{"MP_id":[{"Id":"vs1"}]},{"MP_id":[{"Id":"vd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"vfwmaccbf16.vf"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"freg_name"},[{"MP_id":[{"Id":"vs1"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"vreg_name"},[{"MP_id":[{"Id":"vs2"}]}]]},{"MP_app":[{"Id":"maybe_vmask"},[{"MP_id":[{"Id":"vm"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZIMOP_MOP_R"},[{"MP_id":[{"Id":"mop"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"mop.r."}]},{"MP_app":[{"Id":"dec_bits_5"},[{"MP_id":[{"Id":"mop"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZIMOP_MOP_RR"},[{"MP_id":[{"Id":"mop"}]},{"MP_id":[{"Id":"rs2"}]},{"MP_id":[{"Id":"rs1"}]},{"MP_id":[{"Id":"rd"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"mop.rr."}]},{"MP_app":[{"Id":"dec_bits_3"},[{"MP_id":[{"Id":"mop"}]}]]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rd"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs1"}]}]]},{"MP_app":[{"Id":"sep"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"reg_name"},[{"MP_id":[{"Id":"rs2"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ZCMOP"},[{"MP_id":[{"Id":"mop"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.mop."}]},{"MP_app":[{"Id":"dec_bits_4"},[{"MP_vector_concat":[[{"MP_typ":[{"MP_id":[{"Id":"mop"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[3]}]}]]}]},{"MP_lit":[{"L_bin":"1"}]}]]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"ILLEGAL"},[{"MP_id":[{"Id":"s"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"illegal"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_32"},[{"MP_id":[{"Id":"s"}]}]]}]]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_app":[{"Id":"C_ILLEGAL"},[{"MP_id":[{"Id":"s"}]}]]}]},{"MPat_pat":[{"MP_string_append":[[{"MP_lit":[{"L_string":"c.illegal"}]},{"MP_app":[{"Id":"spc"},[{"MP_lit":["L_unit"]}]]},{"MP_app":[{"Id":"hex_bits_16"},[{"MP_id":[{"Id":"s"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"instruction"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"print_insn"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"print_insn"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"instruction"}]},{"P_id":[{"Id":"insn"}]}]},{"E_app":[{"Id":"assembly_forwards"},[{"E_id":[{"Id":"insn"}]}]]}]}]}]]}},{"DEF_overload":[{"Id":"to_str"},[{"Id":"print_insn"}]]},{"DEF_pragma":["file_end","postlude/insts_end.sail"]},{"DEF_pragma":["file_start","postlude/csr_end.sail"]},{"DEF_mapdef":{"MD_mapping":[{"Id":"csr_name_map"},{"Typ_annot_opt_none":[]},[{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"301"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"misa"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"300"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mstatus"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"310"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mstatush"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"747"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mseccfg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"757"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mseccfgh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"30A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"menvcfg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"31A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"menvcfgh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"10A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"senvcfg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"304"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mie"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"344"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mip"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"302"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"medeleg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"312"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"medelegh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"303"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mideleg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"342"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mcause"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"343"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mtval"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"340"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mscratch"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"106"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"scounteren"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"306"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mcounteren"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"320"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mcountinhibit"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"F11"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mvendorid"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"F12"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"marchid"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"F13"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mimpid"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"F14"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhartid"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"F15"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mconfigptr"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"100"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sstatus"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"144"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sip"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"104"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sie"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"140"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sscratch"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"142"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"scause"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"143"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"stval"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"7A0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"tselect"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"7A1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"tdata1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"7A2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"tdata2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"7A3"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"tdata3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"105"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"stvec"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"141"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"sepc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"305"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mtvec"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"341"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mepc"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A3"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A5"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A6"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3A9"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3AA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3AB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3AC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3AD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3AE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3AF"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpcfg15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr0"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr1"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr2"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B3"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B5"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B6"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3B9"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3BA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3BB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3BC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3BD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3BE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3BF"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr17"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr18"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C3"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr19"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr20"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C5"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr21"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C6"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr22"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr23"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr24"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3C9"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr25"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3CA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr26"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3CB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr27"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3CC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr28"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3CD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr29"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3CE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr30"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3CF"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr31"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr32"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr33"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr34"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D3"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr35"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr36"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D5"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr37"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D6"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr38"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr39"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr40"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3D9"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr41"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3DA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr42"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3DB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr43"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3DC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr44"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3DD"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr45"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3DE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr46"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3DF"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr47"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr48"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E1"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr49"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E2"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr50"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E3"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr51"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E4"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr52"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E5"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr53"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E6"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr54"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E7"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr55"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E8"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr56"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3E9"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr57"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3EA"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr58"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3EB"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr59"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3EC"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr60"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3ED"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr61"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3EE"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr62"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"3EF"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"pmpaddr63"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"001"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fflags"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"002"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"frm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"003"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"fcsr"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"008"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vstart"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"009"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vxsat"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"00A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vxrm"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"00F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vcsr"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C20"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vl"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C21"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vtype"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C22"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"vlenb"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"321"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mcyclecfg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"721"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mcyclecfgh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"322"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"minstretcfg"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"722"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"minstretcfgh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"180"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"satp"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"015"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"seed"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C03"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C04"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C05"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C06"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C07"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C08"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C09"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C0A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C0B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C0C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C0D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C0E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C0F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C10"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C11"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter17"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C12"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter18"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C13"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter19"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C14"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter20"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C15"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter21"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter22"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C17"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter23"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C18"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter24"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C19"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter25"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C1A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter26"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C1B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter27"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C1C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter28"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C1D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter29"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C1E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter30"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C1F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter31"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C83"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter3h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C84"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter4h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C85"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter5h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C86"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter6h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C87"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter7h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C88"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter8h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C89"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter9h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C8A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter10h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C8B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter11h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C8C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter12h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C8D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter13h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C8E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter14h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C8F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter15h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C90"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter16h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C91"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter17h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C92"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter18h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C93"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter19h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C94"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter20h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C95"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter21h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C96"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter22h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C97"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter23h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C98"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter24h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C99"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter25h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C9A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter26h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C9B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter27h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C9C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter28h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C9D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter29h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C9E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter30h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C9F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"hpmcounter31h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"323"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"324"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"325"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"326"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"327"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"328"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"329"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"32A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"32B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"32C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"32D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"32E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"32F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"330"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"331"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent17"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"332"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent18"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"333"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent19"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"334"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent20"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"335"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent21"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"336"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent22"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"337"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent23"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"338"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent24"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"339"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent25"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"33A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent26"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"33B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent27"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"33C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent28"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"33D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent29"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"33E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent30"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"33F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent31"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B03"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter3"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B04"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter4"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B05"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter5"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B06"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter6"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B07"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter7"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B08"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter8"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B09"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter9"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B0A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter10"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B0B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter11"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B0C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter12"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B0D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter13"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B0E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter14"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B0F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter15"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B10"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter16"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B11"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter17"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B12"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter18"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B13"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter19"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B14"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter20"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B15"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter21"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B16"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter22"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B17"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter23"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B18"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter24"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B19"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter25"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B1A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter26"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B1B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter27"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B1C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter28"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B1D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter29"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B1E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter30"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B1F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter31"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B83"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter3h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B84"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter4h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B85"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter5h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B86"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter6h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B87"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter7h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B88"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter8h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B89"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter9h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B8A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter10h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B8B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter11h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B8C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter12h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B8D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter13h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B8E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter14h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B8F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter15h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B90"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter16h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B91"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter17h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B92"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter18h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B93"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter19h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B94"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter20h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B95"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter21h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B96"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter22h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B97"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter23h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B98"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter24h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B99"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter25h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B9A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter26h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B9B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter27h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B9C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter28h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B9D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter29h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B9E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter30h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B9F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmcounter31h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"723"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent3h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"724"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent4h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"725"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent5h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"726"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent6h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"727"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent7h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"728"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent8h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"729"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent9h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"72A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent10h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"72B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent11h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"72C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent12h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"72D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent13h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"72E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent14h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"72F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent15h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"730"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent16h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"731"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent17h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"732"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent18h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"733"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent19h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"734"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent20h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"735"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent21h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"736"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent22h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"737"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent23h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"738"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent24h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"739"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent25h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"73A"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent26h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"73B"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent27h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"73C"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent28h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"73D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent29h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"73E"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent30h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"73F"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mhpmevent31h"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"DA0"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"scountovf"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"14D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"stimecmp"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"15D"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"stimecmph"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C00"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"cycle"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C01"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"time"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C02"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"instret"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C80"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"cycleh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C81"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"timeh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"C82"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"instreth"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B00"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mcycle"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B02"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"minstret"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B80"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"mcycleh"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_lit":[{"L_hex":"B82"}]}]},{"MPat_pat":[{"MP_lit":[{"L_string":"minstreth"}]}]}]},{"MCL_bidir":[{"MPat_pat":[{"MP_id":[{"Id":"reg"}]}]},{"MPat_pat":[{"MP_app":[{"Id":"hex_bits_12"},[{"MP_id":[{"Id":"reg"}]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"301"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"300"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"310"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"747"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkr"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"757"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkr"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"30A"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"31A"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"10A"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"304"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"344"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"302"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"312"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"303"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"342"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"343"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"340"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"106"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"306"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"320"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"F11"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"F12"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"F13"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"F14"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"F15"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"100"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"144"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"104"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"140"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"142"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"143"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"7A0"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"105"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"141"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"305"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"341"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3A"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"sys_pmp_count"}]},{"E_app":[{"Id":"mult_atom"},[{"E_lit":[{"L_num":4}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"idx"}]}]]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"idx"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3B"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"sys_pmp_count"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"00"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3C"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"sys_pmp_count"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"01"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3D"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"sys_pmp_count"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"10"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3E"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gt_int"},[{"E_id":[{"Id":"sys_pmp_count"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"11"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"001"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"002"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"003"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_F"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zfinx"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"008"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"009"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"00A"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"00F"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C20"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C21"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C22"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"321"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Smcntrpmf"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"721"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Smcntrpmf"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"322"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Smcntrpmf"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"722"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Smcntrpmf"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"180"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"Supervisor"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_TVM"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"015"}]},{"P_id":[{"Id":"priv"}]},{"P_id":[{"Id":"is_write"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zkr"}]}]]},{"E_app":[["And_Bool"],[{"E_id":[{"Id":"is_write"}]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_match":[{"E_id":[{"Id":"priv"}]},[{"Pat_exp":[{"P_id":[{"Id":"Machine"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_id":[{"Id":"Supervisor"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Seccfg_SSEED"},[{"E_id":[{"Id":"mseccfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"User"}]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Seccfg_USEED"},[{"E_id":[{"Id":"mseccfg"}]}]]},{"E_lit":[{"L_bin":"1"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualSupervisor"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/K/zkr_control.sail"}]},{"E_lit":[{"L_num":52}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"VirtualUser"}]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"extensions/K/zkr_control.sail"}]},{"E_lit":[{"L_num":53}]},{"E_lit":[{"L_string":"Hypervisor extension not supported"}]}]]}]}]]}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"0011001"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihpm"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1011000"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihpm"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1011100"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihpm"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1100000"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihpm"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_id":[{"Id":"priv"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1100100"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zihpm"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_U"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_id":[{"Id":"priv"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"0111001"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sscofpmf"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"DA0"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sscofpmf"}]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"14D"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sstc"}]}]]},{"E_app":[{"Id":"sstc_CSRs_accessible"},[{"E_id":[{"Id":"priv"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"15D"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Sstc"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"sstc_CSRs_accessible"},[{"E_id":[{"Id":"priv"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C00"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"priv"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C01"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"priv"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C02"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"priv"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C80"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_lit":[{"L_num":0}]},{"E_id":[{"Id":"priv"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C81"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_lit":[{"L_num":1}]},{"E_id":[{"Id":"priv"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"C82"}]},{"P_id":[{"Id":"priv"}]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"counter_enabled"},[{"E_lit":[{"L_num":2}]},{"E_id":[{"Id":"priv"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"B00"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"B02"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"B80"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"B82"}]},{"P_wild":[]},{"P_wild":[]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zicntr"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"is_CSR_accessible"},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"301"}]},{"E_field":[{"E_id":[{"Id":"misa"}]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"300"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"310"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"747"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"757"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"30A"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"menvcfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"31A"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"menvcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"10A"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"senvcfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"304"}]},{"E_field":[{"E_id":[{"Id":"mie"}]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"344"}]},{"E_field":[{"E_id":[{"Id":"mip"}]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"302"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"312"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"303"}]},{"E_field":[{"E_id":[{"Id":"mideleg"}]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"342"}]},{"E_field":[{"E_id":[{"Id":"mcause"}]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"343"}]},{"E_id":[{"Id":"mtval"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"340"}]},{"E_id":[{"Id":"mscratch"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"106"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"scounteren"}]},{"Id":"bits"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"306"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"mcounteren"}]},{"Id":"bits"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"320"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"mcountinhibit"}]},{"Id":"bits"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"F11"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"mvendorid"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"F12"}]},{"E_id":[{"Id":"marchid"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"F13"}]},{"E_id":[{"Id":"mimpid"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"F14"}]},{"E_id":[{"Id":"mhartid"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"F15"}]},{"E_id":[{"Id":"mconfigptr"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"100"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_app":[{"Id":"lower_mstatus"},[{"E_id":[{"Id":"mstatus"}]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"144"}]},{"E_field":[{"E_app":[{"Id":"lower_mip"},[{"E_id":[{"Id":"mip"}]},{"E_id":[{"Id":"mideleg"}]}]]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"104"}]},{"E_field":[{"E_app":[{"Id":"lower_mie"},[{"E_id":[{"Id":"mie"}]},{"E_id":[{"Id":"mideleg"}]}]]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"140"}]},{"E_id":[{"Id":"sscratch"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"142"}]},{"E_field":[{"E_id":[{"Id":"scause"}]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"143"}]},{"E_id":[{"Id":"stval"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"7A0"}]},{"E_app":[{"Id":"not_vec"},[{"E_id":[{"Id":"tselect"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"105"}]},{"E_app":[{"Id":"get_stvec"},[{"E_lit":["L_unit"]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"141"}]},{"E_app":[{"Id":"get_xepc"},[{"E_id":[{"Id":"Supervisor"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"305"}]},{"E_app":[{"Id":"get_mtvec"},[{"E_lit":["L_unit"]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"341"}]},{"E_app":[{"Id":"get_xepc"},[{"E_id":[{"Id":"Machine"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3A"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"idx"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_app":[{"Id":"pmpReadCfgReg"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"idx"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3B"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"00"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3C"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"01"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3D"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"10"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3E"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"11"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"001"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Fcsr_FFLAGS"},[{"E_id":[{"Id":"fcsr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"002"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"003"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"fcsr"}]},{"Id":"bits"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"008"}]},{"E_id":[{"Id":"vstart"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"009"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Vcsr_vxsat"},[{"E_id":[{"Id":"vcsr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"00A"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Vcsr_vxrm"},[{"E_id":[{"Id":"vcsr"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"00F"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"vcsr"}]},{"Id":"bits"}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"C20"}]},{"E_id":[{"Id":"vl"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"C21"}]},{"E_field":[{"E_id":[{"Id":"vtype"}]},{"Id":"bits"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"C22"}]},{"E_id":[{"Id":"VLENB"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"321"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mcyclecfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"721"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mcyclecfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"322"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"minstretcfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"722"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"minstretcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"180"}]},{"E_id":[{"Id":"satp"}]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"015"}]},{"E_app":[{"Id":"read_seed_csr"},[{"E_lit":["L_unit"]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_vector_concat":[[{"P_lit":[{"L_bin":"0011001"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"read_mhpmevent"},[{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1011000"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"read_mhpmcounter"},[{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1011100"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]}]}]]},{"E_app":[{"Id":"read_mhpmcounterh"},[{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1100000"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_app":[{"Id":"read_mhpmcounter"},[{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1100100"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]}]}]]},{"E_app":[{"Id":"read_mhpmcounterh"},[{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_vector_concat":[[{"P_lit":[{"L_bin":"0111001"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]}]}]]},{"E_app":[{"Id":"read_mhpmeventh"},[{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"DA0"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"get_scountovf"},[{"E_id":[{"Id":"cur_privilege"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"14D"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"stimecmp"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"15D"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"stimecmp"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"C00"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mcycle"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"C01"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtime"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"C02"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"minstret"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"C80"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mcycle"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"C81"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mtime"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"C82"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"minstret"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"B00"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mcycle"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_lit":[{"L_hex":"B02"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"minstret"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"B80"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mcycle"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_when":[{"P_lit":[{"L_hex":"B82"}]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"minstret"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]}]},{"FCL_funcl":[{"Id":"read_CSR"},{"Pat_exp":[{"P_id":[{"Id":"csr"}]},{"E_block":[[{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"postlude/csr_end.sail"}]},{"E_lit":[{"L_num":17}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Read from CSR that does not exist: "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"csr"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"301"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"misa"}]},{"E_app":[{"Id":"legalize_misa"},[{"E_id":[{"Id":"misa"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"misa"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"300"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mstatus"}]},{"E_app":[{"Id":"legalize_mstatus"},[{"E_id":[{"Id":"mstatus"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"300"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mstatus"}]},{"E_app":[{"Id":"legalize_mstatus"},[{"E_id":[{"Id":"mstatus"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"value"}]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"310"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mstatus"}]},{"E_app":[{"Id":"legalize_mstatus"},[{"E_id":[{"Id":"mstatus"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mstatus"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"747"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mseccfg"}]},{"E_app":[{"Id":"legalize_mseccfg"},[{"E_id":[{"Id":"mseccfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"value"}]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"747"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mseccfg"}]},{"E_app":[{"Id":"legalize_mseccfg"},[{"E_id":[{"Id":"mseccfg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"757"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mseccfg"}]},{"E_app":[{"Id":"legalize_mseccfg"},[{"E_id":[{"Id":"mseccfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mseccfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"30A"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"menvcfg"}]},{"E_app":[{"Id":"legalize_menvcfg"},[{"E_id":[{"Id":"menvcfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"menvcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"value"}]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"menvcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"30A"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"menvcfg"}]},{"E_app":[{"Id":"legalize_menvcfg"},[{"E_id":[{"Id":"menvcfg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"menvcfg"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"31A"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"menvcfg"}]},{"E_app":[{"Id":"legalize_menvcfg"},[{"E_id":[{"Id":"menvcfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"menvcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"menvcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"10A"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"senvcfg"}]},{"E_app":[{"Id":"legalize_senvcfg"},[{"E_id":[{"Id":"senvcfg"}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"value"}]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"senvcfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"304"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mie"}]},{"E_app":[{"Id":"legalize_mie"},[{"E_id":[{"Id":"mie"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"mie"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"344"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mip"}]},{"E_app":[{"Id":"legalize_mip"},[{"E_id":[{"Id":"mip"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"mip"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"302"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"medeleg"}]},{"E_app":[{"Id":"legalize_medeleg"},[{"E_id":[{"Id":"medeleg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"302"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"medeleg"}]},{"E_app":[{"Id":"legalize_medeleg"},[{"E_id":[{"Id":"medeleg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"value"}]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"312"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"medeleg"}]},{"E_app":[{"Id":"legalize_medeleg"},[{"E_id":[{"Id":"medeleg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"medeleg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"303"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mideleg"}]},{"E_app":[{"Id":"legalize_mideleg"},[{"E_id":[{"Id":"mideleg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"mideleg"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"342"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_field":[{"LE_id":[{"Id":"mcause"}]},{"Id":"bits"}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"mcause"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"343"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mtval"}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"mtval"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"340"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mscratch"}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"mscratch"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"106"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"scounteren"}]},{"E_app":[{"Id":"legalize_scounteren"},[{"E_id":[{"Id":"scounteren"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"scounteren"}]},{"Id":"bits"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"306"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mcounteren"}]},{"E_app":[{"Id":"legalize_mcounteren"},[{"E_id":[{"Id":"mcounteren"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"mcounteren"}]},{"Id":"bits"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"320"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mcountinhibit"}]},{"E_app":[{"Id":"legalize_mcountinhibit"},[{"E_id":[{"Id":"mcountinhibit"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"mcountinhibit"}]},{"Id":"bits"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"100"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mstatus"}]},{"E_app":[{"Id":"legalize_sstatus"},[{"E_id":[{"Id":"mstatus"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_app":[{"Id":"lower_mstatus"},[{"E_id":[{"Id":"mstatus"}]}]]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"144"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mip"}]},{"E_app":[{"Id":"legalize_sip"},[{"E_id":[{"Id":"mip"}]},{"E_id":[{"Id":"mideleg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_app":[{"Id":"lower_mip"},[{"E_id":[{"Id":"mip"}]},{"E_id":[{"Id":"mideleg"}]}]]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"104"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mie"}]},{"E_app":[{"Id":"legalize_sie"},[{"E_id":[{"Id":"mie"}]},{"E_id":[{"Id":"mideleg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_app":[{"Id":"lower_mie"},[{"E_id":[{"Id":"mie"}]},{"E_id":[{"Id":"mideleg"}]}]]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"140"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"sscratch"}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"sscratch"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"142"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_field":[{"LE_id":[{"Id":"scause"}]},{"Id":"bits"}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"scause"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"143"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"stval"}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"stval"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"7A0"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"tselect"}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"tselect"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"105"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"set_stvec"},[{"E_id":[{"Id":"value"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"141"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"set_xepc"},[{"E_id":[{"Id":"Supervisor"}]},{"E_id":[{"Id":"value"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"305"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"set_mtvec"},[{"E_id":[{"Id":"value"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"341"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"set_xepc"},[{"E_id":[{"Id":"Machine"}]},{"E_id":[{"Id":"value"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3A"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_bit"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"idx"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"idx"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"pmpWriteCfgReg"},[{"E_id":[{"Id":"idx"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"pmpReadCfgReg"},[{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3B"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"00"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"pmpWriteAddrReg"},[{"E_id":[{"Id":"idx"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3C"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"01"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"pmpWriteAddrReg"},[{"E_id":[{"Id":"idx"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3D"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"10"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"pmpWriteAddrReg"},[{"E_id":[{"Id":"idx"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_hex":"3E"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[4]}]}]]},{"P_id":[{"Id":"idx"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"idx"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_lit":[{"L_bin":"11"}]},{"E_id":[{"Id":"idx"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"pmpWriteAddrReg"},[{"E_id":[{"Id":"idx"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"pmpReadAddrReg"},[{"E_id":[{"Id":"idx"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"001"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"write_fcsr"},[{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Fcsr_FFLAGS"},[{"E_id":[{"Id":"fcsr"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"002"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"write_fcsr"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"_get_Fcsr_FFLAGS"},[{"E_id":[{"Id":"fcsr"}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Fcsr_FRM"},[{"E_id":[{"Id":"fcsr"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"003"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"write_fcsr"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_num":5}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":4}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"fcsr"}]},{"Id":"bits"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"008"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"set_vstart"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"vstart"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"009"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"ext_write_vcsr"},[{"E_app":[{"Id":"_get_Vcsr_vxrm"},[{"E_id":[{"Id":"vcsr"}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Vcsr_vxsat"},[{"E_id":[{"Id":"vcsr"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"00A"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"ext_write_vcsr"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"_get_Vcsr_vxsat"},[{"E_id":[{"Id":"vcsr"}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"_get_Vcsr_vxrm"},[{"E_id":[{"Id":"vcsr"}]}]]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"00F"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_app":[{"Id":"ext_write_vcsr"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":2}]},{"E_lit":[{"L_num":1}]}]]},{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"value"}]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_field":[{"E_id":[{"Id":"vcsr"}]},{"Id":"bits"}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"321"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mcyclecfg"}]},{"E_app":[{"Id":"legalize_smcntrpmf"},[{"E_id":[{"Id":"mcyclecfg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_field":[{"E_id":[{"Id":"mcyclecfg"}]},{"Id":"bits"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"321"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mcyclecfg"}]},{"E_app":[{"Id":"legalize_smcntrpmf"},[{"E_id":[{"Id":"mcyclecfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mcyclecfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"value"}]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mcyclecfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"721"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"mcyclecfg"}]},{"E_app":[{"Id":"legalize_smcntrpmf"},[{"E_id":[{"Id":"mcyclecfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mcyclecfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"mcyclecfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"322"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"minstretcfg"}]},{"E_app":[{"Id":"legalize_smcntrpmf"},[{"E_id":[{"Id":"minstretcfg"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"minstretcfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"322"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"minstretcfg"}]},{"E_app":[{"Id":"legalize_smcntrpmf"},[{"E_id":[{"Id":"minstretcfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"minstretcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]},{"E_id":[{"Id":"value"}]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"minstretcfg"}]},{"Id":"bits"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"722"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"minstretcfg"}]},{"E_app":[{"Id":"legalize_smcntrpmf"},[{"E_id":[{"Id":"minstretcfg"}]},{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"value"}]},{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"minstretcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"minstretcfg"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"180"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"satp"}]},{"E_app":[{"Id":"legalize_satp"},[{"E_app":[{"Id":"architecture"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_id":[{"Id":"satp"}]},{"E_id":[{"Id":"value"}]}]]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"satp"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"015"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"write_seed_csr"},[{"E_lit":["L_unit"]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"0011001"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_mhpmevent"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"read_mhpmevent"},[{"E_id":[{"Id":"index"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1011000"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_mhpmcounter"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"read_mhpmcounter"},[{"E_id":[{"Id":"index"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"1011100"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_mhpmcounterh"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"read_mhpmcounterh"},[{"E_id":[{"Id":"index"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_vector_concat":[[{"P_lit":[{"L_bin":"0111001"}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[5]}]}]]},{"P_id":[{"Id":"index"}]}]}]]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gteq_int"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"index"}]}]]},{"E_lit":[{"L_num":3}]}]]}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"index"}]},{"E_app":[{"Id":"hpmidx_from_bits"},[{"E_id":[{"Id":"index"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"write_mhpmeventh"},[{"E_id":[{"Id":"index"}]},{"E_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"read_mhpmeventh"},[{"E_id":[{"Id":"index"}]}]]}]]}]]}]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"14D"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"stimecmp"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"stimecmp"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"15D"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"stimecmp"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"stimecmp"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"B00"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"mcycle"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"value"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_lit":[{"L_hex":"B02"}]},{"P_id":[{"Id":"value"}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"minstret"}]},{"E_app":[{"Id":"sub_atom"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"value"}]}]},{"E_assign":[{"LE_id":[{"Id":"minstret_increment"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"value"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"B80"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"mcycle"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]},{"E_id":[{"Id":"value"}]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"value"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_when":[{"P_tuple":[[{"P_lit":[{"L_hex":"B82"}]},{"P_id":[{"Id":"value"}]}]]},{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_id":[{"Id":"minstret"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]},{"E_id":[{"Id":"value"}]}]},{"E_assign":[{"LE_id":[{"Id":"minstret_increment"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"Ok"},[{"E_id":[{"Id":"value"}]}]]}]]}]}]},{"FCL_funcl":[{"Id":"write_CSR"},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"csr"}]},{"P_wild":[]}]]},{"E_block":[[{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"postlude/csr_end.sail"}]},{"E_lit":[{"L_num":23}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Write to CSR that does not exist: "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"csr"}]}]]}]]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/csr_end.sail"]},{"DEF_pragma":["file_start","postlude/step_common.sail"]},{"DEF_type":{"TD_variant":[{"Id":"HartState"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"unit"}]},{"Id":"HART_ACTIVE"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"WaitReason"}]},{"Typ_id":[{"Id":"instbits"}]}]]},{"Id":"HART_WAITING"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"HartState"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"hart_is_active"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hart_is_active"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"HartState"}]},{"P_id":[{"Id":"s"}]}]},{"E_match":[{"E_id":[{"Id":"s"}]},[{"Pat_exp":[{"P_app":[{"Id":"HART_ACTIVE"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"HART_WAITING"},[{"P_wild":[]}]]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"HartState"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"hart_is_waiting"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"hart_is_waiting"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"HartState"}]},{"P_id":[{"Id":"s"}]}]},{"E_match":[{"E_id":[{"Id":"s"}]},[{"Pat_exp":[{"P_app":[{"Id":"HART_ACTIVE"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_app":[{"Id":"HART_WAITING"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]}]]}]}]}]]}},{"DEF_type":{"TD_variant":[{"Id":"FetchResult"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_id":[{"Id":"ext_fetch_addr_error"}]},{"Id":"F_Ext_Error"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"word"}]},{"Id":"F_Base"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"half"}]},{"Id":"F_RVC"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"ExceptionType"}]},{"Typ_id":[{"Id":"xlenbits"}]}]]},{"Id":"F_Error"}]}],false]}},{"DEF_pragma":["file_end","postlude/step_common.sail"]},{"DEF_pragma":["file_start","postlude/step_ext.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"FetchResult"}]}],{"Typ_id":[{"Id":"FetchResult"}]}]}]},{"Id":"ext_fetch_hook"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_fetch_hook"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"FetchResult"}]},{"P_id":[{"Id":"f"}]}]},{"E_id":[{"Id":"f"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_pre_step_hook"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_pre_step_hook"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_post_step_hook"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_post_step_hook"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"ext_reset"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_reset"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_lit":["L_unit"]}]}]}]]}},{"DEF_pragma":["file_end","postlude/step_ext.sail"]},{"DEF_pragma":["file_start","postlude/decode_ext.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"instruction"}]}]}]},{"Id":"ext_decode_compressed"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_decode_compressed"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]},{"P_id":[{"Id":"bv"}]}]},{"E_app":[{"Id":"encdec_compressed_backwards"},[{"E_id":[{"Id":"bv"}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]}],{"Typ_id":[{"Id":"instruction"}]}]}]},{"Id":"ext_decode"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_decode"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"bv"}]}]},{"E_app":[{"Id":"encdec_backwards"},[{"E_id":[{"Id":"bv"}]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/decode_ext.sail"]},{"DEF_pragma":["file_start","postlude/fetch_rvfi.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"FetchResult"}]}]}]},{"Id":"rvfi_fetch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"rvfi_fetch"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]},{"E_id":[{"Id":"minstret"}]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_pc_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":0}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"get_arch_pc"},[{"E_lit":["L_unit"]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":159}]},{"E_lit":[{"L_num":152}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"privLevel_to_bits"},[{"E_id":[{"Id":"cur_privilege"}]}]]}]]}]},{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":167}]},{"E_lit":[{"L_num":160}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":8}]},{"E_app":[{"Id":"_get_Misa_MXL"},[{"E_id":[{"Id":"misa"}]}]]}]]}]},{"E_match":[{"E_app":[{"Id":"ext_fetch_check_pc"},[{"E_id":[{"Id":"PC"}]},{"E_id":[{"Id":"PC"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"F_Ext_Error"},[{"E_id":[{"Id":"e"}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_app":[{"Id":"E_Fetch_Addr_Align"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"PC"}]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"PC"}]}]]},{"E_app":[{"Id":"InstructionFetch"},[{"E_lit":["L_unit"]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_return":[{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"PC"}]}]]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]}]]},{"E_lit":["L_unit"]}]}]]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"i"}]},{"E_app":[{"Id":"_get_RVFI_DII_Instruction_Packet_rvfi_insn"},[{"E_id":[{"Id":"rvfi_instruction"}]}]]}]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"i"}]}]]}]},{"E_if":[{"E_app":[{"Id":"neq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_bin":"11"}]}]]},{"E_return":[{"E_app":[{"Id":"F_RVC"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"PC_hi"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"ext_fetch_check_pc"},[{"E_id":[{"Id":"PC"}]},{"E_id":[{"Id":"PC_hi"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"F_Ext_Error"},[{"E_id":[{"Id":"e"}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"PC_hi"}]}]]},{"E_app":[{"Id":"InstructionFetch"},[{"E_lit":["L_unit"]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"PC"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"F_Base"},[{"E_id":[{"Id":"i"}]}]]}]}]]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/fetch_rvfi.sail"]},{"DEF_pragma":["file_start","postlude/fetch.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[16]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"isRVC"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"isRVC"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"half"}]},{"P_id":[{"Id":"h"}]}]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"h"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":[{"L_bin":"11"}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"FetchResult"}]}]}]},{"Id":"fetch"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"fetch"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_rvfi"},[{"E_lit":["L_unit"]}]]},{"E_return":[{"E_app":[{"Id":"rvfi_fetch"},[{"E_lit":["L_unit"]}]]}]},{"E_lit":["L_unit"]}]},{"E_match":[{"E_app":[{"Id":"ext_fetch_check_pc"},[{"E_id":[{"Id":"PC"}]},{"E_id":[{"Id":"PC"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"F_Ext_Error"},[{"E_id":[{"Id":"e"}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":0}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"neq_anything"},[{"E_app":[{"Id":"bitvector_access"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":["L_zero"]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]}]]}]]}]]},{"E_return":[{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_app":[{"Id":"E_Fetch_Addr_Align"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"PC"}]}]]}]]}]},{"E_lit":["L_unit"]}]},{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"PC"}]}]]},{"E_app":[{"Id":"InstructionFetch"},[{"E_lit":["L_unit"]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"PC"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"ppclo"}]},{"P_wild":[]}]]}]]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"mem_read"},[{"E_app":[{"Id":"InstructionFetch"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ppclo"}]},{"E_lit":[{"L_num":2}]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"PC"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"ilo"}]}]]},{"E_if":[{"E_app":[{"Id":"isRVC"},[{"E_id":[{"Id":"ilo"}]}]]},{"E_app":[{"Id":"F_RVC"},[{"E_id":[{"Id":"ilo"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"PC_hi"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"ext_fetch_check_pc"},[{"E_id":[{"Id":"PC"}]},{"E_id":[{"Id":"PC_hi"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_id":[{"Id":"e"}]}]]},{"E_return":[{"E_app":[{"Id":"F_Ext_Error"},[{"E_id":[{"Id":"e"}]}]]}]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_lit":["L_unit"]}]}]]},{"E_match":[{"E_app":[{"Id":"translateAddr"},[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"PC_hi"}]}]]},{"E_app":[{"Id":"InstructionFetch"},[{"E_lit":["L_unit"]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"PC_hi"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_tuple":[[{"P_id":[{"Id":"ppchi"}]},{"P_wild":[]}]]}]]},{"E_match":[{"E_app":[{"Id":"mem_read"},[{"E_app":[{"Id":"InstructionFetch"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"ppchi"}]},{"E_lit":[{"L_num":2}]},{"E_lit":["L_false"]},{"E_lit":["L_false"]},{"E_lit":["L_false"]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Err"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"F_Error"},[{"E_tuple":[[{"E_id":[{"Id":"e"}]},{"E_id":[{"Id":"PC_hi"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Ok"},[{"P_id":[{"Id":"ihi"}]}]]},{"E_app":[{"Id":"F_Base"},[{"E_app":[{"Id":"bitvector_concat"},[{"E_id":[{"Id":"ihi"}]},{"E_id":[{"Id":"ilo"}]}]]}]]}]}]]}]}]]}]]}]}]]}]}]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/fetch.sail"]},{"DEF_pragma":["file_start","postlude/step.sail"]},{"DEF_register":{"DEC_reg":[{"Typ_id":[{"Id":"HartState"}]},{"Id":"hart_state"},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]}},{"DEF_type":{"TD_variant":[{"Id":"Step"},{"TypQ_tq":[[]]},[{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"InterruptType"}]},{"Typ_id":[{"Id":"Privilege"}]}]]},{"Id":"Step_Pending_Interrupt"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"ext_fetch_addr_error"}]},{"Id":"Step_Ext_Fetch_Failure"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"virtaddr"}]},{"Typ_id":[{"Id":"ExceptionType"}]}]]},{"Id":"Step_Fetch_Failure"}]},{"Tu_ty_id":[{"Typ_tuple":[[{"Typ_id":[{"Id":"ExecutionResult"}]},{"Typ_id":[{"Id":"instbits"}]}]]},{"Id":"Step_Execute"}]},{"Tu_ty_id":[{"Typ_id":[{"Id":"WaitReason"}]},{"Id":"Step_Waiting"}]}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"int"}]},{"Typ_id":[{"Id":"WaitReason"}]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"Step"}]}]}]},{"Id":"run_hart_waiting"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"run_hart_waiting"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"int"}]},{"P_id":[{"Id":"step_no"}]}]},{"P_typ":[{"Typ_id":[{"Id":"WaitReason"}]},{"P_id":[{"Id":"wr"}]}]},{"P_typ":[{"Typ_id":[{"Id":"instbits"}]},{"P_id":[{"Id":"instbits"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"exit_wait"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"shouldWakeForInterrupt"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"interrupt exit from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"wr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]},{"E_return":[{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_match":[{"E_tuple":[[{"E_id":[{"Id":"wr"}]},{"E_app":[{"Id":"valid_reservation"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"exit_wait"}]}]]},[{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"WAIT_WRS_STO"}]},{"P_lit":["L_false"]},{"P_wild":[]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"reservation invalid exit from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"WAIT_WRS_STO"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]},{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"WAIT_WRS_NTO"}]},{"P_lit":["L_false"]},{"P_wild":[]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"reservation invalid exit from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"WAIT_WRS_NTO"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]},{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"WAIT_WFI"}]},{"P_wild":[]},{"P_lit":["L_true"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"forced exit from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"WAIT_WFI"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_TW"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]},{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"WAIT_WRS_STO"}]},{"P_wild":[]},{"P_lit":["L_true"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"timed-out exit from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"WAIT_WRS_STO"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]},{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_id":[{"Id":"WAIT_WRS_NTO"}]},{"P_wild":[]},{"P_lit":["L_true"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"timed-out exit from "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"WAIT_WRS_NTO"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"cur_privilege"}]},{"E_id":[{"Id":"Machine"}]}]]},{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"_get_Mstatus_TW"},[{"E_id":[{"Id":"mstatus"}]}]]},{"E_lit":[{"L_bin":"0"}]}]]}]]},{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Retire_Success"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]},{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]}]}]]}]},{"Pat_exp":[{"P_tuple":[[{"P_wild":[]},{"P_wild":[]},{"P_lit":["L_false"]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"remaining in "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"wr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"Step_Waiting"},[{"E_id":[{"Id":"wr"}]}]]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"nat"}]}],{"Typ_id":[{"Id":"Step"}]}]}]},{"Id":"run_hart_active"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"run_hart_active"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"step_no"}]}]},{"E_block":[[{"E_match":[{"E_app":[{"Id":"dispatchInterrupt"},[{"E_id":[{"Id":"cur_privilege"}]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Some"},[{"P_tuple":[[{"P_id":[{"Id":"intr"}]},{"P_id":[{"Id":"priv"}]}]]}]]},{"E_app":[{"Id":"Step_Pending_Interrupt"},[{"E_tuple":[[{"E_id":[{"Id":"intr"}]},{"E_id":[{"Id":"priv"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"None"},[{"P_lit":["L_unit"]}]]},{"E_match":[{"E_app":[{"Id":"ext_fetch_hook"},[{"E_app":[{"Id":"fetch"},[{"E_lit":["L_unit"]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"F_Ext_Error"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"Step_Ext_Fetch_Failure"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"F_Error"},[{"P_tuple":[[{"P_id":[{"Id":"e"}]},{"P_id":[{"Id":"addr"}]}]]}]]},{"E_app":[{"Id":"Step_Fetch_Failure"},[{"E_tuple":[[{"E_app":[{"Id":"Virtaddr"},[{"E_id":[{"Id":"addr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"F_RVC"},[{"P_id":[{"Id":"h"}]}]]},{"E_block":[[{"E_app":[{"Id":"sail_instr_announce"},[{"E_id":[{"Id":"h"}]}]]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"instbits"}]},{"P_id":[{"Id":"instbits"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"h"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"instruction"}]},{"E_app":[{"Id":"ext_decode_compressed"},[{"E_id":[{"Id":"h"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"print_log_instr"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"step_no"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] ["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"]: "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" ("}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"h"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":") "}]},{"E_app":[{"Id":"print_insn"},[{"E_id":[{"Id":"instruction"}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"PC"}]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"is_landing_pad_expected"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"Trap"},[{"E_tuple":[[{"E_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"CTL_TRAP"},[{"E_app":[{"Id":"make_landing_pad_exception"},[{"E_lit":["L_unit"]}]]}]]},{"E_id":[{"Id":"PC"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]}]]},{"E_if":[{"E_app":[{"Id":"currentlyEnabled"},[{"E_id":[{"Id":"Ext_Zca"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"nextPC"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":2}]}]]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"execute"},[{"E_id":[{"Id":"instruction"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_app":[{"Id":"Illegal_Instruction"},[{"E_lit":["L_unit"]}]]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]}]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"F_Base"},[{"P_id":[{"Id":"w"}]}]]},{"E_block":[[{"E_app":[{"Id":"sail_instr_announce"},[{"E_id":[{"Id":"w"}]}]]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"instbits"}]},{"P_id":[{"Id":"instbits"}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":32}]},{"E_id":[{"Id":"w"}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"instruction"}]},{"E_app":[{"Id":"ext_decode"},[{"E_id":[{"Id":"w"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"print_log_instr"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"step_no"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"] ["}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"privLevel_to_str"},[{"E_id":[{"Id":"cur_privilege"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"]: "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" ("}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"w"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":") "}]},{"E_app":[{"Id":"print_insn"},[{"E_id":[{"Id":"instruction"}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"PC"}]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"is_landing_pad_expected"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"is_lpad_instruction"},[{"E_id":[{"Id":"instruction"}]}]]}]]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"Trap"},[{"E_tuple":[[{"E_id":[{"Id":"cur_privilege"}]},{"E_app":[{"Id":"CTL_TRAP"},[{"E_app":[{"Id":"make_landing_pad_exception"},[{"E_lit":["L_unit"]}]]}]]},{"E_id":[{"Id":"PC"}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"nextPC"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"PC"}]},{"E_lit":[{"L_num":4}]}]]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"r"}]},{"E_app":[{"Id":"execute"},[{"E_id":[{"Id":"instruction"}]}]]}]},{"E_block":[[{"E_app":[{"Id":"Step_Execute"},[{"E_tuple":[[{"E_id":[{"Id":"r"}]},{"E_id":[{"Id":"instbits"}]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"WaitReason"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"wait_is_nop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"wait_is_nop"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"WaitReason"}]},{"P_id":[{"Id":"wr"}]}]},{"E_match":[{"E_id":[{"Id":"wr"}]},[{"Pat_exp":[{"P_id":[{"Id":"WAIT_WFI"}]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_id":[{"Id":"WAIT_WRS_STO"}]},{"E_lit":["L_false"]}]},{"Pat_exp":[{"P_id":[{"Id":"WAIT_WRS_NTO"}]},{"E_lit":["L_false"]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"nat"}]},{"Typ_id":[{"Id":"bool"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"try_step"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"try_step"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"step_no"}]}]},{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"exit_wait"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"ext_pre_step_hook"},[{"E_lit":["L_unit"]}]]},{"E_assign":[{"LE_id":[{"Id":"minstret_increment"}]},{"E_app":[{"Id":"should_inc_minstret"},[{"E_id":[{"Id":"cur_privilege"}]}]]}]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"Step"}]},{"P_id":[{"Id":"step_val"}]}]},{"E_match":[{"E_id":[{"Id":"hart_state"}]},[{"Pat_exp":[{"P_app":[{"Id":"HART_WAITING"},[{"P_tuple":[[{"P_id":[{"Id":"wr"}]},{"P_id":[{"Id":"instbits"}]}]]}]]},{"E_app":[{"Id":"run_hart_waiting"},[{"E_id":[{"Id":"step_no"}]},{"E_id":[{"Id":"wr"}]},{"E_id":[{"Id":"instbits"}]},{"E_id":[{"Id":"exit_wait"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"HART_ACTIVE"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"run_hart_active"},[{"E_id":[{"Id":"step_no"}]}]]}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"step_val"}]},[{"Pat_exp":[{"P_app":[{"Id":"Step_Pending_Interrupt"},[{"P_tuple":[[{"P_id":[{"Id":"intr"}]},{"P_id":[{"Id":"priv"}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"Handling interrupt: "}]},{"E_app":[{"Id":"interruptType_bits_forwards"},[{"E_id":[{"Id":"intr"}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"handle_interrupt"},[{"E_id":[{"Id":"intr"}]},{"E_id":[{"Id":"priv"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Ext_Fetch_Failure"},[{"P_id":[{"Id":"e"}]}]]},{"E_app":[{"Id":"ext_handle_fetch_check_error"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Fetch_Failure"},[{"P_tuple":[[{"P_id":[{"Id":"vaddr"}]},{"P_id":[{"Id":"e"}]}]]}]]},{"E_app":[{"Id":"handle_exception"},[{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Waiting"},[{"P_wild":[]}]]},{"E_assert":[{"E_app":[{"Id":"hart_is_waiting"},[{"E_id":[{"Id":"hart_state"}]}]]},{"E_lit":[{"L_string":"cannot be Waiting in a non-Wait state"}]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Retire_Success"},[{"P_lit":["L_unit"]}]]},{"P_wild":[]}]]}]]},{"E_assert":[{"E_app":[{"Id":"hart_is_active"},[{"E_id":[{"Id":"hart_state"}]}]]},{"E_lit":[{"L_string":"postlude/step.sail:202.74-202.75"}]}]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Trap"},[{"P_tuple":[[{"P_id":[{"Id":"priv"}]},{"P_id":[{"Id":"ctl"}]},{"P_id":[{"Id":"pc"}]}]]}]]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"set_next_pc"},[{"E_app":[{"Id":"exception_handler"},[{"E_id":[{"Id":"priv"}]},{"E_id":[{"Id":"ctl"}]},{"E_id":[{"Id":"pc"}]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Memory_Exception"},[{"P_tuple":[[{"P_id":[{"Id":"vaddr"}]},{"P_id":[{"Id":"e"}]}]]}]]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"handle_exception"},[{"E_app":[{"Id":"bits_of_virtaddr"},[{"E_id":[{"Id":"vaddr"}]}]]},{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Illegal_Instruction"},[{"P_lit":["L_unit"]}]]},{"P_id":[{"Id":"instbits"}]}]]}]]},{"E_app":[{"Id":"handle_exception"},[{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_id":[{"Id":"instbits"}]}]]},{"E_app":[{"Id":"E_Illegal_Instr"},[{"E_lit":["L_unit"]}]]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Enter_Wait"},[{"P_id":[{"Id":"wr"}]}]]},{"P_id":[{"Id":"instbits"}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"wait_is_nop"},[{"E_id":[{"Id":"wr"}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"hart_is_active"},[{"E_id":[{"Id":"hart_state"}]}]]},{"E_lit":[{"L_string":"postlude/step.sail:210.41-210.42"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"print_log"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"entering "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"wait_name_forwards"},[{"E_id":[{"Id":"wr"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" state at PC "}]},{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"PC"}]}]]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_WAITING"},[{"E_tuple":[[{"E_id":[{"Id":"wr"}]},{"E_id":[{"Id":"instbits"}]}]]}]]}]}]]}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Ext_CSR_Check_Failure"},[{"P_lit":["L_unit"]}]]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"ext_check_CSR_fail"},[{"E_lit":["L_unit"]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Ext_ControlAddr_Check_Failure"},[{"P_id":[{"Id":"e"}]}]]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"ext_handle_control_check_error"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Ext_DataAddr_Check_Failure"},[{"P_id":[{"Id":"e"}]}]]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"ext_handle_data_check_error"},[{"E_id":[{"Id":"e"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Ext_XRET_Priv_Failure"},[{"P_lit":["L_unit"]}]]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"ext_fail_xret_priv"},[{"E_lit":["L_unit"]}]]}]}]]},{"E_match":[{"E_id":[{"Id":"hart_state"}]},[{"Pat_exp":[{"P_app":[{"Id":"HART_WAITING"},[{"P_wild":[]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_app":[{"Id":"HART_ACTIVE"},[{"P_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"tick_pc"},[{"E_lit":["L_unit"]}]]},{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"bool"}]},{"P_id":[{"Id":"retired"}]}]},{"E_match":[{"E_id":[{"Id":"step_val"}]},[{"Pat_exp":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Retire_Success"},[{"P_lit":["L_unit"]}]]},{"P_wild":[]}]]}]]},{"E_lit":["L_true"]}]},{"Pat_when":[{"P_app":[{"Id":"Step_Execute"},[{"P_tuple":[[{"P_app":[{"Id":"Enter_Wait"},[{"P_id":[{"Id":"wr"}]}]]},{"P_wild":[]}]]}]]},{"E_app":[{"Id":"wait_is_nop"},[{"E_id":[{"Id":"wr"}]}]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_wild":[]},{"E_lit":["L_false"]}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_id":[{"Id":"retired"}]},{"E_id":[{"Id":"minstret_increment"}]}]]},{"E_assign":[{"LE_id":[{"Id":"minstret"}]},{"E_app":[{"Id":"add_bits_int"},[{"E_id":[{"Id":"minstret"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"get_config_rvfi"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_assign":[{"LE_vector_range":[{"LE_field":[{"LE_id":[{"Id":"rvfi_pc_data"}]},{"Id":"bits"}]},{"E_lit":[{"L_num":127}]},{"E_lit":[{"L_num":64}]}]},{"E_app":[{"Id":"zero_extend"},[{"E_lit":[{"L_num":64}]},{"E_app":[{"Id":"get_arch_pc"},[{"E_lit":["L_unit"]}]]}]]}]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"ext_post_step_hook"},[{"E_lit":["L_unit"]}]]},{"E_lit":["L_false"]}]]}]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"loop"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"loop"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"unit"}]},{"P_lit":["L_unit"]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"nat"}]},{"Id":"i"}]},{"E_lit":[{"L_num":0}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"nat"}]},{"Id":"step_no"}]},{"E_lit":[{"L_num":0}]},{"E_block":[[{"E_loop":["While",{"Measure_none":[]},{"E_app":[{"Id":"not"},[{"E_id":[{"Id":"htif_done"}]}]]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"stepped"}]},{"E_app":[{"Id":"try_step"},[{"E_id":[{"Id":"step_no"}]},{"E_lit":["L_true"]}]]}]},{"E_block":[[{"E_if":[{"E_id":[{"Id":"stepped"}]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"step_no"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"step_no"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_if":[{"E_app":[{"Id":"get_config_print_instr"},[{"E_lit":["L_unit"]}]]},{"E_block":[[{"E_app":[{"Id":"print_step"},[{"E_lit":["L_unit"]}]]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"sail_end_cycle"},[{"E_lit":["L_unit"]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_id":[{"Id":"htif_done"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"exit_val"}]},{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"htif_exit_code"}]}]]}]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"exit_val"}]},{"E_lit":[{"L_num":0}]}]]},{"E_app":[{"Id":"print"},[{"E_lit":[{"L_string":"SUCCESS"}]}]]},{"E_app":[{"Id":"print_int"},[{"E_lit":[{"L_string":"FAILURE: "}]},{"E_id":[{"Id":"exit_val"}]}]]}]}]]}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"i"}]},{"E_app":[{"Id":"add_atom"},[{"E_id":[{"Id":"i"}]},{"E_lit":[{"L_num":1}]}]]}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"i"}]},{"E_id":[{"Id":"plat_insns_per_tick"}]}]]},{"E_block":[[{"E_app":[{"Id":"tick_clock"},[{"E_lit":["L_unit"]}]]},{"E_assign":[{"LE_id":[{"Id":"i"}]},{"E_lit":[{"L_num":0}]}]}]]},{"E_lit":["L_unit"]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/step.sail"]},{"DEF_pragma":["file_start","postlude/validate_config.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_privs"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_privs"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_S"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_U"}]}]]}]]}]]},{"E_block":[[{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"User mode (U) should be enabled if supervisor mode (S) is enabled."}]}]]},{"E_return":[{"E_lit":["L_false"]}]}]]},{"E_lit":["L_unit"]}]},{"E_lit":["L_true"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_mmu_config"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_mmu_config"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"valid"}]},{"E_lit":["L_true"]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_S"}]}]]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv57"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv48"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Supervisor mode (S) disabled but one of (Sv57, Sv48, Sv39) is enabled: cannot support address translation without supervisor mode."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv57"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv48"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Sv57 is enabled but Sv48 is disabled: supporting Sv57 requires supporting Sv48."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv48"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Sv48 is enabled but Sv39 is disabled: supporting Sv48 requires supporting Sv39."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv32"}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Sv32 is enabled: Sv32 is not supported on RV64."}]}]]}]]},{"E_lit":["L_unit"]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_lit":[{"L_string":"postlude/validate_config.sail:43.21-43.22"}]}]},{"E_exit":[{"E_lit":["L_unit"]}]}]]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Svrsw60t59b"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Svrsw60t59b is enabled but Sv39 is disabled: supporting Svrsw60t59b requires supporting Sv39."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_id":[{"Id":"valid"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_vlen_elen"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_vlen_elen"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"vlen_exp"}]}]},{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"elen_exp"}]}]}]]},{"E_block":[[{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"VLEN (set to 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":") cannot be less than ELEN (set to 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"elen_exp"}]}]]},{"E_lit":[{"L_string":")."}]}]]}]]}]]}]]}]]},{"E_return":[{"E_lit":["L_false"]}]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lt_int"},[{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"vlen_exp"}]}]},{"E_lit":[{"L_num":3}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gt_int"},[{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"vlen_exp"}]}]},{"E_lit":[{"L_num":16}]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"VLEN set to 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_lit":[{"L_string":" but must be within [2^3, 2^16]."}]}]]}]]}]]},{"E_return":[{"E_lit":["L_false"]}]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"lt_int"},[{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"elen_exp"}]}]},{"E_lit":[{"L_num":3}]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"gt_int"},[{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"elen_exp"}]}]},{"E_lit":[{"L_num":16}]}]]}]}]]},{"E_block":[[{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"ELEN set to 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"elen_exp"}]}]]},{"E_lit":[{"L_string":" but must be within [2^3, 2^16]."}]}]]}]]}]]},{"E_return":[{"E_lit":["L_false"]}]}]]},{"E_lit":["L_unit"]}]},{"E_lit":["L_true"]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_vext_config"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_vext_config"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"valid"}]},{"E_lit":["L_true"]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Integer"}]}]]}]]},{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_app":[{"Id":"lt_int"},[{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"elen_exp"}]}]},{"E_lit":[{"L_num":5}]}]]}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Zve*x is enabled but ELEN is 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"elen_exp"}]}]]},{"E_lit":[{"L_string":": ELEN must be >= 2^5"}]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Float_single"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zve*f is enabled but F is disabled: supporting Zve*f requires F."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Float_double"}]}]]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"lt_int"},[{"E_typ":[{"Typ_id":[{"Id":"nat"}]},{"E_id":[{"Id":"elen_exp"}]}]},{"E_lit":[{"L_num":6}]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Zve*d is enabled but ELEN is 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"elen_exp"}]}]]},{"E_lit":[{"L_string":": ELEN must be >= 2^6"}]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_D"}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zve*d is enabled but D is disabled: supporting Zve*d requires D."}]}]]}]]},{"E_lit":["L_unit"]}]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zve32x is enabled but Zicsr is disabled: supporting Zve32x requires Zicsr."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl32b"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"VLEN (set to 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_lit":[{"L_string":") is below the minimum required for Zve32x (need Zvl32b)."}]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve64x"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl64b"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"VLEN (set to 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_lit":[{"L_string":") is below the minimum required for Zve64x (need Zvl64b)."}]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"gteq_int"},[{"E_id":[{"Id":"vector_support_config_level"}]},{"E_app":[{"Id":"vector_support_level_forwards"},[{"E_id":[{"Id":"Full"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvl128b"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"VLEN (set to 2^"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"vlen_exp"}]}]]},{"E_lit":[{"L_string":") is below the minimum required for V (need Zvl128b)."}]}]]}]]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfhmin"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvfhmin is enabled but Zve32f is disabled: Zvfhmin requires Zve32f."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfh"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfhmin"}]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvfh is enabled but Zve32f and/or Zfhmin are disabled: Zvfh requires Zve32f and Zfhmin."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvbb"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvbb is enabled but Zve32x is disabled: Zvbb requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvbc"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve64x"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_V"}]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvbc is enabled but Zve64x and V are disabled: Zvbc requires Zve64x or V."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkb"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvkb is enabled but Zve32x is disabled: Zvkb requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkg"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvkg is enabled but Zve32x is disabled: Zvkg requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkned"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvkned is enabled but Zve32x is disabled: Zvkned requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvknha"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvknha is enabled but Zve32x is disabled: Zvknha requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvknhb"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve64x"}]}]]},{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_V"}]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvknhb is enabled but Zve64x and V are disabled: Zvknhb requires Zve64x or V."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksed"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvksed is enabled but Zve32x is disabled: Zvksed requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvksh"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvksh is enabled but Zve32x is disabled: Zvksh requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvkt"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32x"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"Zvkt is enabled but Zve32x is disabled: Zvkt requires Zve32x."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_id":[{"Id":"valid"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"Typ_app":[{"Id":"bitvector"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_pma_regions"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_pma_regions"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]},{"P_id":[{"Id":"pmas"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"prev_base"}]}]},{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"P_id":[{"Id":"prev_size"}]}]}]]},{"E_match":[{"E_id":[{"Id":"pmas"}]},[{"Pat_exp":[{"P_list":[[]]},{"E_lit":["L_true"]}]},{"Pat_exp":[{"P_cons":[{"P_id":[{"Id":"pma"}]},{"P_id":[{"Id":"rest"}]}]},{"E_block":[[{"E_if":[{"E_app":[{"Operator":"<_u"},[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"base"}]},{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"prev_base"}]},{"E_id":[{"Id":"prev_size"}]}]]}]]},{"E_block":[[{"E_app":[{"Id":"print_endline"},[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Memory region starting at "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"base"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" is not above the end of the previous region starting at "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_id":[{"Id":"prev_base"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" and ending at "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"bits_str"},[{"E_app":[{"Id":"add_bits"},[{"E_id":[{"Id":"prev_base"}]},{"E_id":[{"Id":"prev_size"}]}]]}]]},{"E_lit":[{"L_string":"."}]}]]}]]}]]}]]}]]}]]}]]},{"E_return":[{"E_lit":["L_false"]}]}]]},{"E_lit":["L_unit"]}]},{"E_app":[{"Id":"check_pma_regions"},[{"E_id":[{"Id":"rest"}]},{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"base"}]},{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"size"}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_mem_layout"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_mem_layout"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_if":[{"E_app":[{"Id":"eq_anything"},[{"E_id":[{"Id":"pma_regions"}]},{"E_list":[[]]}]]},{"E_block":[[{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"No memory regions specified."}]}]]},{"E_lit":["L_false"]}]]},{"E_app":[{"Id":"check_pma_regions"},[{"E_id":[{"Id":"pma_regions"}]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]},{"E_app":[{"Id":"zeros"},[{"E_lit":[{"L_num":64}]}]]}]]}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_pmp"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_pmp"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"valid"}]},{"E_lit":["L_true"]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_typ":[{"Typ_id":[{"Id":"bool"}]},{"E_lit":["L_true"]}]},{"E_app":[{"Id":"neq_int"},[{"E_id":[{"Id":"sys_pmp_grain"}]},{"E_lit":[{"L_num":0}]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"NA4 is not supported if the PMP grain G is non-zero."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_id":[{"Id":"valid"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"check_misc_extension_dependencies"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"check_misc_extension_dependencies"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"bool"}]},{"Id":"valid"}]},{"E_lit":["L_true"]},{"E_block":[[{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicfilp"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zicsr"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"The Zicfilp extension is enabled but Zicsr is disabled: supporting Zicfilp requires Zicsr."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_F"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"The Zfbfmin extension is enabled but F is disabled: supporting Zfbfmin requires F."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zve32f"}]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"The Zvfbfmin extension is enabled but Zve32f is disabled: supporting Zvfbfmin requires Zve32f."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_if":[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfbfwma"}]}]]},{"E_app":[["Or_Bool"],[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zfbfmin"}]}]]}]]},{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Zvfbfmin"}]}]]}]]}]]}]]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"valid"}]},{"E_lit":["L_false"]}]},{"E_app":[{"Id":"print_endline"},[{"E_lit":[{"L_string":"The Zvfbfwma extension is enabled but either Zfbfmin or Zvfbfmin is disabled: supporting Zvfbfwma requires Zfbfmin and Zvfbfmin."}]}]]}]]},{"E_lit":["L_unit"]}]},{"E_id":[{"Id":"valid"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"bool"}]}]}]},{"Id":"config_is_valid"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"config_is_valid"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_privs"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_mmu_config"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_mem_layout"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_vlen_elen"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_vext_config"},[{"E_lit":["L_unit"]}]]},{"E_app":[["And_Bool"],[{"E_app":[{"Id":"check_pmp"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"check_misc_extension_dependencies"},[{"E_lit":["L_unit"]}]]}]]}]]}]]}]]}]]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/validate_config.sail"]},{"DEF_pragma":["file_start","postlude/device_tree.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"mmu_type"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"mmu_type"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":32}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv32"}]}]]},{"E_lit":[{"L_string":"sv32"}]},{"E_lit":[{"L_string":"none"}]}]}]]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_int"},[{"E_id":[{"Id":"xlen"}]},{"E_lit":[{"L_num":64}]}]]},{"E_lit":[{"L_string":"postlude/device_tree.sail:14.21-14.22"}]}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv57"}]}]]},{"E_lit":[{"L_string":"sv57"}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv48"}]}]]},{"E_lit":[{"L_string":"sv48"}]},{"E_if":[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"Ext_Sv39"}]}]]},{"E_lit":[{"L_string":"sv39"}]},{"E_lit":[{"L_string":"none"}]}]}]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"generate_isa_base"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"generate_isa_base"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"rv"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"xlen"}]}]]},{"E_lit":[{"L_string":"i"}]}]]}]]}]]}]}]}]]}},{"DEF_type":{"TD_enum":[{"Id":"ISA_Format"},[{"Id":"Canonical_Lowercase"},{"Id":"DeviceTree_ISA_Extensions"}],false]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"ISA_Format"}]}]}]},{"Id":"undefined_ISA_Format"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"undefined_ISA_Format"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_id":[{"Id":"Canonical_Lowercase"}]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[{"QI_id":[{"KOpt_kind":["K_int",{"Var":"'e"}]}]},{"QI_constraint":[{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]}]}]]},{"Typ_fn":[[{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}],{"Typ_id":[{"Id":"ISA_Format"}]}]}]},{"Id":"ISA_Format_of_num"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ISA_Format_of_num"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_lit":[{"L_num":0}]},{"E_id":[{"Id":"Canonical_Lowercase"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_id":[{"Id":"DeviceTree_ISA_Extensions"}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_tq":[[]]},{"Typ_fn":[[{"Typ_id":[{"Id":"ISA_Format"}]}],{"Typ_exist":[[{"KOpt_kind":["K_int",{"Var":"'e"}]}],{"NC_and":[{"NC_le":[{"Nexp_constant":[0]},{"Nexp_var":[{"Var":"'e"}]}]},{"NC_le":[{"Nexp_var":[{"Var":"'e"}]},{"Nexp_constant":[1]}]}]},{"Typ_app":[{"Id":"atom"},[{"A_nexp":[{"Nexp_var":[{"Var":"'e"}]}]}]]}]}]}]},{"Id":"num_of_ISA_Format"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"num_of_ISA_Format"},{"Pat_exp":[{"P_id":[{"Id":"arg#"}]},{"E_match":[{"E_id":[{"Id":"arg#"}]},[{"Pat_exp":[{"P_id":[{"Id":"Canonical_Lowercase"}]},{"E_lit":[{"L_num":0}]}]},{"Pat_exp":[{"P_id":[{"Id":"DeviceTree_ISA_Extensions"}]},{"E_lit":[{"L_num":1}]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"extension"}]},{"Typ_id":[{"Id":"ISA_Format"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"ext_wrap"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"ext_wrap"},{"Pat_exp":[{"P_tuple":[[{"P_typ":[{"Typ_id":[{"Id":"extension"}]},{"P_id":[{"Id":"ext"}]}]},{"P_typ":[{"Typ_id":[{"Id":"ISA_Format"}]},{"P_id":[{"Id":"fmt"}]}]}]]},{"E_block":[[{"E_if":[{"E_app":[{"Id":"not"},[{"E_app":[{"Id":"hartSupports"},[{"E_id":[{"Id":"ext"}]}]]}]]},{"E_return":[{"E_lit":[{"L_string":""}]}]},{"E_lit":["L_unit"]}]},{"E_let":[{"LB_val":[{"P_id":[{"Id":"s"}]},{"E_app":[{"Id":"extensionName_forwards"},[{"E_id":[{"Id":"ext"}]}]]}]},{"E_block":[[{"E_match":[{"E_id":[{"Id":"fmt"}]},[{"Pat_exp":[{"P_id":[{"Id":"Canonical_Lowercase"}]},{"E_if":[{"E_app":[{"Id":"eq_int"},[{"E_app":[{"Id":"string_length"},[{"E_id":[{"Id":"s"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_id":[{"Id":"s"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"_"}]},{"E_id":[{"Id":"s"}]}]]}]}]},{"Pat_exp":[{"P_id":[{"Id":"DeviceTree_ISA_Extensions"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":", \""}]},{"E_app":[{"Id":"concat_str"},[{"E_id":[{"Id":"s"}]},{"E_lit":[{"L_string":"\""}]}]]}]]}]}]]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"ISA_Format"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"generate_isa_string"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"generate_isa_string"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"ISA_Format"}]},{"P_id":[{"Id":"fmt"}]}]},{"E_block":[[{"E_var":[{"LE_typ":[{"Typ_id":[{"Id":"string"}]},{"Id":"isa_string"}]},{"E_match":[{"E_id":[{"Id":"fmt"}]},[{"Pat_exp":[{"P_id":[{"Id":"Canonical_Lowercase"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"rv"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"xlen"}]}]]},{"E_lit":[{"L_string":"i"}]}]]}]]}]},{"Pat_exp":[{"P_id":[{"Id":"DeviceTree_ISA_Extensions"}]},{"E_lit":[{"L_string":"\"i\""}]}]}]]},{"E_block":[[{"E_for":[{"Id":"i"},{"E_app":[{"Id":"sub_atom"},[{"E_app":[{"Id":"vector_length"},[{"E_id":[{"Id":"extensions_ordered_for_isa_string"}]}]]},{"E_lit":[{"L_num":1}]}]]},{"E_lit":[{"L_num":0}]},{"E_lit":[{"L_num":1}]},"Ord_dec",{"E_assign":[{"LE_id":[{"Id":"isa_string"}]},{"E_app":[{"Id":"concat_str"},[{"E_id":[{"Id":"isa_string"}]},{"E_app":[{"Id":"ext_wrap"},[{"E_app":[{"Id":"plain_vector_access"},[{"E_id":[{"Id":"extensions_ordered_for_isa_string"}]},{"E_id":[{"Id":"i"}]}]]},{"E_id":[{"Id":"fmt"}]}]]}]]}]}]},{"E_id":[{"Id":"isa_string"}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"generate_dts_memories"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"generate_dts_memories"},{"Pat_exp":[{"P_typ":[{"Typ_app":[{"Id":"list"},[{"A_typ":[{"Typ_id":[{"Id":"PMA_Region"}]}]}]]},{"P_id":[{"Id":"pmas"}]}]},{"E_match":[{"E_id":[{"Id":"pmas"}]},[{"Pat_exp":[{"P_list":[[]]},{"E_lit":[{"L_string":""}]}]},{"Pat_exp":[{"P_cons":[{"P_id":[{"Id":"pma"}]},{"P_id":[{"Id":"rest"}]}]},{"E_block":[[{"E_if":[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"include_in_device_tree"}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"base_hi"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"shiftr"},[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"base"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"base_lo"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"base"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"size_hi"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"shiftr"},[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"size"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"size_lo"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"size"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" memory@"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"string_drop"},[{"E_app":[{"Id":"hex_str"},[{"E_app":[{"Id":"unsigned"},[{"E_field":[{"E_id":[{"Id":"pma"}]},{"Id":"base"}]}]]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" device_type = \"memory\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" reg = <"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"base_hi"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"base_lo"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"size_hi"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"size_lo"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":">;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_app":[{"Id":"generate_dts_memories"},[{"E_id":[{"Id":"rest"}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]},{"E_app":[{"Id":"generate_dts_memories"},[{"E_id":[{"Id":"rest"}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"generate_dts"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"generate_dts"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_id":[{"Id":"nat"}]},{"P_id":[{"Id":"clock_freq"}]}]},{"E_lit":[{"L_num":1000000000}]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"clint_base_hi"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"plat_clint_base"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"clint_base_lo"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"plat_clint_base"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"clint_size_hi"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"shiftr"},[{"E_id":[{"Id":"plat_clint_size"}]},{"E_lit":[{"L_num":32}]}]]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_id":[{"Id":"clint_size_lo"}]},{"E_app":[{"Id":"unsigned"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"plat_clint_size"}]},{"E_lit":[{"L_num":31}]},{"E_lit":[{"L_num":0}]}]]}]]}]},{"E_block":[[{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"/dts-v1/;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"/ {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #address-cells = <2>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #size-cells = <2>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" compatible = \"ucbbar,spike-bare-dev\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" model = \"ucbbar,spike-bare\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" chosen {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" bootargs = \"console=hvc0 earlycon=sbi\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" cpus {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #address-cells = <1>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #size-cells = <0>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" timebase-frequency = <"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_app":[{"Id":"quot_positive_round_zero"},[{"E_id":[{"Id":"clock_freq"}]},{"E_id":[{"Id":"plat_insns_per_tick"}]}]]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":">;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" CPU0: cpu@0 {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" device_type = \"cpu\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" reg = <0>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" status = \"okay\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" compatible = \"riscv\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" riscv,isa-base = \""}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"generate_isa_base"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" riscv,isa = \""}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"generate_isa_string"},[{"E_id":[{"Id":"Canonical_Lowercase"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" riscv,isa-extensions = "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"generate_isa_string"},[{"E_id":[{"Id":"DeviceTree_ISA_Extensions"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" mmu-type = \"riscv,"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"mmu_type"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" clock-frequency = <"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"dec_str"},[{"E_id":[{"Id":"clock_freq"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":">;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" CPU0_intc: interrupt-controller {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #address-cells = <2>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #interrupt-cells = <1>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" interrupt-controller;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" compatible = \"riscv,cpu-intc\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"generate_dts_memories"},[{"E_id":[{"Id":"pma_regions"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" soc {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #address-cells = <2>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" #size-cells = <2>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" compatible = \"ucbbar,spike-bare-soc\", \"simple-bus\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" ranges;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" clint@"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"string_drop"},[{"E_app":[{"Id":"hex_str"},[{"E_app":[{"Id":"unsigned"},[{"E_id":[{"Id":"plat_clint_base"}]}]]}]]},{"E_lit":[{"L_num":2}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" compatible = \"riscv,clint0\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" interrupts-extended = <&CPU0_intc 3 &CPU0_intc 7>;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" reg = <"}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"clint_base_hi"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"clint_base_lo"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"clint_size_hi"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" "}]},{"E_app":[{"Id":"concat_str"},[{"E_app":[{"Id":"hex_str"},[{"E_id":[{"Id":"clint_size_lo"}]}]]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":">;\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" htif {\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" compatible = \"ucb,htif0\";\n"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":" };\n"}]},{"E_lit":[{"L_string":"};\n"}]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]]}]}]]}]}]]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"string"}]}]}]},{"Id":"generate_canonical_isa_string"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"generate_canonical_isa_string"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_app":[{"Id":"generate_isa_string"},[{"E_id":[{"Id":"Canonical_Lowercase"}]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/device_tree.sail"]},{"DEF_pragma":["file_start","postlude/model.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"reset"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"reset"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"hart_state"}]},{"E_app":[{"Id":"HART_ACTIVE"},[{"E_lit":["L_unit"]}]]}]},{"E_app":[{"Id":"reset_sys"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"reset_vmem"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"reset_elp"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"ext_reset"},[{"E_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"string"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"init_model"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_model"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"string"}]},{"P_id":[{"Id":"config_filename"}]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"config_is_valid"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"concat_str"},[{"E_if":[{"E_app":[{"Id":"eq_string"},[{"E_id":[{"Id":"config_filename"}]},{"E_lit":[{"L_string":""}]}]]},{"E_lit":[{"L_string":"Default config"}]},{"E_app":[{"Id":"concat_str"},[{"E_lit":[{"L_string":"Config in "}]},{"E_id":[{"Id":"config_filename"}]}]]}]},{"E_lit":[{"L_string":" is invalid."}]}]]}]},{"E_app":[{"Id":"init_platform"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"reset"},[{"E_lit":["L_unit"]}]]}]]}]}]}]]}},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"init_boot_requirements"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"init_boot_requirements"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_app":[{"Id":"wX"},[{"E_app":[{"Id":"Regno"},[{"E_lit":[{"L_num":10}]}]]},{"E_id":[{"Id":"mhartid"}]}]]},{"E_app":[{"Id":"wX"},[{"E_app":[{"Id":"Regno"},[{"E_lit":[{"L_num":11}]}]]},{"E_app":[{"Id":"trunc"},[{"E_lit":[{"L_num":64}]},{"E_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[64]}]}]]},{"E_lit":[{"L_bin":"0000000000000000000000000000000000000000000000000001000000000000"}]}]}]]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","postlude/model.sail"]},{"DEF_pragma":["file_start","unit_tests/test_mstatus.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"test_mstatus_sxl_uxl_reset_values"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"test_mstatus_sxl_uxl_reset_values"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[32]}]}]]},{"P_id":[{"Id":"mstatush_val"}]}]},{"E_match":[{"E_id":[{"Id":"xlen"}]},[{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_app":[{"Id":"read_CSR"},[{"E_lit":[{"L_hex":"310"}]}]]}]},{"Pat_exp":[{"P_lit":[{"L_num":64}]},{"E_app":[{"Id":"subrange_bits"},[{"E_app":[{"Id":"read_CSR"},[{"E_lit":[{"L_hex":"300"}]}]]},{"E_lit":[{"L_num":63}]},{"E_lit":[{"L_num":32}]}]]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"unit_tests/test_mstatus.sail"}]},{"E_lit":[{"L_num":7}]},{"E_lit":[{"L_string":"unsupported xlen"}]}]]}]}]]}]},{"E_block":[[{"E_let":[{"LB_val":[{"P_typ":[{"Typ_app":[{"Id":"bits"},[{"A_nexp":[{"Nexp_constant":[2]}]}]]},{"P_id":[{"Id":"expected_xl"}]}]},{"E_match":[{"E_id":[{"Id":"xlen"}]},[{"Pat_exp":[{"P_lit":[{"L_num":32}]},{"E_lit":[{"L_bin":"00"}]}]},{"Pat_exp":[{"P_lit":[{"L_num":64}]},{"E_lit":[{"L_bin":"10"}]}]},{"Pat_exp":[{"P_wild":[]},{"E_app":[{"Id":"internal_error"},[{"E_lit":[{"L_string":"unit_tests/test_mstatus.sail"}]},{"E_lit":[{"L_num":15}]},{"E_lit":[{"L_string":"unsupported xlen"}]}]]}]}]]}]},{"E_block":[[{"E_assert":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mstatush_val"}]},{"E_lit":[{"L_num":3}]},{"E_lit":[{"L_num":2}]}]]},{"E_id":[{"Id":"expected_xl"}]}]]},{"E_lit":[{"L_string":"unit_tests/test_mstatus.sail:18.44-18.45"}]}]},{"E_assert":[{"E_app":[{"Id":"eq_bits"},[{"E_app":[{"Id":"subrange_bits"},[{"E_id":[{"Id":"mstatush_val"}]},{"E_lit":[{"L_num":1}]},{"E_lit":[{"L_num":0}]}]]},{"E_id":[{"Id":"expected_xl"}]}]]},{"E_lit":[{"L_string":"unit_tests/test_mstatus.sail:20.44-20.45"}]}]}]]}]}]]}]}]]}]}]}]]}},{"DEF_pragma":["file_end","unit_tests/test_mstatus.sail"]},{"DEF_pragma":["file_start","main/main.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"main"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"main"},{"Pat_exp":[{"P_typ":[{"Typ_id":[{"Id":"unit"}]},{"P_lit":["L_unit"]}]},{"E_block":[[{"E_try":[{"E_block":[[{"E_app":[{"Id":"init_model"},[{"E_lit":[{"L_string":""}]}]]},{"E_app":[{"Id":"print_bits"},[{"E_lit":[{"L_string":"PC = "}]},{"E_id":[{"Id":"PC"}]}]]},{"E_app":[{"Id":"sail_end_cycle"},[{"E_lit":["L_unit"]}]]},{"E_app":[{"Id":"loop"},[{"E_lit":["L_unit"]}]]}]]},[{"Pat_exp":[{"P_app":[{"Id":"Error_not_implemented"},[{"P_id":[{"Id":"s"}]}]]},{"E_app":[{"Id":"print_string"},[{"E_lit":[{"L_string":"Error: Not implemented: "}]},{"E_id":[{"Id":"s"}]}]]}]},{"Pat_exp":[{"P_app":[{"Id":"Error_internal_error"},[{"P_lit":["L_unit"]}]]},{"E_app":[{"Id":"print"},[{"E_lit":[{"L_string":"Error: internal error"}]}]]}]}]]}]]}]}]}]]}},{"DEF_pragma":["file_end","main/main.sail"]},{"DEF_val":{"VS_val_spec":[{"TypSchm_ts":[{"TypQ_no_forall":[]},{"Typ_fn":[[{"Typ_id":[{"Id":"unit"}]}],{"Typ_id":[{"Id":"unit"}]}]}]},{"Id":"initialize_registers"},null]}},{"DEF_fundef":{"FD_function":[{"Rec_nonrec":[]},{"Typ_annot_opt_none":[]},[{"FCL_funcl":[{"Id":"initialize_registers"},{"Pat_exp":[{"P_lit":["L_unit"]},{"E_block":[[{"E_assign":[{"LE_id":[{"Id":"rvfi_instruction"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_inst_data"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_pc_data"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_int_data"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_int_data_present"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"rvfi_mem_data_present"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"PC"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"nextPC"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x1"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x2"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x3"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x4"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x5"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x6"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x7"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x8"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x9"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x10"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x11"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x12"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x13"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x14"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x15"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x16"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x17"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x18"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x19"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x20"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x21"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x22"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x23"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x24"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x25"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x26"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x27"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x28"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x29"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x30"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"x31"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"cur_privilege"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"cur_inst"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mie"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mip"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"medeleg"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mideleg"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mtvec"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mcause"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mepc"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mtval"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mscratch"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"scounteren"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mcounteren"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mcountinhibit"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mcycle"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mtime"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"minstret"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"minstret_increment"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"stvec"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"sscratch"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"sepc"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"scause"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"stval"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"tselect"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"pmpcfg_n"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"pmpaddr_n"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f0"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f1"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f2"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f3"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f4"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f5"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f6"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f7"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f8"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f9"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f10"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f11"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f12"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f13"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f14"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f15"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f16"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f17"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f18"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f19"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f20"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f21"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f22"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f23"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f24"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f25"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f26"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f27"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f28"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f29"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f30"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"f31"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"fcsr"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr0"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr1"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr2"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr3"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr4"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr5"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr6"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr7"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr8"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr9"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr10"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr11"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr12"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr13"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr14"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr15"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr16"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr17"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr18"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr19"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr20"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr21"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr22"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr23"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr24"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr25"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr26"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr27"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr28"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr29"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr30"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vr31"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vstart"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vl"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vtype"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"vcsr"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mcyclecfg"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"minstretcfg"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"elp"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mtimecmp"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"stimecmp"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_tohost"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_done"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_exit_code"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_cmd_write"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"htif_payload_writes"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"satp"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mhpmevent"}]},{"E_lit":["L_undef"]}]},{"E_assign":[{"LE_id":[{"Id":"mhpmcounter"}]},{"E_lit":["L_undef"]}]}]]}]}]}]]}}]}
diff --git a/sail-to-json/sail_json_backend.opam b/sail-to-json/sail_json_backend.opam
new file mode 100644
index 0000000..14dc67d
--- /dev/null
+++ b/sail-to-json/sail_json_backend.opam
@@ -0,0 +1,42 @@
+# This file is generated by dune, edit dune-project instead
+opam-version: "2.0"
+version: "0.20"
+synopsis: "Sail to JSON translation"
+maintainer: ["Sail Devs "]
+authors: [
+ "Alasdair Armstrong"
+ "Thomas Bauereiss"
+ "Brian Campbell"
+ "Shaked Flur"
+ "Jonathan French"
+ "Kathy Gray"
+ "Robert Norton"
+ "Christopher Pulte"
+ "Peter Sewell"
+ "Mark Wassell"
+]
+license: "BSD-2-Clause"
+homepage: "https://github.com/rems-project/sail"
+bug-reports: "https://github.com/rems-project/sail/issues"
+depends: [
+ "dune" {>= "3.11"}
+ "libsail" {= version}
+ "odoc" {with-doc}
+]
+build: [
+ ["dune" "subst"] {dev}
+ [
+ "dune"
+ "build"
+ "-p"
+ name
+ "-j"
+ jobs
+ "--promote-install-files=false"
+ "@install"
+ "@runtest" {with-test}
+ "@doc" {with-doc}
+ ]
+ ["dune" "install" "-p" name "--create-install-files" name]
+]
+dev-repo: "git+https://github.com/rems-project/sail.git"
diff --git a/sail-to-json/sail_json_backend/dune b/sail-to-json/sail_json_backend/dune
new file mode 100644
index 0000000..5bdadf9
--- /dev/null
+++ b/sail-to-json/sail_json_backend/dune
@@ -0,0 +1,20 @@
+(env
+ (dev
+ (flags
+ (:standard -w -33 -w -27 -w -32 -w -26 -w -37)))
+ (release
+ (flags
+ (:standard -w -33 -w -27 -w -32 -w -26 -w -37))))
+
+(executable
+ (name sail_plugin_json)
+ (modes
+ (native plugin))
+ (libraries libsail))
+
+(install
+ (section
+ (site
+ (libsail plugins)))
+ (package sail_json_backend)
+ (files sail_plugin_json.cmxs))
diff --git a/sail-to-json/sail_json_backend/pretty_print_json.ml b/sail-to-json/sail_json_backend/pretty_print_json.ml
new file mode 100644
index 0000000..dcdc7c6
--- /dev/null
+++ b/sail-to-json/sail_json_backend/pretty_print_json.ml
@@ -0,0 +1,635 @@
+(****************************************************************************)
+(* Sail *)
+(* *)
+(* Sail and the Sail architecture models here, comprising all files and *)
+(* directories except the ASL-derived Sail code in the aarch64 directory, *)
+(* are subject to the BSD two-clause licence below. *)
+(* *)
+(* The ASL derived parts of the ARMv8.3 specification in *)
+(* aarch64/no_vector and aarch64/full are copyright ARM Ltd. *)
+(* *)
+(* Copyright (c) 2013-2021 *)
+(* Kathyrn Gray *)
+(* Shaked Flur *)
+(* Stephen Kell *)
+(* Gabriel Kerneis *)
+(* Robert Norton-Wright *)
+(* Christopher Pulte *)
+(* Peter Sewell *)
+(* Alasdair Armstrong *)
+(* Brian Campbell *)
+(* Thomas Bauereiss *)
+(* Anthony Fox *)
+(* Jon French *)
+(* Dominic Mulligan *)
+(* Stephen Kell *)
+(* Mark Wassell *)
+(* Alastair Reid (Arm Ltd) *)
+(* *)
+(* All rights reserved. *)
+(* *)
+(* This work was partially supported by EPSRC grant EP/K008528/1 REMS: Rigorous *)
+(* Engineering for Mainstream Systems, an ARM iCASE award, EPSRC IAA *)
+(* KTF funding, and donations from Arm. This project has received *)
+(* funding from the European Research Council (ERC) under the European *)
+(* Union’s Horizon 2020 research and innovation programme (grant *)
+(* agreement No 789108, ELVER). *)
+(* *)
+(* This software was developed by SRI International and the University of *)
+(* Cambridge Computer Laboratory (Department of Computer Science and *)
+(* Technology) under DARPA/AFRL contracts FA8650-18-C-7809 ("CIFV") *)
+(* and FA8750-10-C-0237 ("CTSRD"). *)
+(* *)
+(* Redistribution and use in source and binary forms, with or without *)
+(* modification, are permitted provided that the following conditions *)
+(* are met: *)
+(* 1. Redistributions of source code must retain the above copyright *)
+(* notice, this list of conditions and the following disclaimer. *)
+(* 2. 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. *)
+(* *)
+(* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 AUTHOR 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. *)
+(****************************************************************************)
+
+open Libsail
+
+open Printf
+open Ast
+open Value
+open Value_type
+
+module Big_int = Nat_big_num
+module StringMap = Map.Make (String)
+
+let json_of_string s =
+ sprintf "\"%s\"" (String.escaped s)
+
+let json_of_int i =
+ sprintf "%d" i
+
+let json_of_bool b =
+ if b then "true" else "false"
+
+let json_of_list json_of_elem lst =
+ let elems = List.map json_of_elem lst in
+ sprintf "[%s]" (String.concat "," elems)
+
+let json_of_dict_items json_of_dict_key json_of_dict_value (key,value) =
+ sprintf "%s:%s" (json_of_dict_key key) (json_of_dict_value value)
+
+let json_of_dict json_of_dict_key json_of_dict_value lst =
+ let items = List.map (json_of_dict_items json_of_dict_key json_of_dict_value) lst in
+ sprintf "{%s}" (String.concat "," items)
+
+let json_of_big_int num =
+ sprintf "%s" (Big_int.to_string num)
+
+let json_of_option json_of_elem = function
+ | None -> "null"
+ | Some x -> json_of_elem x
+
+let json_of_loop = function
+ | While -> json_of_string "While"
+ | Until -> json_of_string "Until"
+
+let json_of_visibility = function
+ | Public -> json_of_string "Public"
+ | Private loc -> json_of_string "Private"
+
+let rec json_of_value = function
+ | V_vector values -> sprintf "{\"V_vector\":%s}" (json_of_list json_of_value values)
+ | V_bit bit -> sprintf "{\"V_bit\":\"%s\"}" (Sail_lib.string_of_bit bit)
+ | V_list values -> sprintf "{\"V_list\":%s}" (json_of_list json_of_value values)
+ | V_int num -> sprintf "{\"V_int\":%s}" (json_of_big_int num)
+ | V_real real -> sprintf "{\"V_real\":[%s,%s]}" (Big_int.to_string (Rational.num real)) (Big_int.to_string (Rational.den real))
+ | V_bool b -> sprintf "{\"V_bool\":%s}" (json_of_bool b)
+ | V_tuple values -> sprintf "{\"V_tuple\":%s}" (json_of_list json_of_value values)
+ | V_unit -> "\"V_unit\""
+ | V_string s -> sprintf "{\"V_string\":%s}" (json_of_string s)
+ | V_ref s -> sprintf "{\"V_ref\":%s}" (json_of_string s)
+ | V_member s -> sprintf "{\"V_member\":%s}" (json_of_string s)
+ | V_ctor (s,values) -> sprintf "{\"V_ctor\":[%s,%s]}" (json_of_string s) (json_of_list json_of_value values)
+ | V_record fields ->
+ let elems = List.fold_left (fun acc (key, value) ->
+ let elem = sprintf "\"%s\":%s" key (json_of_value value) in
+ elem ::acc
+ ) [] fields in
+ sprintf "{\"V_record\":{%s}}" (String.concat "," (List.rev elems))
+ | V_attempted_read s -> sprintf "{\"V_attempted_read\":%s}" (json_of_string s)
+
+let json_of_extern (ext: extern) =
+ let bindings_json = json_of_list (fun (k,v) -> sprintf "[%s,%s]" (json_of_string k) (json_of_string v)) ext.bindings in
+ sprintf "{\"pure\":%s,\"bindings\":%s}" (json_of_bool ext.pure) bindings_json
+
+let rec json_of_kid_aux = function
+ | Var x -> sprintf "{\"Var\":%s}" (json_of_string x)
+
+and json_of_kid = function
+ | Kid_aux (kid_aux,_) -> (json_of_kid_aux kid_aux)
+
+let rec json_of_kind_aux = function
+ | K_type -> json_of_string "K_type"
+ | K_int -> json_of_string "K_int"
+ | K_bool -> json_of_string "K_bool"
+
+and json_of_kind = function
+ | K_aux (kind_aux,_) -> (json_of_kind_aux kind_aux)
+
+let rec json_of_id_aux = function
+ | Id x -> sprintf "{\"Id\":%s}" (json_of_string x)
+ | Operator x -> sprintf "{\"Operator\":%s}" (json_of_string x)
+ | And_bool -> sprintf "[\"And_Bool\"]"
+ | Or_bool -> sprintf "[\"Or_Bool\"]"
+
+and json_of_id = function
+ | Id_aux (id_aux,_) -> (json_of_id_aux id_aux)
+
+let rec json_of_kinded_id_aux = function
+ | KOpt_kind (k,kid) -> sprintf "{\"KOpt_kind\":[%s,%s]}" (json_of_kind k) (json_of_kid kid)
+
+and json_of_kinded_id = function
+ | KOpt_aux (kinded_id_aux,_) -> (json_of_kinded_id_aux kinded_id_aux)
+
+let rec hex_digit_to_char = function
+ | Hex_0 -> '0'
+ | Hex_1 -> '1'
+ | Hex_2 -> '2'
+ | Hex_3 -> '3'
+ | Hex_4 -> '4'
+ | Hex_5 -> '5'
+ | Hex_6 -> '6'
+ | Hex_7 -> '7'
+ | Hex_8 -> '8'
+ | Hex_9 -> '9'
+ | Hex_A -> 'A'
+ | Hex_B -> 'B'
+ | Hex_C -> 'C'
+ | Hex_D -> 'D'
+ | Hex_E -> 'E'
+ | Hex_F -> 'F'
+
+and bin_digit_to_char = function
+ | Bin_0 -> '0'
+ | Bin_1 -> '1'
+
+and string_of_hex_non_empty (Non_empty (h, t)) =
+ let chars = hex_digit_to_char h :: List.map hex_digit_to_char t in
+ String.of_seq (List.to_seq chars)
+
+and string_of_hex_non_empty_list lst =
+ lst
+ |> List.map string_of_hex_non_empty
+ |> String.concat ""
+
+and string_of_bin_non_empty (Non_empty (h, t)) =
+ let chars = bin_digit_to_char h :: List.map bin_digit_to_char t in
+ String.of_seq (List.to_seq chars)
+
+and string_of_bin_non_empty_list lst =
+ lst
+ |> List.map string_of_bin_non_empty
+ |> String.concat ""
+
+let rec json_of_lit_aux = function
+ | L_unit -> json_of_string "L_unit"
+ | L_zero -> json_of_string "L_zero"
+ | L_one -> json_of_string "L_one"
+ | L_true -> json_of_string "L_true"
+ | L_false -> json_of_string "L_false"
+ | L_num num -> sprintf "{\"L_num\":%s}" (json_of_big_int num)
+ | L_hex hex_list -> sprintf "{\"L_hex\":%s}" (json_of_string (string_of_hex_non_empty_list hex_list))
+ | L_bin bin_list -> sprintf "{\"L_bin\":%s}" (json_of_string (string_of_bin_non_empty_list bin_list))
+ | L_string s -> sprintf "{\"L_string\":%s}" (json_of_string s)
+ | L_undef -> json_of_string "L_undef"
+ | L_real s -> sprintf "{\"L_real\":%s}" (json_of_string s)
+
+and json_of_lit = function
+ | L_aux (l_aux,_) -> (json_of_lit_aux l_aux)
+
+let json_of_field_pat_wildcard = function
+ | FP_wild (_) -> sprintf "{\"FP_wild\":[]}"
+ | FP_no_wild -> "{\"FP_no_wild\":[]}"
+
+let rec json_of_typ_pat_aux = function
+ | TP_wild -> "{\"TP_wild\":[]}"
+ | TP_var kid -> sprintf "{\"TP_var\":[%s]}" (json_of_kid kid)
+ | TP_app (id,typ_pat_list) -> sprintf "{\"TP_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_typ_pat typ_pat_list)
+
+and json_of_typ_pat = function
+ | TP_aux (aux,_) -> (json_of_typ_pat_aux aux)
+
+let rec json_of_typ_aux = function
+ | Typ_internal_unknown -> "{\"Typ_internal_unknown\":[]}"
+ | Typ_id id -> sprintf "{\"Typ_id\":[%s]}" (json_of_id id)
+ | Typ_var kid -> sprintf "{\"Typ_var\":[%s]}" (json_of_kid kid)
+ | Typ_fn (typ_list,typ) -> sprintf "{\"Typ_fn\":[%s,%s]}" (json_of_list json_of_typ typ_list) (json_of_typ typ)
+ | Typ_bidir (typ1,typ2) -> sprintf "{\"Typ_bidir\":[%s,%s]}" (json_of_typ typ1) (json_of_typ typ2)
+ | Typ_tuple typ_list -> sprintf "{\"Typ_tuple\":[%s]}" (json_of_list json_of_typ typ_list)
+ | Typ_app (id,typ_arg_list) -> sprintf "{\"Typ_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_typ_arg typ_arg_list)
+ | Typ_exist (kinded_id_list,n_constraint,typ) -> sprintf "{\"Typ_exist\":[%s,%s,%s]}" (json_of_list json_of_kinded_id kinded_id_list) (json_of_n_constraint n_constraint) (json_of_typ typ)
+
+and json_of_typ = function
+ | Typ_aux (typ_aux,_) -> (json_of_typ_aux typ_aux)
+
+and json_of_typ_arg_aux = function
+ | A_nexp nexp -> sprintf "{\"A_nexp\":[%s]}" (json_of_nexp nexp)
+ | A_typ typ -> sprintf "{\"A_typ\":[%s]}" (json_of_typ typ)
+ | A_bool n_constraint -> sprintf "{\"A_bool\":[%s]}" (json_of_n_constraint n_constraint)
+
+and json_of_typ_arg = function
+ | A_aux (typ_arg_aux,_) -> (json_of_typ_arg_aux typ_arg_aux)
+
+and json_of_nexp_aux = function
+ | Nexp_id id -> sprintf "{\"Nexp_id\":[%s]}" (json_of_id id)
+ | Nexp_var kid -> sprintf "{\"Nexp_var\":[%s]}" (json_of_kid kid)
+ | Nexp_constant num -> sprintf "{\"Nexp_constant\":[%s]}" (json_of_big_int num)
+ | Nexp_app (id,nexp_list) -> sprintf "{\"Nexp_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_nexp nexp_list)
+ | Nexp_if (n_constraint,nexp1,nexp2) -> sprintf "{\"Nexp_if\":[%s,%s,%s]}" (json_of_n_constraint n_constraint) (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | Nexp_times (nexp1,nexp2) -> sprintf "{\"Nexp_times\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | Nexp_sum (nexp1,nexp2) -> sprintf "{\"Nexp_sum\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | Nexp_minus (nexp1,nexp2) -> sprintf "{\"Nexp_minus\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | Nexp_exp nexp -> sprintf "{\"Nexp_exp\":[%s]}" (json_of_nexp nexp)
+ | Nexp_neg nexp -> sprintf "{\"Nexp_neg\":[%s]}" (json_of_nexp nexp)
+
+and json_of_nexp = function
+ | Nexp_aux (nexp_aux,_) -> (json_of_nexp_aux nexp_aux)
+
+and json_of_n_constraint_aux = function
+ | NC_equal (arg1,arg2) -> sprintf "{\"NC_equal\":[%s,%s]}" (json_of_typ_arg arg1) (json_of_typ_arg arg2)
+ | NC_not_equal (arg1,arg2) -> sprintf "{\"NC_not_equal\":[%s,%s]}" (json_of_typ_arg arg1) (json_of_typ_arg arg2)
+ | NC_ge (nexp1,nexp2) -> sprintf "{\"NC_ge\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | NC_gt (nexp1,nexp2) -> sprintf "{\"NC_gt\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | NC_le (nexp1,nexp2) -> sprintf "{\"NC_le\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | NC_lt (nexp1,nexp2) -> sprintf "{\"NC_lt\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | NC_set (nexp,num_list) -> sprintf "{\"NC_set\":[%s,%s]}" (json_of_nexp nexp) (json_of_list json_of_big_int num_list)
+ | NC_and (n_constraint1,n_constraint2) -> sprintf "{\"NC_and\":[%s,%s]}" (json_of_n_constraint n_constraint1) (json_of_n_constraint n_constraint2)
+ | NC_or (n_constraint1,n_constraint2) -> sprintf "{\"NC_or\":[%s,%s]}" (json_of_n_constraint n_constraint1) (json_of_n_constraint n_constraint2)
+ | NC_app (id,typ_arg_list) -> sprintf "{\"NC_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_typ_arg typ_arg_list)
+ | NC_id (id) -> sprintf "{\"NC_id\":[%s]}" (json_of_id id)
+ | NC_var (kid) -> sprintf "{\"NC_var\":[%s]}" (json_of_kid kid)
+ | NC_true -> json_of_string "NC_true"
+ | NC_false -> json_of_string "NC_false"
+
+and json_of_n_constraint = function
+ | NC_aux (n_constraint_aux,_) -> (json_of_n_constraint_aux n_constraint_aux)
+
+let rec json_of_order_aux = function
+ | Ord_inc -> json_of_string "Ord_inc"
+ | Ord_dec -> json_of_string "Ord_dec"
+
+and json_of_order = function
+ | Ord_aux (order_aux,_) -> (json_of_order_aux order_aux)
+
+let rec json_of_struct (id,pat) =
+ sprintf "[%s,%s]" (json_of_id id) (json_of_pat pat)
+
+and json_of_pat_aux = function
+ | P_lit lit -> sprintf "{\"P_lit\":[%s]}" (json_of_lit lit)
+ | P_wild -> "{\"P_wild\":[]}"
+ | P_or (pat1,pat2) -> sprintf "{\"P_or\":[%s,%s]}" (json_of_pat pat1) (json_of_pat pat2)
+ | P_not (pat) -> sprintf "{\"P_not\":[%s]}" (json_of_pat pat)
+ | P_as (pat,id) -> sprintf "{\"P_as\":[%s,%s]}" (json_of_pat pat) (json_of_id id)
+ | P_typ (typ,pat) -> sprintf "{\"P_typ\":[%s,%s]}" (json_of_typ typ) (json_of_pat pat)
+ | P_id id -> sprintf "{\"P_id\":[%s]}" (json_of_id id)
+ | P_var (pat,typ_pat) -> sprintf "{\"P_var\":[%s,%s]}" (json_of_pat pat) (json_of_typ_pat typ_pat)
+ | P_app (id,pats) -> sprintf "{\"P_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_pat pats)
+ | P_vector pats -> sprintf "{\"P_vector\":[%s]}" (json_of_list json_of_pat pats)
+ | P_vector_concat pats -> sprintf "{\"P_vector_concat\":[%s]}" (json_of_list json_of_pat pats)
+ | P_vector_subrange (id,big_int1,big_int2) ->
+ sprintf "{\"P_vector_subrange\":[%s,%s,%s]}" (json_of_id id) (json_of_big_int big_int1) (json_of_big_int big_int2)
+ | P_tuple pats -> sprintf "{\"P_tuple\":[%s]}" (json_of_list json_of_pat pats)
+ | P_list pats -> sprintf "{\"P_list\":[%s]}" (json_of_list json_of_pat pats)
+ | P_cons (pat1,pat2) -> sprintf "{\"P_cons\":[%s,%s]}" (json_of_pat pat1) (json_of_pat pat2)
+ | P_string_append pats -> sprintf "{\"P_string_append\":%s}" (json_of_list json_of_pat pats)
+ | P_struct (_,struct_list,field_pat_wildcard) ->
+ sprintf "{\"P_struct\":[%s,%s]}"
+ (json_of_list json_of_struct struct_list)
+ (json_of_field_pat_wildcard field_pat_wildcard)
+
+and json_of_pat = function
+ | P_aux (pat_aux,(_,_)) -> (json_of_pat_aux pat_aux)
+
+let rec json_of_typquant_aux = function
+ | TypQ_tq quant_items -> sprintf "{\"TypQ_tq\":[%s]}" (json_of_list json_of_quant_item quant_items)
+ | TypQ_no_forall -> "{\"TypQ_no_forall\":[]}"
+
+and json_of_typquant = function
+ | TypQ_aux (typquant_aux,_) -> (json_of_typquant_aux typquant_aux)
+
+and json_of_quant_item_aux = function
+ | QI_id kinded_id -> sprintf "{\"QI_id\":[%s]}" (json_of_kinded_id kinded_id)
+ | QI_constraint n_constraint -> sprintf "{\"QI_constraint\":[%s]}" (json_of_n_constraint n_constraint)
+
+and json_of_quant_item = function
+ | QI_aux (quant_item_aux,_) -> (json_of_quant_item_aux quant_item_aux)
+
+let rec json_of_exp_aux = function
+ | E_block exps -> sprintf "{\"E_block\":[%s]}" (json_of_list json_of_exp exps)
+ | E_id id -> sprintf "{\"E_id\":[%s]}" (json_of_id id)
+ | E_lit lit -> sprintf "{\"E_lit\":[%s]}" (json_of_lit lit)
+ | E_typ (typ,exp) -> sprintf "{\"E_typ\":[%s,%s]}" (json_of_typ typ) (json_of_exp exp)
+ | E_app (id,exps) -> sprintf "{\"E_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_exp exps)
+ | E_tuple exps -> sprintf "{\"E_tuple\":[%s]}" (json_of_list json_of_exp exps)
+ | E_if (cond,then_exp,else_exp) -> sprintf "{\"E_if\":[%s,%s,%s]}" (json_of_exp cond) (json_of_exp then_exp) (json_of_exp else_exp)
+ | E_loop (loop,internal_loop_measure,cond,body) ->
+ sprintf "{\"E_loop\":[%s,%s,%s,%s]}" (json_of_loop loop) (json_of_internal_loop_measure internal_loop_measure) (json_of_exp cond) (json_of_exp body)
+ | E_for (id,exp1,exp2,exp3,order,body) -> sprintf "{\"E_for\":[%s,%s,%s,%s,%s,%s]}" (json_of_id id) (json_of_exp exp1) (json_of_exp exp2) (json_of_exp exp3) (json_of_order order) (json_of_exp body)
+ | E_vector exps -> sprintf "{\"E_vector\":[%s]}" (json_of_list json_of_exp exps)
+ | E_vector_append (exp1,exp2) -> sprintf "{\"E_vector_append\":[%s,%s]}" (json_of_exp exp1) (json_of_exp exp2)
+ | E_list exps -> sprintf "{\"E_list\":[%s]}" (json_of_list json_of_exp exps)
+ | E_cons (hd,tl) -> sprintf "{\"E_cons\":[%s,%s]}" (json_of_exp hd) (json_of_exp tl)
+ | E_struct (_,fields) -> sprintf "{\"E_struct\":[%s]}" (json_of_list json_of_fexp fields)
+ | E_struct_update (exp,fields) -> sprintf "{\"E_struct_update\":[%s,%s]}" (json_of_exp exp) (json_of_list json_of_fexp fields)
+ | E_field (exp,field) -> sprintf "{\"E_field\":[%s,%s]}" (json_of_exp exp) (json_of_id field)
+ | E_match (exp,cases) -> sprintf "{\"E_match\":[%s,%s]}" (json_of_exp exp) (json_of_list json_of_pexp cases)
+ | E_let (letbind,exp) -> sprintf "{\"E_let\":[%s,%s]}" (json_of_letbind letbind) (json_of_exp exp)
+ | E_assign (lexp,exp) -> sprintf "{\"E_assign\":[%s,%s]}" (json_of_lexp lexp) (json_of_exp exp)
+ | E_sizeof nexp -> sprintf "{\"E_sizeof\":[%s]}" (json_of_nexp nexp)
+ | E_return exp -> sprintf "{\"E_return\":[%s]}" (json_of_exp exp)
+ | E_exit exp -> sprintf "{\"E_exit\":[%s]}" (json_of_exp exp)
+ | E_config config -> sprintf "{\"E_config\":[%s]}" (json_of_list json_of_string config)
+ | E_ref id -> sprintf "{\"E_ref\":[%s]}" (json_of_id id)
+ | E_throw exp -> sprintf "{\"E_throw\":[%s]}" (json_of_exp exp)
+ | E_try (exp,cases) -> sprintf "{\"E_try\":[%s,%s]}" (json_of_exp exp) (json_of_list json_of_pexp cases)
+ | E_assert (exp1,exp2) -> sprintf "{\"E_assert\":[%s,%s]}" (json_of_exp exp1) (json_of_exp exp2)
+ | E_var (lexp,exp1,exp2) -> sprintf "{\"E_var\":[%s,%s,%s]}" (json_of_lexp lexp) (json_of_exp exp1) (json_of_exp exp2)
+ | E_internal_plet (pat,exp1,exp2) -> sprintf "{\"E_internal_plet\":[%s,%s,%s]}" (json_of_pat pat) (json_of_exp exp1) (json_of_exp exp2)
+ | E_internal_return exp -> sprintf "{\"E_internal_return\":[%s]}" (json_of_exp exp)
+ | E_internal_value value -> sprintf "{\"E_internal_value\":[%s]}" (json_of_value value)
+ | E_internal_assume (n_constraint,exp) -> sprintf "{\"E_internal_value\":[%s,%s]}" (json_of_n_constraint n_constraint) (json_of_exp exp)
+ | E_constraint n_constraint -> sprintf "{\"E_constraint\":[%s]}" (json_of_n_constraint n_constraint)
+
+and json_of_exp = function
+ | E_aux (exp_aux,(_,_)) -> (json_of_exp_aux exp_aux)
+
+and json_of_lexp_aux = function
+ | LE_id id -> sprintf "{\"LE_id\":[%s]}" (json_of_id id)
+ | LE_deref exp -> sprintf "{\"LE_deref\":[%s]}" (json_of_exp exp)
+ | LE_app (id,exps) -> sprintf "{\"LE_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_exp exps)
+ | LE_typ (typ,id) -> sprintf "{\"LE_typ\":[%s,%s]}" (json_of_typ typ) (json_of_id id)
+ | LE_tuple lexps -> sprintf "{\"LE_tuple\":[%s]}" (json_of_list json_of_lexp lexps)
+ | LE_vector_concat lexps -> sprintf "{\"LE_vector_concat\":[%s]}" (json_of_list json_of_lexp lexps)
+ | LE_vector (lexp,exp) -> sprintf "{\"LE_vector\":[%s,%s]}" (json_of_lexp lexp) (json_of_exp exp)
+ | LE_vector_range (lexp,exp1,exp2) -> sprintf "{\"LE_vector_range\":[%s,%s,%s]}" (json_of_lexp lexp) (json_of_exp exp1) (json_of_exp exp2)
+ | LE_field (lexp,id) -> sprintf "{\"LE_field\":[%s,%s]}" (json_of_lexp lexp) (json_of_id id)
+
+and json_of_lexp = function
+ | LE_aux (lexp,(_,_)) -> (json_of_lexp_aux lexp)
+
+and json_of_fexp_aux = function
+ | FE_fexp (id,exp) -> sprintf "{\"FE_fexp\":[%s,%s]}" (json_of_id id) (json_of_exp exp)
+
+and json_of_fexp = function
+ | FE_aux (fexp,(_,_)) -> (json_of_fexp_aux fexp)
+
+and json_of_pexp_aux = function
+ | Pat_exp (pat,exp) -> sprintf "{\"Pat_exp\":[%s,%s]}" (json_of_pat pat) (json_of_exp exp)
+ | Pat_when (pat,exp1,exp2) -> sprintf "{\"Pat_when\":[%s,%s,%s]}" (json_of_pat pat) (json_of_exp exp1) (json_of_exp exp2)
+
+and json_of_pexp = function
+ | Pat_aux (pexp,(_,_)) -> (json_of_pexp_aux pexp)
+
+and json_of_letbind_aux = function
+ | LB_val (pat,exp) -> sprintf "{\"LB_val\":[%s,%s]}" (json_of_pat pat) (json_of_exp exp)
+
+and json_of_letbind = function
+ | LB_aux (letbind_aux,(_,_)) -> (json_of_letbind_aux letbind_aux)
+
+and json_of_internal_loop_measure_aux = function
+ | Measure_none -> "{\"Measure_none\":[]}"
+ | Measure_some (exp) -> sprintf "{\"Measure_some\":[%s]}" (json_of_exp exp)
+
+and json_of_internal_loop_measure = function
+ | Measure_aux (measure,_) -> (json_of_internal_loop_measure_aux measure)
+
+let rec json_of_mpat_aux = function
+ | MP_lit lit -> sprintf "{\"MP_lit\":[%s]}" (json_of_lit lit)
+ | MP_id id -> sprintf "{\"MP_id\":[%s]}" (json_of_id id)
+ | MP_app (id,mpats) -> sprintf "{\"MP_app\":[%s,%s]}" (json_of_id id) (json_of_list json_of_mpat mpats)
+ | MP_vector mpats -> sprintf "{\"MP_vector\":[%s]}" (json_of_list json_of_mpat mpats)
+ | MP_vector_concat mpats -> sprintf "{\"MP_vector_concat\":[%s]}" (json_of_list json_of_mpat mpats)
+ | MP_vector_subrange (id,n1,n2) -> sprintf "{\"MP_vector_subrange\":[%s,%s,%s]}" (json_of_id id) (json_of_big_int n1) (json_of_big_int n2)
+ | MP_tuple mpats -> sprintf "{\"MP_tuple\":[%s]}" (json_of_list json_of_mpat mpats)
+ | MP_list mpats -> sprintf "{\"MP_list\":[%s]}" (json_of_list json_of_mpat mpats)
+ | MP_cons (mpat1,mpat2) -> sprintf "{\"MP_cons\":[%s,%s]}" (json_of_mpat mpat1) (json_of_mpat mpat2)
+ | MP_string_append mpats -> sprintf "{\"MP_string_append\":[%s]}" (json_of_list json_of_mpat mpats)
+ | MP_typ (mpat,typ) -> sprintf "{\"MP_typ\":[%s,%s]}" (json_of_mpat mpat) (json_of_typ typ)
+ | MP_as (mpat,id) -> sprintf "{\"MP_as\":[%s,%s]}" (json_of_mpat mpat) (json_of_id id)
+ | MP_struct (_,fexps) -> sprintf "{\"MP_struct\":[%s]}" (json_of_list (fun (id,mpat) -> sprintf "[%s,%s]" (json_of_id id) (json_of_mpat mpat)) fexps)
+
+and json_of_mpat = function
+ | MP_aux (mpat_aux,(_,_)) -> (json_of_mpat_aux mpat_aux)
+
+let rec json_of_mpexp_aux = function
+ | MPat_pat mpat -> sprintf "{\"MPat_pat\":[%s]}" (json_of_mpat mpat)
+ | MPat_when (mpat,exp) -> sprintf "{\"MPat_when\":[%s,%s]}" (json_of_mpat mpat) (json_of_exp exp)
+
+and json_of_mpexp = function
+ | MPat_aux (mpexp_aux,(_,_)) -> (json_of_mpexp_aux mpexp_aux)
+
+let rec json_of_mapcl_aux = function
+ | MCL_bidir (mpexp1,mpexp2) -> sprintf "{\"MCL_bidir\":[%s,%s]}" (json_of_mpexp mpexp1) (json_of_mpexp mpexp2)
+ | MCL_forwards pexp -> sprintf "{\"MCL_forwards\":[%s]}" (json_of_pexp pexp)
+ | MCL_backwards pexp -> sprintf "{\"MCL_backwards\":[%s]}" (json_of_pexp pexp)
+
+and json_of_mapcl = function
+ | MCL_aux (mapcl_aux,(_,_)) -> (json_of_mapcl_aux mapcl_aux)
+
+let rec json_of_funcl_aux = function
+ | FCL_funcl (id,pexp) -> sprintf "{\"FCL_funcl\":[%s,%s]}" (json_of_id id) (json_of_pexp pexp)
+
+and json_of_funcl = function
+ | FCL_aux (funcl_aux,(_,_)) -> (json_of_funcl_aux funcl_aux)
+
+let rec json_of_rec_opt_aux = function
+ | Rec_nonrec -> "{\"Rec_nonrec\":[]}"
+ | Rec_rec -> "{\"Rec_rec\":[]}"
+ | Rec_measure (pat,exp) -> sprintf "{\"Rec_measure\":[%s,%s]}" (json_of_pat pat) (json_of_exp exp)
+
+and json_of_rec_opt = function
+ | Rec_aux (rec_opt_aux,_) -> (json_of_rec_opt_aux rec_opt_aux)
+
+let rec json_of_tannot_opt_aux = function
+ | Typ_annot_opt_none -> "{\"Typ_annot_opt_none\":[]}"
+ | Typ_annot_opt_some (typquant,typ) -> sprintf "{\"Typ_annot_opt_some\":[%s,%s]}" (json_of_typquant typquant) (json_of_typ typ)
+
+and json_of_tannot_opt = function
+ | Typ_annot_opt_aux (tannot_opt_aux,_) -> (json_of_tannot_opt_aux tannot_opt_aux)
+
+let rec json_of_type_union_aux = function
+ | Tu_ty_id (typ,id) -> sprintf "{\"Tu_ty_id\":[%s,%s]}" (json_of_typ typ) (json_of_id id)
+
+and json_of_type_union = function
+ | Tu_aux (type_union_aux,_) -> (json_of_type_union_aux type_union_aux)
+
+let rec json_of_typschm_aux = function
+ | TypSchm_ts (typquant,typ) -> sprintf "{\"TypSchm_ts\":[%s,%s]}" (json_of_typquant typquant) (json_of_typ typ)
+
+and json_of_typschm = function
+ | TypSchm_aux (typschm_aux,_) -> (json_of_typschm_aux typschm_aux)
+
+let rec json_of_index_range_aux = function
+ | BF_single nexp -> sprintf "{\"BF_single\":%s}" (json_of_nexp nexp)
+ | BF_range (nexp1,nexp2) -> sprintf "{\"BF_range\":[%s,%s]}" (json_of_nexp nexp1) (json_of_nexp nexp2)
+ | BF_concat (index_range1,index_range2) -> sprintf "{\"BF_concat\":[%s,%s]}" (json_of_index_range index_range1) (json_of_index_range index_range2)
+
+and json_of_index_range = function
+ | BF_aux (index_range_aux,_) -> (json_of_index_range_aux index_range_aux)
+
+let rec json_of_dec_spec_aux = function
+ | DEC_reg (typ,id,exp_opt) -> sprintf "{\"DEC_reg\":[%s,%s,%s]}" (json_of_typ typ) (json_of_id id) (json_of_option json_of_exp exp_opt)
+
+and json_of_dec_spec = function
+ | DEC_aux (dec_spec_aux,(_,_)) -> (json_of_dec_spec_aux dec_spec_aux)
+
+let rec json_of_scattered_def_aux = function
+ | SD_function (id,tannot_opt) -> sprintf "{\"SD_function\":[%s,%s]}" (json_of_id id) (json_of_tannot_opt tannot_opt)
+ | SD_funcl funcl -> sprintf "{\"SD_funcl\":%s}" (json_of_funcl funcl)
+ | SD_variant (id,typquant) -> sprintf "{\"SD_variant\":[%s,%s]}" (json_of_id id) (json_of_typquant typquant)
+ | SD_unioncl (id,type_union) -> sprintf "{\"SD_unioncl\":[%s,%s]}" (json_of_id id) (json_of_type_union type_union)
+ | SD_internal_unioncl_record (id1,id2,typquant,typs) -> sprintf "{\"SD_internal_unioncl_record\":[%s,%s,%s,%s]}" (json_of_id id1) (json_of_id id2) (json_of_typquant typquant) (json_of_list (fun ((id, typ), _def_annot) -> sprintf "[%s,%s]" (json_of_typ typ) (json_of_id id)) typs)
+ | SD_mapping (id,tannot_opt) -> sprintf "{\"SD_mapping\":[%s,%s]}" (json_of_id id) (json_of_tannot_opt tannot_opt)
+ | SD_mapcl (id,mapcl) -> sprintf "{\"SD_mapcl\":[%s,%s]}" (json_of_id id) (json_of_mapcl mapcl)
+ | SD_enum id -> sprintf "{\"SD_enum\":%s}" (json_of_id id)
+ | SD_enumcl (id1,id2) -> sprintf "{\"SD_enumcl\":[%s,%s]}" (json_of_id id1) (json_of_id id2)
+ | SD_end id -> sprintf "{\"SD_end\":%s}" (json_of_id id)
+
+and json_of_scattered_def = function
+ | SD_aux (scattered_def_aux,(_,_)) -> (json_of_scattered_def_aux scattered_def_aux)
+
+let rec json_of_default_spec_aux = function
+ | DT_order order -> sprintf "{\"DT_order\":%s}" (json_of_order order)
+
+and json_of_default_spec = function
+ | DT_aux (default_spec_aux,_) -> (json_of_default_spec_aux default_spec_aux)
+
+let rec json_of_val_spec_aux = function
+ | VS_val_spec (typschm,id,extern_opt) -> sprintf "{\"VS_val_spec\":[%s,%s,%s]}" (json_of_typschm typschm) (json_of_id id) (json_of_option json_of_extern extern_opt)
+
+and json_of_val_spec = function
+ | VS_aux (val_spec_aux,(_,_)) -> (json_of_val_spec_aux val_spec_aux)
+
+let rec json_of_instantiation_spec_aux = function
+ | IN_id id -> sprintf "{\"IN_id\":%s}" (json_of_id id)
+
+and json_of_instantiation_spec = function
+ | IN_aux (instantiation_spec_aux,(_,_)) -> (json_of_instantiation_spec_aux instantiation_spec_aux)
+
+let rec json_of_outcome_spec_aux = function
+ | OV_outcome (id,typschm,outcome_defs) -> sprintf "{\"OV_outcome\":[%s,%s,%s]}" (json_of_id id) (json_of_typschm typschm) (json_of_typquant outcome_defs)
+
+and json_of_outcome_spec = function
+ | OV_aux (outcome_spec_aux,_) -> (json_of_outcome_spec_aux outcome_spec_aux)
+
+let rec json_of_subst_aux = function
+ | IS_typ (kid,typ) -> sprintf "{\"IS_typ\":[%s,%s]}" (json_of_kid kid) (json_of_typ_arg typ)
+ | IS_id (id1,id2) -> sprintf "{\"IS_id\":[%s,%s]}" (json_of_id id1) (json_of_id id2)
+
+and json_of_subst = function
+ | IS_aux (subst_aux,_) -> (json_of_subst_aux subst_aux)
+
+let rec json_of_mapdef_aux = function
+ | MD_mapping (id,tannot_opt,mapcls) -> sprintf "{\"MD_mapping\":[%s,%s,%s]}" (json_of_id id) (json_of_tannot_opt tannot_opt) (json_of_list json_of_mapcl mapcls)
+
+and json_of_mapdef = function
+ | MD_aux (mapdef_aux,(_,_)) -> (json_of_mapdef_aux mapdef_aux)
+
+let rec json_of_fundef_aux = function
+ | FD_function (rec_opt,tannot_opt,funcls) -> sprintf "{\"FD_function\":[%s,%s,%s]}" (json_of_rec_opt rec_opt) (json_of_tannot_opt tannot_opt) (json_of_list json_of_funcl funcls)
+
+and json_of_fundef = function
+ | FD_aux (fundef_aux,(_,_)) -> (json_of_fundef_aux fundef_aux)
+
+let rec json_of_fundef_aux = function
+ | FD_function (rec_opt,tannot_opt,funcls) -> sprintf "{\"FD_function\":[%s,%s,%s]}" (json_of_rec_opt rec_opt) (json_of_tannot_opt tannot_opt) (json_of_list json_of_funcl funcls)
+
+and json_of_fundef = function
+ | FD_aux (fundef_aux,(_,_)) -> (json_of_fundef_aux fundef_aux)
+
+let rec json_of_type_def_aux = function
+ | TD_abbrev (id,typquant,typ_arg) -> sprintf "{\"TD_abbrev\":[%s,%s,%s]}" (json_of_id id) (json_of_typquant typquant) (json_of_typ_arg typ_arg)
+ | TD_record (id,typquant,typs_ids,bool) -> sprintf "{\"TD_record\":[%s,%s,%s,%b]}" (json_of_id id) (json_of_typquant typquant) (json_of_list (fun ((id, typ), _) -> sprintf "[%s,%s]" (json_of_typ typ) (json_of_id id)) typs_ids) bool
+ | TD_variant (id,typquant,type_unions,bool) -> sprintf "{\"TD_variant\":[%s,%s,%s,%b]}" (json_of_id id) (json_of_typquant typquant) (json_of_list json_of_type_union type_unions) bool
+ | TD_enum (id,ids,bool) -> sprintf "{\"TD_enum\":[%s,%s,%b]}" (json_of_id id) (json_of_list json_of_id ids) bool
+ | TD_abstract (id,kind,_) -> sprintf "{\"TD_abstract\":[%s,%s]}" (json_of_id id) (json_of_kind kind)
+ | TD_bitfield (id,typ,id_ranges) -> sprintf "{\"TD_bitfield\":[%s,%s,%s]}" (json_of_id id) (json_of_typ typ) ((json_of_list (fun ((id, range), _) -> sprintf "[%s,%s]" (json_of_id id) (json_of_index_range range)) id_ranges))
+
+and json_of_type_def = function
+ | TD_aux (type_def_aux,(_,_)) -> (json_of_type_def_aux type_def_aux)
+
+let rec json_of_impldef_aux = function
+ | Impl_impl funcl -> sprintf "{\"Impl_impl\":%s}" (json_of_funcl funcl)
+
+and json_of_impldef = function
+ | Impl_aux (impldef_aux,_) -> (json_of_impldef_aux impldef_aux)
+
+let rec json_of_opt_default_aux = function
+ | Def_val_empty -> "\"Def_val_empty\""
+ | Def_val_dec exp -> sprintf "{\"Def_val_dec\":%s}" (json_of_exp exp)
+
+and json_of_opt_default = function
+ | Def_val_aux (opt_default_aux,(_,_)) -> (json_of_opt_default_aux opt_default_aux)
+
+let json_of_loop_measure (loop,exp) =
+ sprintf "[%s,%s]" (json_of_loop loop) (json_of_exp exp)
+
+let json_of_prec = function
+ | Infix -> json_of_string "Infix"
+ | InfixL -> json_of_string "InfixL"
+ | InfixR -> json_of_string "InfixR"
+
+let rec json_of_def_aux = function
+ | DEF_type type_def -> sprintf "{\"DEF_type\":%s}" (json_of_type_def type_def)
+ | DEF_constraint n_constraint -> sprintf "{\"DEF_constraint\":%s}" (json_of_n_constraint n_constraint)
+ | DEF_fundef fundef -> sprintf "{\"DEF_fundef\":%s}" (json_of_fundef fundef)
+ | DEF_mapdef mapdef -> sprintf "{\"DEF_mapdef\":%s}" (json_of_mapdef mapdef)
+ | DEF_impl funcl -> sprintf "{\"DEF_impl\":%s}" (json_of_funcl funcl)
+ | DEF_let letbind -> sprintf "{\"DEF_let\":%s}" (json_of_letbind letbind)
+ | DEF_val val_spec -> sprintf "{\"DEF_val\":%s}" (json_of_val_spec val_spec)
+ | DEF_outcome (outcome_spec,defs) ->
+ sprintf "{\"DEF_outcome\":[%s,%s]}"
+ (json_of_outcome_spec outcome_spec) (json_of_list json_of_def defs)
+ | DEF_instantiation (instantiation_spec,substs) ->
+ sprintf "{\"DEF_instantiation\":[%s,%s]}"
+ (json_of_instantiation_spec instantiation_spec) (json_of_list json_of_subst substs)
+ | DEF_fixity (prec,num,id) ->
+ sprintf "{\"DEF_fixity\":[%s,%s,%s]}" (json_of_prec prec) (json_of_big_int num) (json_of_id id)
+ | DEF_overload (id,ids) ->
+ sprintf "{\"DEF_overload\":[%s,%s]}" (json_of_id id) (json_of_list json_of_id ids)
+ | DEF_default default_spec ->
+ sprintf "{\"DEF_default\":%s}" (json_of_default_spec default_spec)
+ | DEF_scattered scattered_def ->
+ sprintf "{\"DEF_scattered\":%s}" (json_of_scattered_def scattered_def)
+ | DEF_measure (id,pat,exp) ->
+ sprintf "{\"DEF_measure\":[%s,%s,%s]}" (json_of_id id) (json_of_pat pat) (json_of_exp exp)
+ | DEF_loop_measures (id,loop_measures) ->
+ sprintf "{\"DEF_loop_measures\":[%s,%s]}" (json_of_id id) (json_of_list json_of_loop_measure loop_measures)
+ | DEF_register dec_spec ->
+ sprintf "{\"DEF_register\":%s}" (json_of_dec_spec dec_spec)
+ | DEF_internal_mutrec fundefs ->
+ sprintf "{\"DEF_internal_mutrec\":%s}" (json_of_list (json_of_fundef) fundefs)
+ | DEF_pragma (pragma, Pragma_line (arg, _)) ->
+ sprintf "{\"DEF_pragma\":[%s,%s]}" (json_of_string pragma) (json_of_string arg)
+ | DEF_pragma (pragma, Pragma_structured data) ->
+ let open Parse_ast.Attribute_data in
+ sprintf "{\"DEF_pragma\":[%s]}" (json_of_string pragma)
+
+and json_of_def = function
+ | DEF_aux (def_aux,_) -> json_of_def_aux def_aux
+
+let pp_ast_json defs =
+ sprintf "{\"ast\":[%s]}" (String.concat "," (List.map json_of_def defs))
diff --git a/sail-to-json/sail_json_backend/sail_plugin_json.ml b/sail-to-json/sail_json_backend/sail_plugin_json.ml
new file mode 100644
index 0000000..e128e24
--- /dev/null
+++ b/sail-to-json/sail_json_backend/sail_plugin_json.ml
@@ -0,0 +1,100 @@
+(****************************************************************************)
+(* Sail *)
+(* *)
+(* Sail and the Sail architecture models here, comprising all files and *)
+(* directories except the ASL-derived Sail code in the aarch64 directory, *)
+(* are subject to the BSD two-clause licence below. *)
+(* *)
+(* The ASL derived parts of the ARMv8.3 specification in *)
+(* aarch64/no_vector and aarch64/full are copyright ARM Ltd. *)
+(* *)
+(* Copyright (c) 2013-2021 *)
+(* Kathyrn Gray *)
+(* Shaked Flur *)
+(* Stephen Kell *)
+(* Gabriel Kerneis *)
+(* Robert Norton-Wright *)
+(* Christopher Pulte *)
+(* Peter Sewell *)
+(* Alasdair Armstrong *)
+(* Brian Campbell *)
+(* Thomas Bauereiss *)
+(* Anthony Fox *)
+(* Jon French *)
+(* Dominic Mulligan *)
+(* Stephen Kell *)
+(* Mark Wassell *)
+(* Alastair Reid (Arm Ltd) *)
+(* *)
+(* All rights reserved. *)
+(* *)
+(* This work was partially supported by EPSRC grant EP/K008528/1 REMS: Rigorous *)
+(* Engineering for Mainstream Systems, an ARM iCASE award, EPSRC IAA *)
+(* KTF funding, and donations from Arm. This project has received *)
+(* funding from the European Research Council (ERC) under the European *)
+(* Union’s Horizon 2020 research and innovation programme (grant *)
+(* agreement No 789108, ELVER). *)
+(* *)
+(* This software was developed by SRI International and the University of *)
+(* Cambridge Computer Laboratory (Department of Computer Science and *)
+(* Technology) under DARPA/AFRL contracts FA8650-18-C-7809 ("CIFV") *)
+(* and FA8750-10-C-0237 ("CTSRD"). *)
+(* *)
+(* Redistribution and use in source and binary forms, with or without *)
+(* modification, are permitted provided that the following conditions *)
+(* are met: *)
+(* 1. Redistributions of source code must retain the above copyright *)
+(* notice, this list of conditions and the following disclaimer. *)
+(* 2. 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. *)
+(* *)
+(* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND 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 AUTHOR 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. *)
+(****************************************************************************)
+
+open Libsail
+
+open Interactive.State
+
+open Ast
+open Ast_defs
+
+let opt_json_output_dir : string option ref = ref None
+
+let json_options =
+ [
+ ( Flag.create ~prefix:["json"] "output_dir",
+ Arg.String (fun dir -> opt_json_output_dir := Some dir),
+ " set a custom directory to output generated Lean"
+ );
+ ]
+
+let output_json file ast =
+ print_endline (Pretty_print_json.pp_ast_json ast.defs)
+
+let output files =
+ List.iter
+ (fun (f, ctx, effect_info, env, ast) ->
+ let f' = Filename.basename (Filename.remove_extension f) in
+ output_json f' ast
+ )
+ files
+
+let json_target out_file { ctx; ast; effect_info; env; _ } =
+ let out_file = match out_file with Some f -> f | None -> "out" in
+ output [(out_file, ctx, effect_info, env, ast)]
+
+let _ = Target.register ~name:"json" ~options:json_options ~asserts_termination:true json_target