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