summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlasdair Armstrong2018-04-04 15:14:39 +0100
committerAlasdair Armstrong2018-04-05 18:40:36 +0100
commit09fca718c6e850a3a94db399fd1744dc537bbe41 (patch)
tree0d679d573f87236ee02e1ffe623d2e031a940ccb
parent3604e9e94b766147b482c4c653c4d09bb4ee7a7c (diff)
Cleanup repository by removing old and generated files
Rename l2.ott to sail.ott
-rw-r--r--l3-to-l2/notes01-2013-10-29-initial-plan.txt80
-rw-r--r--language/l2.lem705
-rw-r--r--language/l2.ml552
-rw-r--r--language/l2_parse.ml466
-rw-r--r--language/sail.ott (renamed from language/l2.ott)0
-rw-r--r--language/sil.ott451
-rw-r--r--src/Makefile4
-rwxr-xr-xsrc/contrib/checkout.sh16
-rwxr-xr-xsrc/demo.sh50
-rw-r--r--src/gen_lib/sample_gen/power.ml9103
-rw-r--r--src/nexp_functions67
11 files changed, 2 insertions, 11492 deletions
diff --git a/l3-to-l2/notes01-2013-10-29-initial-plan.txt b/l3-to-l2/notes01-2013-10-29-initial-plan.txt
deleted file mode 100644
index caea54e8..00000000
--- a/l3-to-l2/notes01-2013-10-29-initial-plan.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-2013-10-29 Jan, Peter, Anthony, Gabriel, Ohad, Kathy video chat
-
-Goal: produce good human-readable L2 definitions of Anthony's current
-L3 processor models, so that they can be used to generate definitions
-in other targets (Coq/Isabelle, not just HOL) and to generate
-definitions that we can integrate with our concurrency semantics.
-
-
-Syntactic L3-to-L2 translation
-------------------------------
-
-We're hoping that generating L2 won't depend on the L3 type inference,
-and hence that we can work in a quite syntactic way, but it is
-possible that we'll discover later that we need the L3 inferred types
-or coercions to produce good L2 definitions - we'll see.
-
-
-This first part is fairly clear - basically "get an AST with comment
-and location info in":
-
-- get current snapshot of L3 from Anthony's pages
-
-- cut out enough of the lexing and parsing - probably:
-
- Lib.sml
- lexer.lex
- Parser.sml
- Base.sml
- Data.sml ?
-
-- check that into l3-to-l2/src and trim it down, cutting out
- everything that's not parsing-related.
-
- That has a conventional lexer-generator lexer and a
- parser-combinator parser; it doesn't have an explicit AST
- representation.
-
- One could either work entirely in SML or port the above code into
- OCaml and work in that; whichever you prefer. L2 is in OCaml, L3 in
- SML...
-
- In the l3.pdf document on the web site there's a BNF for L3
- (slightly out of date, but in ways that shouldn't matter). We can
- use that to define an SML datatype for the AST. That should
- include source-location and comment information so that we can map
- them into readable L2 definitions.
-
- (One could either write that AST type directly or (if using OCaml)
- write an Ott definition of the L3 source language (which would be
- useful for L3 documentation) and use that to generate an OCaml AST
- type; whichever you want.)
-
- Then adapt the lexer.lex and Parser.sml to produce elements of that
- AST type.
-
-- Check it works (at least parses) on Anthony's full ARM model.
-
-
-Then start work on generating human-readable L2 (with the original
-comments) from that AST, using Gabriel's Tiny processor definiton as a
-model. This will probably find places where L2 isn't quite right and
-prompt us to adapt it :-)
-
-Later we'll want to pay attention to validation - in the first
-instance, perhaps comparing the results of running single-instruction
-test cases in Anthony's model and using the L2 interpreter (which
-exists already). After that, we'll want to compare those results
-with the output of L2-to-Lem and the ultimate Coq/HOL/Isabelle output
-from that, but those aren't in place yet.
-
-And we'll also want to pay attention to whatever constraints on the
-semantic style of the ultimate Coq definitions arise from whatever
-Adam wants to do with these.
-
-
-
-
-
-
-
diff --git a/language/l2.lem b/language/l2.lem
deleted file mode 100644
index 2d99e304..00000000
--- a/language/l2.lem
+++ /dev/null
@@ -1,705 +0,0 @@
-(* generated by Ott 0.25 from: l2.ott *)
-open import Pervasives
-
-open import Pervasives
-open import Pervasives_extra
-open import Map
-open import Maybe
-open import Set_extra
-
-type l =
- | Unknown
- | Int of string * maybe l (*internal types, functions*)
- | Range of string * nat * nat * nat * nat
- | Generated of l (*location for a generated node, where l is the location of the closest original source*)
-
-type annot 'a = l * 'a
-
-val duplicates : forall 'a. list 'a -> list 'a
-
-val set_from_list : forall 'a. list 'a -> set 'a
-
-val subst : forall 'a. list 'a -> list 'a -> bool
-
-
-type x = string (* identifier *)
-type ix = string (* infix identifier *)
-
-type base_kind_aux = (* base kind *)
- | BK_type (* kind of types *)
- | BK_nat (* kind of natural number size expressions *)
- | BK_order (* kind of vector order specifications *)
- | BK_effect (* kind of effect sets *)
-
-
-type kid_aux = (* kinded IDs: $Type$, $Nat$, $Order$, and $Effect$ variables *)
- | Var of x
-
-
-type id_aux = (* identifier *)
- | Id of x
- | DeIid of x (* remove infix status *)
-
-
-type base_kind =
- | BK_aux of base_kind_aux * l
-
-
-type kid =
- | Kid_aux of kid_aux * l
-
-
-type id =
- | Id_aux of id_aux * l
-
-
-type kind_aux = (* kinds *)
- | K_kind of list base_kind
-
-
-type nexp_aux = (* numeric expression, of kind $Nat$ *)
- | Nexp_id of id (* abbreviation identifier *)
- | Nexp_var of kid (* variable *)
- | Nexp_constant of integer (* constant *)
- | Nexp_times of nexp * nexp (* product *)
- | Nexp_sum of nexp * nexp (* sum *)
- | Nexp_minus of nexp * nexp (* subtraction *)
- | Nexp_exp of nexp (* exponential *)
- | Nexp_neg of nexp (* for internal use only *)
-
-and nexp =
- | Nexp_aux of nexp_aux * l
-
-
-type kind =
- | K_aux of kind_aux * l
-
-
-type base_effect_aux = (* effect *)
- | BE_rreg (* read register *)
- | BE_wreg (* write register *)
- | BE_rmem (* read memory *)
- | BE_rmemt (* read memory and tag *)
- | BE_wmem (* write memory *)
- | BE_eamem (* signal effective address for writing memory *)
- | BE_exmem (* determine if a store-exclusive (ARM) is going to succeed *)
- | BE_wmv (* write memory, sending only value *)
- | BE_wmvt (* write memory, sending only value and tag *)
- | BE_barr (* memory barrier *)
- | BE_depend (* dynamic footprint *)
- | BE_undef (* undefined-instruction exception *)
- | BE_unspec (* unspecified values *)
- | BE_nondet (* nondeterminism, from $nondet$ *)
- | BE_escape (* potential call of $exit$ *)
- | BE_lset (* local mutation; not user-writable *)
- | BE_lret (* local return; not user-writable *)
-
-
-type base_effect =
- | BE_aux of base_effect_aux * l
-
-
-type order_aux = (* vector order specifications, of kind $Order$ *)
- | Ord_var of kid (* variable *)
- | Ord_inc (* increasing *)
- | Ord_dec (* decreasing *)
-
-
-type effect_aux = (* effect set, of kind $Effect$ *)
- | Effect_var of kid
- | Effect_set of list base_effect (* effect set *)
-
-
-type order =
- | Ord_aux of order_aux * l
-
-
-type effect =
- | Effect_aux of effect_aux * l
-
-let effect_union e1 e2 =
- match (e1,e2) with
- | ((Effect_aux (Effect_set els) _),(Effect_aux (Effect_set els2) l)) -> Effect_aux (Effect_set (els++els2)) l
- end
-
-
-type n_constraint_aux = (* constraint over kind $Nat$ *)
- | NC_fixed of nexp * nexp
- | NC_bounded_ge of nexp * nexp
- | NC_bounded_le of nexp * nexp
- | NC_nat_set_bounded of kid * list integer
-
-
-type kinded_id_aux = (* optionally kind-annotated identifier *)
- | KOpt_none of kid (* identifier *)
- | KOpt_kind of kind * kid (* kind-annotated variable *)
-
-
-type n_constraint =
- | NC_aux of n_constraint_aux * l
-
-
-type kinded_id =
- | KOpt_aux of kinded_id_aux * l
-
-
-type quant_item_aux = (* kinded identifier or $Nat$ constraint *)
- | QI_id of kinded_id (* optionally kinded identifier *)
- | QI_const of n_constraint (* $Nat$ constraint *)
-
-
-type quant_item =
- | QI_aux of quant_item_aux * l
-
-
-type typquant_aux = (* type quantifiers and constraints *)
- | TypQ_tq of list quant_item
- | TypQ_no_forall (* empty *)
-
-
-type typquant =
- | TypQ_aux of typquant_aux * l
-
-
-type typ_aux = (* type expressions, of kind $Type$ *)
- | Typ_wild (* unspecified type *)
- | Typ_id of id (* defined type *)
- | Typ_var of kid (* type variable *)
- | Typ_fn of typ * typ * effect (* Function (first-order only in user code) *)
- | Typ_tup of list typ (* Tuple *)
- | Typ_app of id * list typ_arg (* type constructor application *)
-
-and typ =
- | Typ_aux of typ_aux * l
-
-and typ_arg_aux = (* type constructor arguments of all kinds *)
- | Typ_arg_nexp of nexp
- | Typ_arg_typ of typ
- | Typ_arg_order of order
- | Typ_arg_effect of effect
-
-and typ_arg =
- | Typ_arg_aux of typ_arg_aux * l
-
-
-type lit_aux = (* literal constant *)
- | L_unit (* $() : unit$ *)
- | L_zero (* $bitzero : bit$ *)
- | L_one (* $bitone : bit$ *)
- | L_true (* $true : bool$ *)
- | L_false (* $false : bool$ *)
- | L_num of integer (* natural number constant *)
- | L_hex of string (* bit vector constant, C-style *)
- | L_bin of string (* bit vector constant, C-style *)
- | L_string of string (* string constant *)
- | L_undef (* undefined-value constant *)
-
-
-type index_range_aux = (* index specification, for bitfields in register types *)
- | BF_single of integer (* single index *)
- | BF_range of integer * integer (* index range *)
- | BF_concat of index_range * index_range (* concatenation of index ranges *)
-
-and index_range =
- | BF_aux of index_range_aux * l
-
-
-type typschm_aux = (* type scheme *)
- | TypSchm_ts of typquant * typ
-
-
-type lit =
- | L_aux of lit_aux * l
-
-
-type typschm =
- | TypSchm_aux of typschm_aux * l
-
-
-type pat_aux 'a = (* pattern *)
- | P_lit of lit (* literal constant pattern *)
- | P_wild (* wildcard *)
- | P_as of (pat 'a) * id (* named pattern *)
- | P_typ of typ * (pat 'a) (* typed pattern *)
- | P_id of id (* identifier *)
- | P_app of id * list (pat 'a) (* union constructor pattern *)
- | P_record of list (fpat 'a) * bool (* struct pattern *)
- | P_vector of list (pat 'a) (* vector pattern *)
- | P_vector_indexed of list (integer * (pat 'a)) (* vector pattern (with explicit indices) *)
- | P_vector_concat of list (pat 'a) (* concatenated vector pattern *)
- | P_tup of list (pat 'a) (* tuple pattern *)
- | P_list of list (pat 'a) (* list pattern *)
-
-and pat 'a =
- | P_aux of (pat_aux 'a) * annot 'a
-
-and fpat_aux 'a = (* field pattern *)
- | FP_Fpat of id * (pat 'a)
-
-and fpat 'a =
- | FP_aux of (fpat_aux 'a) * annot 'a
-
-
-type name_scm_opt_aux = (* optional variable naming-scheme constraint *)
- | Name_sect_none
- | Name_sect_some of string
-
-
-type type_union_aux = (* type union constructors *)
- | Tu_id of id
- | Tu_ty_id of typ * id
-
-
-type name_scm_opt =
- | Name_sect_aux of name_scm_opt_aux * l
-
-
-type type_union =
- | Tu_aux of type_union_aux * l
-
-
-type kind_def_aux 'a = (* Definition body for elements of kind *)
- | KD_nabbrev of kind * id * name_scm_opt * nexp (* $Nat$-expression abbreviation *)
- | KD_abbrev of kind * id * name_scm_opt * typschm (* type abbreviation *)
- | KD_record of kind * id * name_scm_opt * typquant * list (typ * id) * bool (* struct type definition *)
- | KD_variant of kind * id * name_scm_opt * typquant * list type_union * bool (* union type definition *)
- | KD_enum of kind * id * name_scm_opt * list id * bool (* enumeration type definition *)
- | KD_register of kind * id * nexp * nexp * list (index_range * id) (* register mutable bitfield type definition *)
-
-
-type type_def_aux 'a = (* type definition body *)
- | TD_abbrev of id * name_scm_opt * typschm (* type abbreviation *)
- | TD_record of id * name_scm_opt * typquant * list (typ * id) * bool (* struct type definition *)
- | TD_variant of id * name_scm_opt * typquant * list type_union * bool (* tagged union type definition *)
- | TD_enum of id * name_scm_opt * list id * bool (* enumeration type definition *)
- | TD_register of id * nexp * nexp * list (index_range * id) (* register mutable bitfield type definition *)
-
-
-type kind_def 'a =
- | KD_aux of (kind_def_aux 'a) * annot 'a
-
-
-type type_def 'a =
- | TD_aux of (type_def_aux 'a) * annot 'a
-
-
-let rec remove_one i l =
- match l with
- | [] -> []
- | i2::l2 -> if i2 = i then l2 else i2::(remove_one i l2)
-end
-
-let rec remove_from l l2 =
- match l2 with
- | [] -> l
- | i::l2' -> remove_from (remove_one i l) l2'
-end
-
-let disjoint s1 s2 = Set.null (s1 inter s2)
-
-let rec disjoint_all sets =
- match sets with
- | [] -> true
- | s1::[] -> true
- | s1::s2::sets -> (disjoint s1 s2) && (disjoint_all (s2::sets))
-end
-
-
-type ne = (* internal numeric expressions *)
- | Ne_id of x
- | Ne_var of x
- | Ne_const of integer
- | Ne_inf
- | Ne_mult of ne * ne
- | Ne_add of list ne
- | Ne_minus of ne * ne
- | Ne_exp of ne
- | Ne_unary of ne
-
-
-type t = (* Internal types *)
- | T_id of x
- | T_var of x
- | T_fn of t * t * effect
- | T_tup of list t
- | T_app of x * t_args
- | T_abbrev of t * t
-
-and t_arg = (* Argument to type constructors *)
- | T_arg_typ of t
- | T_arg_nexp of ne
- | T_arg_effect of effect
- | T_arg_order of order
-
-and t_args = (* Arguments to type constructors *)
- | T_args of list t_arg
-
-
-type k = (* Internal kinds *)
- | Ki_typ
- | Ki_nat
- | Ki_ord
- | Ki_efct
- | Ki_ctor of list k * k
- | Ki_infer (* Representing an unknown kind, inferred by context *)
-
-
-type tid = (* A type identifier or type variable *)
- | Tid_id of id
- | Tid_var of kid
-
-
-type kinf = (* Whether a kind is default or from a local binding *)
- | Kinf_k of k
- | Kinf_def of k
-
-
-type nec = (* Numeric expression constraints *)
- | Nec_lteq of ne * ne
- | Nec_eq of ne * ne
- | Nec_gteq of ne * ne
- | Nec_in of x * list integer
- | Nec_cond of list nec * list nec
- | Nec_branch of list nec
-
-
-type tag = (* Data indicating where the identifier arises and thus information necessary in compilation *)
- | Tag_empty
- | Tag_intro (* Denotes an assignment and lexp that introduces a binding *)
- | Tag_set (* Denotes an expression that mutates a local variable *)
- | Tag_tuple_assign (* Denotes an assignment with a tuple lexp *)
- | Tag_global (* Globally let-bound or enumeration based value/variable *)
- | Tag_ctor (* Data constructor from a type union *)
- | Tag_extern of maybe string (* External function, specied only with a val statement *)
- | Tag_default (* Type has come from default declaration, identifier may not be bound locally *)
- | Tag_spec
- | Tag_enum of integer
- | Tag_alias
- | Tag_unknown of maybe string (* Tag to distinguish an unknown path from a non-analysis non deterministic path *)
-
-
-type tinf = (* Type variables, type, and constraints, bound to an identifier *)
- | Tinf_typ of t
- | Tinf_quant_typ of (map tid kinf) * list nec * tag * t
-
-
-type conformsto = (* how much conformance does overloading need *)
- | Conformsto_full
- | Conformsto_parm
-
-
-type widennum =
- | Widennum_widen
- | Widennum_dont
- | Widennum_dontcare
-
-
-type widenvec =
- | Widenvec_widen
- | Widenvec_dont
- | Widenvec_dontcare
-
-
-type widening = (* Should we widen vector start locations, should we widen atoms and ranges *)
- | Widening_w of widennum * widenvec
-
-
-type tinflist = (* In place so that a list of tinfs can be referred to without the dot form *)
- | Tinfs_empty
- | Tinfs_ls of list tinf
-
- type definition_env =
- | DenvEmp
- | Denv of (map tid kinf) * (map (list (id*t)) tinf) * (map t (list (nat*id)))
-
-
-let blength (bit) = Ne_const 8
-let hlength (bit) = Ne_const 8
-
- type env =
- | EnvEmp
- | Env of (map id tinf) * definition_env
-
- type inf =
- | Iemp
- | Inf of (list nec) * effect
-
- val denv_union : definition_env -> definition_env -> definition_env
- let denv_union de1 de2 =
- match (de1,de2) with
- | (DenvEmp,de2) -> de2
- | (de1,DenvEmp) -> de1
- | ((Denv ke1 re1 ee1),(Denv ke2 re2 ee2)) ->
- Denv (ke1 union ke2) (re1 union re2) (ee1 union ee2)
- end
-
- val env_union : env -> env -> env
- let env_union e1 e2 =
- match (e1,e2) with
- | (EnvEmp,e2) -> e2
- | (e1,EnvEmp) -> e1
- | ((Env te1 de1),(Env te2 de2)) ->
- Env (te1 union te2) (denv_union de1 de2)
- end
-
-let inf_union i1 i2 =
- match (i1,i2) with
- | (Iemp,i2) -> i2
- | (i1,Iemp) -> i1
- | (Inf n1 e1,Inf n2 e2) -> (Inf (n1++n2) (effect_union e1 e2))
- end
-
-let fresh_kid denv = Var "x" (*TODO When strings can be manipulated, this should actually build a fresh string*)
-
-
-
-type I = inf
-
-
-type E = env
-
-
-type tannot = maybe (t * tag * list nec * effect * effect)
-
-
-
-type i_direction =
- | IInc
- | IDec
-
-
-type reg_id_aux 'a =
- | RI_id of id
-
-
-type reg_form =
- | Form_Reg of id * tannot * i_direction
- | Form_SubReg of id * reg_form * index_range
-
-
-type ctor_kind =
- | C_Enum of nat
- | C_Union
-
-
-type reg_id 'a =
- | RI_aux of (reg_id_aux 'a) * annot 'a
-
-
-type exp_aux 'a = (* expression *)
- | E_block of list (exp 'a) (* sequential block *)
- | E_nondet of list (exp 'a) (* nondeterministic block *)
- | E_id of id (* identifier *)
- | E_lit of lit (* literal constant *)
- | E_cast of typ * (exp 'a) (* cast *)
- | E_app of id * list (exp 'a) (* function application *)
- | E_app_infix of (exp 'a) * id * (exp 'a) (* infix function application *)
- | E_tuple of list (exp 'a) (* tuple *)
- | E_if of (exp 'a) * (exp 'a) * (exp 'a) (* conditional *)
- | E_for of id * (exp 'a) * (exp 'a) * (exp 'a) * order * (exp 'a) (* loop *)
- | E_vector of list (exp 'a) (* vector (indexed from 0) *)
- | E_vector_indexed of list (integer * (exp 'a)) * (opt_default 'a) (* vector (indexed consecutively) *)
- | E_vector_access of (exp 'a) * (exp 'a) (* vector access *)
- | E_vector_subrange of (exp 'a) * (exp 'a) * (exp 'a) (* subvector extraction *)
- | E_vector_update of (exp 'a) * (exp 'a) * (exp 'a) (* vector functional update *)
- | E_vector_update_subrange of (exp 'a) * (exp 'a) * (exp 'a) * (exp 'a) (* vector subrange update, with vector *)
- | E_vector_append of (exp 'a) * (exp 'a) (* vector concatenation *)
- | E_list of list (exp 'a) (* list *)
- | E_cons of (exp 'a) * (exp 'a) (* cons *)
- | E_record of (fexps 'a) (* struct *)
- | E_record_update of (exp 'a) * (fexps 'a) (* functional update of struct *)
- | E_field of (exp 'a) * id (* field projection from struct *)
- | E_case of (exp 'a) * list (pexp 'a) (* pattern matching *)
- | E_let of (letbind 'a) * (exp 'a) (* let expression *)
- | E_assign of (lexp 'a) * (exp 'a) (* imperative assignment *)
- | E_sizeof of nexp (* the value of nexp at run time *)
- | E_return of (exp 'a) (* return (exp 'a) from current function *)
- | E_exit of (exp 'a) (* halt all current execution *)
- | E_assert of (exp 'a) * (exp 'a) (* halt with error (exp 'a) when not (exp 'a) *)
- | E_internal_cast of annot 'a * (exp 'a) (* This is an internal cast, generated during type checking that will resolve into a syntactic cast after *)
- | E_internal_exp of annot 'a (* This is an internal use for passing nexp information to library functions, postponed for constraint solving *)
- | E_sizeof_internal of annot 'a (* For sizeof during type checking, to replace nexp with internal n *)
- | E_internal_exp_user of annot 'a * annot 'a (* This is like the above but the user has specified an implicit parameter for the current function *)
- | E_comment of string (* For generated unstructured comments *)
- | E_comment_struc of (exp 'a) (* For generated structured comments *)
- | E_internal_let of (lexp 'a) * (exp 'a) * (exp 'a) (* This is an internal node for compilation that demonstrates the scope of a local mutable variable *)
- | E_internal_plet of (pat 'a) * (exp 'a) * (exp 'a) (* This is an internal node, used to distinguised some introduced lets during processing from original ones *)
- | E_internal_return of (exp 'a) (* For internal use to embed into monad definition *)
- | E_internal_value of value (* For internal use in interpreter to wrap pre-evaluated values when returning an action *)
-
-and exp 'a =
- | E_aux of (exp_aux 'a) * annot 'a
-
-and value = (* interpreter evaluated value *)
- | V_boxref of nat * t
- | V_lit of lit
- | V_tuple of list value
- | V_list of list value
- | V_vector of nat * i_direction * list value
- | V_vector_sparse of nat * nat * i_direction * list (nat * value) * value
- | V_record of t * list (id * value)
- | V_ctor of id * t * ctor_kind * value
- | V_unknown
- | V_register of reg_form
- | V_register_alias of alias_spec tannot * tannot
- | V_track of value * set reg_form
-
-and lexp_aux 'a = (* lvalue expression *)
- | LEXP_id of id (* identifier *)
- | LEXP_memory of id * list (exp 'a) (* memory or register write via function call *)
- | LEXP_cast of typ * id (* cast *)
- | LEXP_tup of list (lexp 'a) (* multiple (non-memory) assignment *)
- | LEXP_vector of (lexp 'a) * (exp 'a) (* vector element *)
- | LEXP_vector_range of (lexp 'a) * (exp 'a) * (exp 'a) (* subvector *)
- | LEXP_field of (lexp 'a) * id (* struct field *)
-
-and lexp 'a =
- | LEXP_aux of (lexp_aux 'a) * annot 'a
-
-and fexp_aux 'a = (* field expression *)
- | FE_Fexp of id * (exp 'a)
-
-and fexp 'a =
- | FE_aux of (fexp_aux 'a) * annot 'a
-
-and fexps_aux 'a = (* field expression list *)
- | FES_Fexps of list (fexp 'a) * bool
-
-and fexps 'a =
- | FES_aux of (fexps_aux 'a) * annot 'a
-
-and opt_default_aux 'a = (* optional default value for indexed vector expressions *)
- | Def_val_empty
- | Def_val_dec of (exp 'a)
-
-and opt_default 'a =
- | Def_val_aux of (opt_default_aux 'a) * annot 'a
-
-and pexp_aux 'a = (* pattern match *)
- | Pat_exp of (pat 'a) * (exp 'a)
-
-and pexp 'a =
- | Pat_aux of (pexp_aux 'a) * annot 'a
-
-and letbind_aux 'a = (* let binding *)
- | LB_val_explicit of typschm * (pat 'a) * (exp 'a) (* let, explicit type ((pat 'a) must be total) *)
- | LB_val_implicit of (pat 'a) * (exp 'a) (* let, implicit type ((pat 'a) must be total) *)
-
-and letbind 'a =
- | LB_aux of (letbind_aux 'a) * annot 'a
-
-and alias_spec_aux 'a = (* register alias expression forms *)
- | AL_subreg of (reg_id 'a) * id
- | AL_bit of (reg_id 'a) * (exp 'a)
- | AL_slice of (reg_id 'a) * (exp 'a) * (exp 'a)
- | AL_concat of (reg_id 'a) * (reg_id 'a)
-
-and alias_spec 'a =
- | AL_aux of (alias_spec_aux 'a) * annot 'a
-
-
-type funcl_aux 'a = (* function clause *)
- | FCL_Funcl of id * (pat 'a) * (exp 'a)
-
-
-type rec_opt_aux = (* optional recursive annotation for functions *)
- | Rec_nonrec (* non-recursive *)
- | Rec_rec (* recursive *)
-
-
-type tannot_opt_aux = (* optional type annotation for functions *)
- | Typ_annot_opt_some of typquant * typ
-
-
-type effect_opt_aux = (* optional effect annotation for functions *)
- | Effect_opt_pure (* sugar for empty effect set *)
- | Effect_opt_effect of effect
-
-
-type funcl 'a =
- | FCL_aux of (funcl_aux 'a) * annot 'a
-
-
-type rec_opt =
- | Rec_aux of rec_opt_aux * l
-
-
-type tannot_opt =
- | Typ_annot_opt_aux of tannot_opt_aux * l
-
-
-type effect_opt =
- | Effect_opt_aux of effect_opt_aux * l
-
-
-type val_spec_aux 'a = (* value type specification *)
- | VS_val_spec of typschm * id (* specify the type of an upcoming definition *)
- | VS_extern_no_rename of typschm * id (* specify the type of an external function *)
- | VS_extern_spec of typschm * id * string (* specify the type of a function from Lem *)
-
-
-type fundef_aux 'a = (* function definition *)
- | FD_function of rec_opt * tannot_opt * effect_opt * list (funcl 'a)
-
-
-type scattered_def_aux 'a = (* scattered function and union type definitions *)
- | SD_scattered_function of rec_opt * tannot_opt * effect_opt * id (* scattered function definition header *)
- | SD_scattered_funcl of (funcl 'a) (* scattered function definition clause *)
- | SD_scattered_variant of id * name_scm_opt * typquant (* scattered union definition header *)
- | SD_scattered_unioncl of id * type_union (* scattered union definition member *)
- | SD_scattered_end of id (* scattered definition end *)
-
-
-type default_spec_aux 'a = (* default kinding or typing assumption *)
- | DT_order of order
- | DT_kind of base_kind * kid
- | DT_typ of typschm * id
-
-
-type dec_spec_aux 'a = (* register declarations *)
- | DEC_reg of typ * id
- | DEC_alias of id * (alias_spec 'a)
- | DEC_typ_alias of typ * id * (alias_spec 'a)
-
-
-type val_spec 'a =
- | VS_aux of (val_spec_aux 'a) * annot 'a
-
-
-type fundef 'a =
- | FD_aux of (fundef_aux 'a) * annot 'a
-
-
-type scattered_def 'a =
- | SD_aux of (scattered_def_aux 'a) * annot 'a
-
-
-type default_spec 'a =
- | DT_aux of (default_spec_aux 'a) * l
-
-
-type dec_spec 'a =
- | DEC_aux of (dec_spec_aux 'a) * annot 'a
-
-
-type dec_comm 'a = (* top-level generated comments *)
- | DC_comm of string (* generated unstructured comment *)
- | DC_comm_struct of (def 'a) (* generated structured comment *)
-
-and def 'a = (* top-level definition *)
- | DEF_kind of (kind_def 'a) (* definition of named kind identifiers *)
- | DEF_type of (type_def 'a) (* type definition *)
- | DEF_fundef of (fundef 'a) (* function definition *)
- | DEF_val of (letbind 'a) (* value definition *)
- | DEF_spec of (val_spec 'a) (* top-level type constraint *)
- | DEF_default of (default_spec 'a) (* default kind and type assumptions *)
- | DEF_scattered of (scattered_def 'a) (* scattered function and type definition *)
- | DEF_reg_dec of (dec_spec 'a) (* register declaration *)
- | DEF_comm of (dec_comm 'a) (* generated comments *)
-
-
-type defs 'a = (* definition sequence *)
- | Defs of list (def 'a)
-
-
-
diff --git a/language/l2.ml b/language/l2.ml
deleted file mode 100644
index c59ce838..00000000
--- a/language/l2.ml
+++ /dev/null
@@ -1,552 +0,0 @@
-(* generated by Ott 0.26 from: l2.ott *)
-
-
-type text = string
-
-type l = Parse_ast.l
-
-type 'a annot = l * 'a
-
-type loop = While | Until
-
-
-type x = text (* identifier *)
-type ix = text (* infix identifier *)
-
-type
-base_kind_aux = (* base kind *)
- BK_type (* kind of types *)
- | BK_nat (* kind of natural number size expressions *)
- | BK_order (* kind of vector order specifications *)
-
-
-type
-base_kind =
- BK_aux of base_kind_aux * Parse_ast.l
-
-
-type
-kind_aux = (* kinds *)
- K_kind of (base_kind) list
-
-
-type
-kid_aux = (* kinded IDs: $_$, $_$, $_$, and $_$ variables *)
- Var of x
-
-
-type
-id_aux = (* Identifier *)
- Id of x
- | DeIid of x (* remove infix status *)
-
-
-type
-kind =
- K_aux of kind_aux * Parse_ast.l
-
-
-type
-kid =
- Kid_aux of kid_aux * Parse_ast.l
-
-
-type
-id =
- Id_aux of id_aux * Parse_ast.l
-
-
-type
-base_effect_aux = (* effect *)
- BE_rreg (* read register *)
- | BE_wreg (* write register *)
- | BE_rmem (* read memory *)
- | BE_rmemt (* read memory and tag *)
- | BE_wmem (* write memory *)
- | BE_eamem (* signal effective address for writing memory *)
- | BE_exmem (* determine if a store-exclusive (ARM) is going to succeed *)
- | BE_wmv (* write memory, sending only value *)
- | BE_wmvt (* write memory, sending only value and tag *)
- | BE_barr (* memory barrier *)
- | BE_depend (* dynamic footprint *)
- | BE_undef (* undefined-instruction exception *)
- | BE_unspec (* unspecified values *)
- | BE_nondet (* nondeterminism, from $_$ *)
- | BE_escape (* potential call of $_$ *)
- | BE_lset (* local mutation; not user-writable *)
- | BE_lret (* local return; not user-writable *)
-
-
-type
-nexp_aux = (* numeric expression, of kind $_$ *)
- Nexp_id of id (* abbreviation identifier *)
- | Nexp_var of kid (* variable *)
- | Nexp_constant of int (* constant *)
- | Nexp_times of nexp * nexp (* product *)
- | Nexp_sum of nexp * nexp (* sum *)
- | Nexp_minus of nexp * nexp (* subtraction *)
- | Nexp_exp of nexp (* exponential *)
- | Nexp_neg of nexp (* for internal use only *)
-
-and nexp =
- Nexp_aux of nexp_aux * Parse_ast.l
-
-
-type
-base_effect =
- BE_aux of base_effect_aux * Parse_ast.l
-
-
-type
-order_aux = (* vector order specifications, of kind $_$ *)
- Ord_var of kid (* variable *)
- | Ord_inc (* increasing *)
- | Ord_dec (* decreasing *)
-
-
-type
-effect_aux = (* effect set, of kind $_$ *)
- Effect_var of kid
- | Effect_set of (base_effect) list (* effect set *)
-
-
-type
-order =
- Ord_aux of order_aux * Parse_ast.l
-
-
-type
-effect =
- Effect_aux of effect_aux * Parse_ast.l
-
-
-type
-kinded_id_aux = (* optionally kind-annotated identifier *)
- KOpt_none of kid (* identifier *)
- | KOpt_kind of kind * kid (* kind-annotated variable *)
-
-
-type
-kinded_id =
- KOpt_aux of kinded_id_aux * Parse_ast.l
-
-
-type
-n_constraint_aux = (* constraint over kind $_$ *)
- NC_equal of nexp * nexp
- | NC_bounded_ge of nexp * nexp
- | NC_bounded_le of nexp * nexp
- | NC_not_equal of nexp * nexp
- | NC_set of kid * (int) list
- | NC_or of n_constraint * n_constraint
- | NC_and of n_constraint * n_constraint
- | NC_true
- | NC_false
-
-and n_constraint =
- NC_aux of n_constraint_aux * Parse_ast.l
-
-
-type
-quant_item_aux = (* kinded identifier or $_$ constraint *)
- QI_id of kinded_id (* optionally kinded identifier *)
- | QI_const of n_constraint (* $_$ constraint *)
-
-
-type
-lit_aux = (* literal constant *)
- L_unit (* $() : _$ *)
- | L_zero (* $_ : _$ *)
- | L_one (* $_ : _$ *)
- | L_true (* $_ : _$ *)
- | L_false (* $_ : _$ *)
- | L_num of int (* natural number constant *)
- | L_hex of string (* bit vector constant, C-style *)
- | L_bin of string (* bit vector constant, C-style *)
- | L_string of string (* string constant *)
- | L_undef (* undefined-value constant *)
- | L_real of string
-
-
-type
-quant_item =
- QI_aux of quant_item_aux * Parse_ast.l
-
-
-type
-typ_aux = (* type expressions, of kind $_$ *)
- Typ_wild (* unspecified type *)
- | Typ_id of id (* defined type *)
- | Typ_var of kid (* type variable *)
- | Typ_fn of typ * typ * effect (* Function (first-order only in user code) *)
- | Typ_tup of (typ) list (* Tuple *)
- | Typ_exist of (kid) list * n_constraint * typ
- | Typ_app of id * (typ_arg) list (* type constructor application *)
-
-and typ =
- Typ_aux of typ_aux * Parse_ast.l
-
-and typ_arg_aux = (* type constructor arguments of all kinds *)
- Typ_arg_nexp of nexp
- | Typ_arg_typ of typ
- | Typ_arg_order of order
-
-and typ_arg =
- Typ_arg_aux of typ_arg_aux * Parse_ast.l
-
-
-type
-lit =
- L_aux of lit_aux * Parse_ast.l
-
-
-type
-typquant_aux = (* type quantifiers and constraints *)
- TypQ_tq of (quant_item) list
- | TypQ_no_forall (* empty *)
-
-
-type
-'a pat_aux = (* pattern *)
- P_lit of lit (* literal constant pattern *)
- | P_wild (* wildcard *)
- | P_as of 'a pat * id (* named pattern *)
- | P_typ of typ * 'a pat (* typed pattern *)
- | P_id of id (* identifier *)
- | P_var of 'a pat * kid (* bind pattern to type variable *)
- | P_app of id * ('a pat) list (* union constructor pattern *)
- | P_record of ('a fpat) list * bool (* struct pattern *)
- | P_vector of ('a pat) list (* vector pattern *)
- | P_vector_concat of ('a pat) list (* concatenated vector pattern *)
- | P_tup of ('a pat) list (* tuple pattern *)
- | P_list of ('a pat) list (* list pattern *)
- | P_cons of 'a pat * 'a pat (* Cons patterns *)
-
-and 'a pat =
- P_aux of 'a pat_aux * 'a annot
-
-and 'a fpat_aux = (* field pattern *)
- FP_Fpat of id * 'a pat
-
-and 'a fpat =
- FP_aux of 'a fpat_aux * 'a annot
-
-
-type
-typquant =
- TypQ_aux of typquant_aux * Parse_ast.l
-
-
-type
-name_scm_opt_aux = (* optional variable naming-scheme constraint *)
- Name_sect_none
- | Name_sect_some of string
-
-
-type
-type_union_aux = (* type union constructors *)
- Tu_id of id
- | Tu_ty_id of typ * id
-
-
-type
-typschm_aux = (* type scheme *)
- TypSchm_ts of typquant * typ
-
-
-type
-name_scm_opt =
- Name_sect_aux of name_scm_opt_aux * Parse_ast.l
-
-
-type
-type_union =
- Tu_aux of type_union_aux * Parse_ast.l
-
-
-type
-typschm =
- TypSchm_aux of typschm_aux * Parse_ast.l
-
-
-type
-index_range_aux = (* index specification, for bitfields in register types *)
- BF_single of int (* single index *)
- | BF_range of int * int (* index range *)
- | BF_concat of index_range * index_range (* concatenation of index ranges *)
-
-and index_range =
- BF_aux of index_range_aux * Parse_ast.l
-
-
-type
-'a kind_def_aux = (* Definition body for elements of kind *)
- KD_nabbrev of kind * id * name_scm_opt * nexp (* $_$-expression abbreviation *)
-
-
-type
-type_def_aux = (* type definition body *)
- TD_abbrev of id * name_scm_opt * typschm (* type abbreviation *)
- | TD_record of id * name_scm_opt * typquant * ((typ * id)) list * bool (* struct type definition *)
- | TD_variant of id * name_scm_opt * typquant * (type_union) list * bool (* tagged union type definition *)
- | TD_enum of id * name_scm_opt * (id) list * bool (* enumeration type definition *)
- | TD_register of id * nexp * nexp * ((index_range * id)) list (* register mutable bitfield type definition *)
-
-
-type
-'a kind_def =
- KD_aux of 'a kind_def_aux * 'a annot
-
-
-type
-'a type_def = TD_aux of type_def_aux * 'a annot
-
-
-type
-'a reg_id_aux =
- RI_id of id
-
-
-type
-'a exp_aux = (* expression *)
- E_block of ('a exp) list (* sequential block *)
- | E_nondet of ('a exp) list (* nondeterministic block *)
- | E_id of id (* identifier *)
- | E_lit of lit (* literal constant *)
- | E_cast of typ * 'a exp (* cast *)
- | E_app of id * ('a exp) list (* function application *)
- | E_app_infix of 'a exp * id * 'a exp (* infix function application *)
- | E_tuple of ('a exp) list (* tuple *)
- | E_if of 'a exp * 'a exp * 'a exp (* conditional *)
- | E_loop of loop * 'a exp * 'a exp
- | E_until of 'a exp * 'a exp
- | E_for of id * 'a exp * 'a exp * 'a exp * order * 'a exp (* loop *)
- | E_vector of ('a exp) list (* vector (indexed from 0) *)
- | E_vector_indexed of ((int * 'a exp)) list * 'a opt_default (* vector (indexed consecutively) *)
- | E_vector_access of 'a exp * 'a exp (* vector access *)
- | E_vector_subrange of 'a exp * 'a exp * 'a exp (* subvector extraction *)
- | E_vector_update of 'a exp * 'a exp * 'a exp (* vector functional update *)
- | E_vector_update_subrange of 'a exp * 'a exp * 'a exp * 'a exp (* vector subrange update, with vector *)
- | E_vector_append of 'a exp * 'a exp (* vector concatenation *)
- | E_list of ('a exp) list (* list *)
- | E_cons of 'a exp * 'a exp (* cons *)
- | E_record of 'a fexps (* struct *)
- | E_record_update of 'a exp * 'a fexps (* functional update of struct *)
- | E_field of 'a exp * id (* field projection from struct *)
- | E_case of 'a exp * ('a pexp) list (* pattern matching *)
- | E_let of 'a letbind * 'a exp (* let expression *)
- | E_assign of 'a lexp * 'a exp (* imperative assignment *)
- | E_sizeof of nexp (* the value of $nexp$ at run time *)
- | E_return of 'a exp (* return $'a exp$ from current function *)
- | E_exit of 'a exp (* halt all current execution *)
- | E_throw of 'a exp
- | E_try of 'a exp * ('a pexp) list
- | E_assert of 'a exp * 'a exp (* halt with error $'a exp$ when not $'a exp$ *)
- | E_internal_cast of 'a annot * 'a exp (* This is an internal cast, generated during type checking that will resolve into a syntactic cast after *)
- | E_internal_exp of 'a annot (* This is an internal use for passing nexp information to library functions, postponed for constraint solving *)
- | E_sizeof_internal of 'a annot (* For sizeof during type checking, to replace nexp with internal n *)
- | E_internal_exp_user of 'a annot * 'a annot (* This is like the above but the user has specified an implicit parameter for the current function *)
- | E_comment of string (* For generated unstructured comments *)
- | E_comment_struc of 'a exp (* For generated structured comments *)
- | E_internal_let of 'a lexp * 'a exp * 'a exp (* This is an internal node for compilation that demonstrates the scope of a local mutable variable *)
- | E_internal_plet of 'a pat * 'a exp * 'a exp (* This is an internal node, used to distinguised some introduced lets during processing from original ones *)
- | E_internal_return of 'a exp (* For internal use to embed into monad definition *)
- | E_constraint of n_constraint
-
-and 'a exp =
- E_aux of 'a exp_aux * 'a annot
-
-and 'a lexp_aux = (* lvalue expression *)
- LEXP_id of id (* identifier *)
- | LEXP_memory of id * ('a exp) list (* memory or register write via function call *)
- | LEXP_cast of typ * id (* cast *)
- | LEXP_tup of ('a lexp) list (* multiple (non-memory) assignment *)
- | LEXP_vector of 'a lexp * 'a exp (* vector element *)
- | LEXP_vector_range of 'a lexp * 'a exp * 'a exp (* subvector *)
- | LEXP_field of 'a lexp * id (* struct field *)
-
-and 'a lexp =
- LEXP_aux of 'a lexp_aux * 'a annot
-
-and 'a fexp_aux = (* field expression *)
- FE_Fexp of id * 'a exp
-
-and 'a fexp =
- FE_aux of 'a fexp_aux * 'a annot
-
-and 'a fexps_aux = (* field expression list *)
- FES_Fexps of ('a fexp) list * bool
-
-and 'a fexps =
- FES_aux of 'a fexps_aux * 'a annot
-
-and 'a opt_default_aux = (* optional default value for indexed vector expressions *)
- Def_val_empty
- | Def_val_dec of 'a exp
-
-and 'a opt_default =
- Def_val_aux of 'a opt_default_aux * 'a annot
-
-and 'a pexp_aux = (* pattern match *)
- Pat_exp of 'a pat * 'a exp
- | Pat_when of 'a pat * 'a exp * 'a exp
-
-and 'a pexp =
- Pat_aux of 'a pexp_aux * 'a annot
-
-and 'a letbind_aux = (* let binding *)
- LB_val of 'a pat * 'a exp (* let, implicit type ($'a pat$ must be total) *)
-
-and 'a letbind =
- LB_aux of 'a letbind_aux * 'a annot
-
-
-type
-'a reg_id =
- RI_aux of 'a reg_id_aux * 'a annot
-
-
-type
-rec_opt_aux = (* optional recursive annotation for functions *)
- Rec_nonrec (* non-recursive *)
- | Rec_rec (* recursive *)
-
-
-type
-effect_opt_aux = (* optional effect annotation for functions *)
- Effect_opt_pure (* sugar for empty effect set *)
- | Effect_opt_effect of effect
-
-
-type
-tannot_opt_aux = (* optional type annotation for functions *)
- Typ_annot_opt_none
- | Typ_annot_opt_some of typquant * typ
-
-
-type
-'a funcl_aux = (* function clause *)
- FCL_Funcl of id * 'a pat * 'a exp
-
-
-type
-'a alias_spec_aux = (* register alias expression forms *)
- AL_subreg of 'a reg_id * id
- | AL_bit of 'a reg_id * 'a exp
- | AL_slice of 'a reg_id * 'a exp * 'a exp
- | AL_concat of 'a reg_id * 'a reg_id
-
-
-type
-rec_opt =
- Rec_aux of rec_opt_aux * Parse_ast.l
-
-
-type
-effect_opt =
- Effect_opt_aux of effect_opt_aux * Parse_ast.l
-
-
-type
-tannot_opt =
- Typ_annot_opt_aux of tannot_opt_aux * Parse_ast.l
-
-
-type
-'a funcl =
- FCL_aux of 'a funcl_aux * 'a annot
-
-
-type
-'a alias_spec =
- AL_aux of 'a alias_spec_aux * 'a annot
-
-
-type
-'a scattered_def_aux = (* scattered function and union type definitions *)
- SD_scattered_function of rec_opt * tannot_opt * effect_opt * id (* scattered function definition header *)
- | SD_scattered_funcl of 'a funcl (* scattered function definition clause *)
- | SD_scattered_variant of id * name_scm_opt * typquant (* scattered union definition header *)
- | SD_scattered_unioncl of id * type_union (* scattered union definition member *)
- | SD_scattered_end of id (* scattered definition end *)
-
-
-type
-'a dec_spec_aux = (* register declarations *)
- DEC_reg of typ * id
- | DEC_alias of id * 'a alias_spec
- | DEC_typ_alias of typ * id * 'a alias_spec
-
-
-type
-val_spec_aux = VS_val_spec of typschm * id * string option * bool
-
-
-type
-'a fundef_aux = (* function definition *)
- FD_function of rec_opt * tannot_opt * effect_opt * ('a funcl) list
-
-
-type
-default_spec_aux = (* default kinding or typing assumption *)
- DT_order of order
- | DT_kind of base_kind * kid
- | DT_typ of typschm * id
-
-
-type
-prec =
- Infix
- | InfixL
- | InfixR
-
-
-type
-'a scattered_def =
- SD_aux of 'a scattered_def_aux * 'a annot
-
-
-type
-'a dec_spec =
- DEC_aux of 'a dec_spec_aux * 'a annot
-
-
-type
-'a val_spec = VS_aux of val_spec_aux * 'a annot
-
-
-type
-'a fundef =
- FD_aux of 'a fundef_aux * 'a annot
-
-
-type
-default_spec =
- DT_aux of default_spec_aux * Parse_ast.l
-
-
-type
-'a dec_comm = (* top-level generated comments *)
- DC_comm of string (* generated unstructured comment *)
- | DC_comm_struct of 'a def (* generated structured comment *)
-
-and 'a def = (* top-level definition *)
- DEF_kind of 'a kind_def (* definition of named kind identifiers *)
- | DEF_type of 'a type_def (* type definition *)
- | DEF_fundef of 'a fundef (* function definition *)
- | DEF_val of 'a letbind (* value definition *)
- | DEF_spec of 'a val_spec (* top-level type constraint *)
- | DEF_fixity of prec * int * id (* fixity declaration *)
- | DEF_overload of id * (id) list (* operator overload specification *)
- | DEF_default of default_spec (* default kind and type assumptions *)
- | DEF_scattered of 'a scattered_def (* scattered function and type definition *)
- | DEF_reg_dec of 'a dec_spec (* register declaration *)
- | DEF_comm of 'a dec_comm (* generated comments *)
-
-
-type
-'a defs = (* definition sequence *)
- Defs of ('a def) list
-
-
-
diff --git a/language/l2_parse.ml b/language/l2_parse.ml
deleted file mode 100644
index 42ef8d44..00000000
--- a/language/l2_parse.ml
+++ /dev/null
@@ -1,466 +0,0 @@
-(* generated by Ott 0.25 from: l2_parse.ott *)
-
-
-type l =
- | Unknown
- | Int of string * l option
- | Generated of l
- | Range of Lexing.position * Lexing.position
-
-type 'a annot = l * 'a
-
-exception Parse_error_locn of l * string
-
-
-type x = string (* identifier *)
-type ix = string (* infix identifier *)
-
-type
-base_kind_aux = (* base kind *)
- BK_type (* kind of types *)
- | BK_nat (* kind of natural number size expressions *)
- | BK_order (* kind of vector order specifications *)
- | BK_effect (* kind of effect sets *)
-
-
-type
-base_kind =
- BK_aux of base_kind_aux * l
-
-
-type
-base_effect_aux = (* effect *)
- BE_rreg (* read register *)
- | BE_wreg (* write register *)
- | BE_rmem (* read memory *)
- | BE_wmem (* write memory *)
- | BE_wmv (* write memory value *)
- | BE_eamem (* address for write signaled *)
- | BE_barr (* memory barrier *)
- | BE_depend (* dynmically dependent footprint *)
- | BE_undef (* undefined-instruction exception *)
- | BE_unspec (* unspecified values *)
- | BE_nondet (* nondeterminism from intra-instruction parallelism *)
- | BE_escape
-
-
-type
-kid_aux = (* identifiers with kind, ticked to differntiate from program variables *)
- Var of x
-
-
-type
-id_aux = (* Identifier *)
- Id of x
- | DeIid of x (* remove infix status *)
-
-
-type
-kind_aux = (* kinds *)
- K_kind of (base_kind) list
-
-
-type
-base_effect =
- BE_aux of base_effect_aux * l
-
-
-type
-kid =
- Kid_aux of kid_aux * l
-
-
-type
-id =
- Id_aux of id_aux * l
-
-
-type
-kind =
- K_aux of kind_aux * l
-
-
-type
-atyp_aux = (* expressions of all kinds, to be translated to types, nats, orders, and effects after parsing *)
- ATyp_id of id (* identifier *)
- | ATyp_var of kid (* ticked variable *)
- | ATyp_constant of int (* constant *)
- | ATyp_times of atyp * atyp (* product *)
- | ATyp_sum of atyp * atyp (* sum *)
- | ATyp_minus of atyp * atyp (* subtraction *)
- | ATyp_exp of atyp (* exponential *)
- | ATyp_neg of atyp (* Internal (but not M as I want a datatype constructor) negative nexp *)
- | ATyp_inc (* increasing (little-endian) *)
- | ATyp_dec (* decreasing (big-endian) *)
- | ATyp_default_ord (* default order for increasing or decreasing signficant bits *)
- | ATyp_set of (base_effect) list (* effect set *)
- | ATyp_fn of atyp * atyp * atyp (* Function type (first-order only in user code), last atyp is an effect *)
- | ATyp_tup of (atyp) list (* Tuple type *)
- | ATyp_app of id * (atyp) list (* type constructor application *)
-
-and atyp =
- ATyp_aux of atyp_aux * l
-
-
-type
-kinded_id_aux = (* optionally kind-annotated identifier *)
- KOpt_none of kid (* identifier *)
- | KOpt_kind of kind * kid (* kind-annotated variable *)
-
-
-type
-n_constraint_aux = (* constraint over kind $_$ *)
- NC_fixed of atyp * atyp
- | NC_bounded_ge of atyp * atyp
- | NC_bounded_le of atyp * atyp
- | NC_nat_set_bounded of kid * (int) list
-
-
-type
-kinded_id =
- KOpt_aux of kinded_id_aux * l
-
-
-type
-n_constraint =
- NC_aux of n_constraint_aux * l
-
-
-type
-quant_item_aux = (* Either a kinded identifier or a nexp constraint for a typquant *)
- QI_id of kinded_id (* An optionally kinded identifier *)
- | QI_const of n_constraint (* A constraint for this type *)
-
-
-type
-quant_item =
- QI_aux of quant_item_aux * l
-
-
-type
-typquant_aux = (* type quantifiers and constraints *)
- TypQ_tq of (quant_item) list
- | TypQ_no_forall (* sugar, omitting quantifier and constraints *)
-
-
-type
-typquant =
- TypQ_aux of typquant_aux * l
-
-
-type
-lit_aux = (* Literal constant *)
- L_unit (* $() : _$ *)
- | L_zero (* $_ : _$ *)
- | L_one (* $_ : _$ *)
- | L_true (* $_ : _$ *)
- | L_false (* $_ : _$ *)
- | L_num of int (* natural number constant *)
- | L_hex of string (* bit vector constant, C-style *)
- | L_bin of string (* bit vector constant, C-style *)
- | L_undef (* undefined value *)
- | L_string of string (* string constant *)
-
-
-type
-typschm_aux = (* type scheme *)
- TypSchm_ts of typquant * atyp
-
-
-type
-lit =
- L_aux of lit_aux * l
-
-
-type
-typschm =
- TypSchm_aux of typschm_aux * l
-
-
-type
-pat_aux = (* Pattern *)
- P_lit of lit (* literal constant pattern *)
- | P_wild (* wildcard *)
- | P_as of pat * id (* named pattern *)
- | P_typ of atyp * pat (* typed pattern *)
- | P_id of id (* identifier *)
- | P_app of id * (pat) list (* union constructor pattern *)
- | P_record of (fpat) list * bool (* struct pattern *)
- | P_vector of (pat) list (* vector pattern *)
- | P_vector_indexed of ((int * pat)) list (* vector pattern (with explicit indices) *)
- | P_vector_concat of (pat) list (* concatenated vector pattern *)
- | P_tup of (pat) list (* tuple pattern *)
- | P_list of (pat) list (* list pattern *)
-
-and pat =
- P_aux of pat_aux * l
-
-and fpat_aux = (* Field pattern *)
- FP_Fpat of id * pat
-
-and fpat =
- FP_aux of fpat_aux * l
-
-
-type
-exp_aux = (* Expression *)
- E_block of (exp) list (* block (parsing conflict with structs?) *)
- | E_nondet of (exp) list (* block that can evaluate the contained expressions in any ordering *)
- | E_id of id (* identifier *)
- | E_lit of lit (* literal constant *)
- | E_cast of atyp * exp (* cast *)
- | E_app of id * (exp) list (* function application *)
- | E_app_infix of exp * id * exp (* infix function application *)
- | E_tuple of (exp) list (* tuple *)
- | E_if of exp * exp * exp (* conditional *)
- | E_for of id * exp * exp * exp * atyp * exp (* loop *)
- | E_vector of (exp) list (* vector (indexed from 0) *)
- | E_vector_indexed of (exp) list * opt_default (* vector (indexed consecutively) *)
- | E_vector_access of exp * exp (* vector access *)
- | E_vector_subrange of exp * exp * exp (* subvector extraction *)
- | E_vector_update of exp * exp * exp (* vector functional update *)
- | E_vector_update_subrange of exp * exp * exp * exp (* vector subrange update (with vector) *)
- | E_vector_append of exp * exp (* vector concatenation *)
- | E_list of (exp) list (* list *)
- | E_cons of exp * exp (* cons *)
- | E_record of fexps (* struct *)
- | E_record_update of exp * (exp) list (* functional update of struct *)
- | E_field of exp * id (* field projection from struct *)
- | E_case of exp * (pexp) list (* pattern matching *)
- | E_let of letbind * exp (* let expression *)
- | E_assign of exp * exp (* imperative assignment *)
- | E_sizeof of atyp
- | E_exit of exp
- | E_return of exp
- | E_assert of exp * exp
-
-and exp =
- E_aux of exp_aux * l
-
-and fexp_aux = (* Field-expression *)
- FE_Fexp of id * exp
-
-and fexp =
- FE_aux of fexp_aux * l
-
-and fexps_aux = (* Field-expression list *)
- FES_Fexps of (fexp) list * bool
-
-and fexps =
- FES_aux of fexps_aux * l
-
-and opt_default_aux = (* Optional default value for indexed vectors, to define a defualt value for any unspecified positions in a sparse map *)
- Def_val_empty
- | Def_val_dec of exp
-
-and opt_default =
- Def_val_aux of opt_default_aux * l
-
-and pexp_aux = (* Pattern match *)
- Pat_exp of pat * exp
-
-and pexp =
- Pat_aux of pexp_aux * l
-
-and letbind_aux = (* Let binding *)
- LB_val_explicit of typschm * pat * exp (* value binding, explicit type (pat must be total) *)
- | LB_val_implicit of pat * exp (* value binding, implicit type (pat must be total) *)
-
-and letbind =
- LB_aux of letbind_aux * l
-
-
-type
-tannot_opt_aux = (* Optional type annotation for functions *)
- Typ_annot_opt_none
- | Typ_annot_opt_some of typquant * atyp
-
-
-type
-effect_opt_aux = (* Optional effect annotation for functions *)
- Effect_opt_pure (* sugar for empty effect set *)
- | Effect_opt_effect of atyp
-
-
-type
-rec_opt_aux = (* Optional recursive annotation for functions *)
- Rec_nonrec (* non-recursive *)
- | Rec_rec (* recursive *)
-
-
-type
-funcl_aux = (* Function clause *)
- FCL_Funcl of id * pat * exp
-
-
-type
-type_union_aux = (* Type union constructors *)
- Tu_id of id
- | Tu_ty_id of atyp * id
-
-
-type
-name_scm_opt_aux = (* Optional variable-naming-scheme specification for variables of defined type *)
- Name_sect_none
- | Name_sect_some of string
-
-
-type
-tannot_opt =
- Typ_annot_opt_aux of tannot_opt_aux * l
-
-
-type
-effect_opt =
- Effect_opt_aux of effect_opt_aux * l
-
-
-type
-rec_opt =
- Rec_aux of rec_opt_aux * l
-
-
-type
-funcl =
- FCL_aux of funcl_aux * l
-
-
-type
-type_union =
- Tu_aux of type_union_aux * l
-
-
-type
-index_range_aux = (* index specification, for bitfields in register types *)
- BF_single of int (* single index *)
- | BF_range of int * int (* index range *)
- | BF_concat of index_range * index_range (* concatenation of index ranges *)
-
-and index_range =
- BF_aux of index_range_aux * l
-
-
-type
-name_scm_opt =
- Name_sect_aux of name_scm_opt_aux * l
-
-
-type
-default_typing_spec_aux = (* Default kinding or typing assumption, and default order for literal vectors and vector shorthands *)
- DT_kind of base_kind * kid
- | DT_order of base_kind * atyp
- | DT_typ of typschm * id
-
-
-type
-fundef_aux = (* Function definition *)
- FD_function of rec_opt * tannot_opt * effect_opt * (funcl) list
-
-
-type
-type_def_aux = (* Type definition body *)
- TD_abbrev of id * name_scm_opt * typschm (* type abbreviation *)
- | TD_record of id * name_scm_opt * typquant * ((atyp * id)) list * bool (* struct type definition *)
- | TD_variant of id * name_scm_opt * typquant * (type_union) list * bool (* union type definition *)
- | TD_enum of id * name_scm_opt * (id) list * bool (* enumeration type definition *)
- | TD_register of id * atyp * atyp * ((index_range * id)) list (* register mutable bitfield type definition *)
-
-
-type
-val_spec_aux = (* Value type specification *)
- VS_val_spec of typschm * id
- | VS_extern_no_rename of typschm * id
- | VS_extern_spec of typschm * id * string
-
-
-type
-kind_def_aux = (* Definition body for elements of kind; many are shorthands for type\_defs *)
- KD_abbrev of kind * id * name_scm_opt * typschm (* type abbreviation *)
- | KD_record of kind * id * name_scm_opt * typquant * ((atyp * id)) list * bool (* struct type definition *)
- | KD_variant of kind * id * name_scm_opt * typquant * (type_union) list * bool (* union type definition *)
- | KD_enum of kind * id * name_scm_opt * (id) list * bool (* enumeration type definition *)
- | KD_register of kind * id * atyp * atyp * ((index_range * id)) list (* register mutable bitfield type definition *)
-
-
-type
-dec_spec_aux = (* Register declarations *)
- DEC_reg of atyp * id
- | DEC_alias of id * exp
- | DEC_typ_alias of atyp * id * exp
-
-
-type
-scattered_def_aux = (* Function and type union definitions that can be spread across
- a file. Each one must end in $_$ *)
- SD_scattered_function of rec_opt * tannot_opt * effect_opt * id (* scattered function definition header *)
- | SD_scattered_funcl of funcl (* scattered function definition clause *)
- | SD_scattered_variant of id * name_scm_opt * typquant (* scattered union definition header *)
- | SD_scattered_unioncl of id * type_union (* scattered union definition member *)
- | SD_scattered_end of id (* scattered definition end *)
-
-
-type
-default_typing_spec =
- DT_aux of default_typing_spec_aux * l
-
-
-type
-fundef =
- FD_aux of fundef_aux * l
-
-
-type
-type_def =
- TD_aux of type_def_aux * l
-
-
-type
-val_spec =
- VS_aux of val_spec_aux * l
-
-
-type
-kind_def =
- KD_aux of kind_def_aux * l
-
-
-type
-dec_spec =
- DEC_aux of dec_spec_aux * l
-
-
-type
-scattered_def =
- SD_aux of scattered_def_aux * l
-
-
-type
-def = (* Top-level definition *)
- DEF_kind of kind_def (* definition of named kind identifiers *)
- | DEF_type of type_def (* type definition *)
- | DEF_fundef of fundef (* function definition *)
- | DEF_val of letbind (* value definition *)
- | DEF_spec of val_spec (* top-level type constraint *)
- | DEF_default of default_typing_spec (* default kind and type assumptions *)
- | DEF_scattered of scattered_def (* scattered definition *)
- | DEF_reg_dec of dec_spec (* register declaration *)
-
-
-type
-lexp_aux = (* lvalue expression, can't occur out of the parser *)
- LEXP_id of id (* identifier *)
- | LEXP_mem of id * (exp) list
- | LEXP_vector of lexp * exp (* vector element *)
- | LEXP_vector_range of lexp * exp * exp (* subvector *)
- | LEXP_field of lexp * id (* struct field *)
-
-and lexp =
- LEXP_aux of lexp_aux * l
-
-
-type
-defs = (* Definition sequence *)
- Defs of (def) list
-
-
-
diff --git a/language/l2.ott b/language/sail.ott
index a437f915..a437f915 100644
--- a/language/l2.ott
+++ b/language/sail.ott
diff --git a/language/sil.ott b/language/sil.ott
deleted file mode 100644
index 40adfc4d..00000000
--- a/language/sil.ott
+++ /dev/null
@@ -1,451 +0,0 @@
-%%% Sail Intermediate Language %%%
-
-% An attempt to precisely document the subset of sail that the
-% rewriter is capable of re-writing sail into. It is intended to be a
-% strict subset of the Sail AST, and be typecheckable with the full
-% typechecker.
-%
-% Notably, it lacks:
-% - Special (bit)vector syntax.
-% - Complex l-values.
-% - Existential types.
-% - Polymorphism, of any kind.
-
-indexvar n , m , i , j ::=
- {{ phantom }}
- {{ com Index variables for meta-lists }}
-
-metavar num,numZero,numOne ::=
- {{ phantom }}
- {{ lex numeric }}
- {{ ocaml int }}
- {{ hol num }}
- {{ lem integer }}
- {{ com Numeric literals }}
-
-metavar nat ::=
- {{ phantom }}
- {{ ocaml int }}
- {{ lex numeric }}
- {{ lem nat }}
-
-metavar string ::=
- {{ phantom }}
- {{ ocaml string }}
- {{ lem string }}
- {{ hol string }}
- {{ com String literals }}
-
-metavar real ::=
- {{ phantom }}
- {{ ocaml string }}
- {{ lem string }}
- {{ hol string }}
- {{ com Real number literal }}
-
-embed
-{{ ocaml
-
-type text = string
-
-type l = Parse_ast.l
-
-type 'a annot = l * 'a
-
-type loop = While | Until
-
-}}
-
-embed
-{{ lem
-open import Pervasives
-open import Pervasives_extra
-open import Map
-open import Maybe
-open import Set_extra
-
-type l =
- | Unknown
- | Int of string * maybe l (*internal types, functions*)
- | Range of string * nat * nat * nat * nat
- | Generated of l (*location for a generated node, where l is the location of the closest original source*)
-
-type annot 'a = l * 'a
-
-val duplicates : forall 'a. list 'a -> list 'a
-
-val set_from_list : forall 'a. list 'a -> set 'a
-
-val subst : forall 'a. list 'a -> list 'a -> bool
-
-type loop = While | Until
-
-}}
-
-metavar x , y , z ::=
- {{ ocaml text }}
- {{ lem string }}
- {{ hol string }}
- {{ com identifier }}
- {{ ocamlvar "[[x]]" }}
- {{ lemvar "[[x]]" }}
-
-grammar
-
-l :: '' ::= {{ phantom }}
- {{ ocaml Parse_ast.l }}
- {{ lem l }}
- {{ hol unit }}
- {{ com source location }}
- | :: :: Unknown
- {{ ocaml Unknown }}
- {{ lem Unknown }}
- {{ hol () }}
-
-
-id :: '' ::=
- {{ com Identifier }}
- {{ aux _ l }}
- | x :: :: id
- | ( deinfix x ) :: D :: deIid {{ com remove infix status }}
-
-base_effect :: 'BE_' ::=
- {{ com effect }}
- {{ aux _ l }}
- | rreg :: :: rreg {{ com read register }}
- | wreg :: :: wreg {{ com write register }}
- | rmem :: :: rmem {{ com read memory }}
- | rmemt :: :: rmemt {{ com read memory and tag }}
- | wmem :: :: wmem {{ com write memory }}
- | wmea :: :: eamem {{ com signal effective address for writing memory }}
- | exmem :: :: exmem {{ com determine if a store-exclusive (ARM) is going to succeed }}
- | wmv :: :: wmv {{ com write memory, sending only value }}
- | wmvt :: :: wmvt {{ com write memory, sending only value and tag }}
- | barr :: :: barr {{ com memory barrier }}
- | depend :: :: depend {{ com dynamic footprint }}
- | undef :: :: undef {{ com undefined-instruction exception }}
- | unspec :: :: unspec {{ com unspecified values }}
- | nondet :: :: nondet {{ com nondeterminism, from $[[nondet]]$ }}
- | escape :: :: escape {{ com potential call of $[[exit]]$ }}
- | lset :: :: lset {{ com local mutation; not user-writable }}
- | lret :: :: lret {{ com local return; not user-writable }}
-
-effect :: 'Effect_' ::=
- {{ com effect set, of kind $[[Effect]]$ }}
- {{ aux _ l }}
- | { base_effect1 , .. , base_effectn } :: :: set {{ com effect set }}
- | pure :: M :: pure {{ com sugar for empty effect set }}
- {{ lem (Effect_set []) }} {{icho [[{}]] }}
- | effect1 u+ .. u+ effectn :: M :: union {{ com union of sets of effects }} {{ icho [] }}
- {{ lem (List.foldr effect_union (Effect_aux (Effect_set []) Unknown) [[effect1..effectn]]) }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Types %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-typ :: 'Typ_' ::=
- {{ com type expressions, of kind $[[Type]]$ }}
- {{ aux _ l }}
- | id :: :: id
- {{ com defined type }}
- | typ1 -> typ2 effectkw effect :: :: fn
- {{ com Function (first-order only in user code) }}
- | ( typ1 , .... , typn ) :: :: tup
- {{ com Tuple }}
- | id < typ_arg1 , .. , typ_argn > :: :: app
- {{ com type constructor application }}
-
-typ_arg :: 'Typ_arg_' ::=
- {{ com type constructor arguments of all kinds }}
- {{ aux _ l }}
- | typ :: :: typ
-
-typquant :: 'TypQ_' ::=
- {{ com type quantifiers and constraints}}
- {{ aux _ l }}
- | :: :: no_forall {{ com empty }}
-
-typschm :: 'TypSchm_' ::=
- {{ com type scheme }}
- {{ aux _ l }}
- | typquant typ :: :: ts
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Type definitions %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-type_def {{ ocaml 'a type_def }} {{ lem type_def 'a }} :: 'TD_' ::=
- {{ ocaml TD_aux of type_def_aux * 'a annot }}
- {{ lem TD_aux of type_def_aux * annot 'a }}
- | type_def_aux :: :: aux
-
-type_def_aux :: 'TD_' ::=
- {{ com type definition body }}
- | typedef id = typschm :: :: abbrev
- {{ com type abbreviation }} {{ texlong }}
- | typedef id = const struct typquant { typ1 id1 ; ... ; typn idn } :: :: record
- {{ com struct type definition }} {{ texlong }}
- | typedef id = const union typquant { type_union1 ; ... ; type_unionn } :: :: variant
- {{ com tagged union type definition}} {{ texlong }}
- | typedef id = enumerate { id1 ; ... ; idn } :: :: enum
- {{ com enumeration type definition}} {{ texlong }}
-
-% This one is a bit unusual - I think all nexps here must be constant, so replace with num.
- | typedef id = register bits [ num : num' ] { index_range1 : id1 ; ... ; index_rangen : idn }
- :: :: register {{ com register mutable bitfield type definition }} {{ texlong }}
-
-type_union :: 'Tu_' ::=
- {{ com type union constructors }}
- {{ aux _ l }}
- | id :: :: id
- | typ id :: :: ty_id
-
-index_range :: 'BF_' ::= {{ com index specification, for bitfields in register types}}
- {{ aux _ l }}
- | num :: :: 'single' {{ com single index }}
- | num1 '..' num2 :: :: range {{ com index range }}
- | index_range1 , index_range2 :: :: concat {{ com concatenation of index ranges }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Literals %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-lit :: 'L_' ::=
- {{ com literal constant }}
- {{ aux _ l }}
- | ( ) :: :: unit {{ com $() : [[unit]]$ }}
- | bitzero :: :: zero {{ com $[[bitzero]] : [[bit]]$ }}
- | bitone :: :: one {{ com $[[bitone]] : [[bit]]$ }}
- | true :: :: true {{ com $[[true]] : [[bool]]$ }}
- | false :: :: false {{ com $[[false]] : [[bool]]$ }}
- | num :: :: num {{ com natural number constant }}
-% Need to represent as a function call, e.g. sil#hex_string "0xFFFF".
-% | hex :: :: hex {{ com bit vector constant, C-style }}
-% | bin :: :: bin {{ com bit vector constant, C-style }}
- | string :: :: string {{ com string constant }}
- | undefined :: :: undef {{ com undefined-value constant }}
- | real :: :: real {{ com real number }}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Patterns %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-pat :: 'P_' ::=
- {{ com pattern }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | _ :: :: wild
- {{ com wildcard }}
- | ( pat as id ) :: :: as
- {{ com named pattern }}
- | ( typ ) pat :: :: typ
- {{ com typed pattern }}
- | id :: :: id
- {{ com identifier }}
- | id ( pat1 , .. , patn ) :: :: app
- {{ com union constructor pattern }}
- | { fpat1 ; ... ; fpatn } :: :: record
- {{ com struct pattern }}
- | ( pat1 , .... , patn ) :: :: tup
- {{ com tuple pattern }}
- | [|| pat1 , .. , patn ||] :: :: list
- {{ com list pattern }}
- | ( pat ) :: S :: paren
- {{ ichlo [[pat]] }}
- | pat1 '::' pat2 :: :: cons
- {{ com Cons patterns }}
-
-fpat :: 'FP_' ::=
- {{ com field pattern }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | id = pat :: :: Fpat
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Expressions %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-loop :: loop ::= {{ phantom }}
- | while :: :: while
- | until :: :: until
-
-exp :: 'E_' ::=
- {{ com expression }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | { exp1 ; ... ; expn } :: :: block {{ com sequential block }}
- | nondet { exp1 ; ... ; expn } :: :: nondet {{ com nondeterministic block }}
- | id :: :: id
- {{ com identifier }}
- | lit :: :: lit
- {{ com literal constant }}
-% Purely an annotation as all casting is resolved by type checker, can
-% be evaluated by simply dropping the type.
- | ( typ ) exp :: :: cast
- {{ com cast }}
- | id ( exp1 , .. , expn ) :: :: app
- {{ com function application }}
- | ( exp1 , .... , expn ) :: :: tuple
- {{ com tuple }}
- | if exp1 then exp2 else exp3 :: :: if
- {{ com conditional }}
- | loop exp1 exp2 :: :: loop
- {{ com while or until loop }}
- | foreach ( id from exp1 to exp2 by exp3 in order ) exp4 :: :: for
- {{ com for loop }}
- | [|| exp1 , .. , expn ||] :: :: list
- {{ com list }}
- | exp1 '::' exp2 :: :: cons
- {{ com cons }}
- | { fexps } :: :: record
- {{ com struct }}
- | { exp with fexps } :: :: record_update
- {{ com functional update of struct }}
- | exp . id :: :: field
- {{ com field projection from struct }}
- | switch exp { case pexp1 ... case pexpn } :: :: case
- {{ com pattern matching }}
- | letbind in exp :: :: let
- {{ com let expression }}
- | lexp := exp :: :: assign
- {{ com imperative assignment }}
- | return exp :: :: return
- {{ com return $[[exp]]$ from current function }}
- | exit exp :: :: exit
- {{ com halt all current execution }}
- | value :: I :: value
- {{ com For internal use in interpreter to wrap pre-evaluated values when returning an action }}
-
-lexp :: 'LEXP_' ::= {{ com lvalue expression }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | id :: :: id
- {{ com identifier }}
- | ( typ ) id :: :: cast
- {{ com cast }}
- | ( lexp0 , .. , lexpn ) :: :: tup {{ com multiple (non-memory) assignment }}
-% SIL: Not sure how much to rewrite L-expressions.
-% | lexp [ exp ] :: :: vector {{ com vector element }}
-% | lexp [ exp1 '..' exp2 ] :: :: vector_range {{ com subvector }}
-% | lexp . id :: :: field {{ com struct field }}
-
-fexp :: 'FE_' ::=
- {{ com field expression }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | id = exp :: :: Fexp
-
-fexps :: 'FES_' ::=
- {{ com field expression list }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | fexp1 ; ... ; fexpn :: :: Fexps
-
-pexp :: 'Pat_' ::=
- {{ com pattern match }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | pat -> exp :: :: exp
- | pat when exp1 -> exp :: :: when
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Function definitions %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-tannot_opt :: 'Typ_annot_opt_' ::=
- {{ com optional type annotation for functions}}
- {{ aux _ l }}
- | :: :: none
- | typquant typ :: :: some
-
-rec_opt :: 'Rec_' ::=
- {{ com optional recursive annotation for functions }}
- {{ aux _ l }}
- | :: :: nonrec {{ com non-recursive }}
- | rec :: :: rec {{ com recursive }}
-
-effect_opt :: 'Effect_opt_' ::=
- {{ com optional effect annotation for functions }}
- {{ aux _ l }}
- | :: :: pure {{ com sugar for empty effect set }}
- | effectkw effect :: :: effect
-
-funcl :: 'FCL_' ::=
- {{ com function clause }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | id pat = exp :: :: Funcl
-
-fundef :: 'FD_' ::=
- {{ com function definition}}
- {{ aux _ annot }} {{ auxparam 'a }}
- | function rec_opt tannot_opt effect_opt funcl1 and ... and funcln :: :: function {{ texlong }}
-
-letbind :: 'LB_' ::=
- {{ com let binding }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | let pat = exp :: :: val
- {{ com let, implicit type ($[[pat]]$ must be total)}}
-
-val_spec {{ ocaml 'a val_spec }} {{ lem val_spec 'a }} :: 'VS_' ::=
- {{ ocaml VS_aux of val_spec_aux * 'a annot }}
- {{ lem VS_aux of val_spec_aux * annot 'a }}
- | val_spec_aux :: :: aux
-
-val_spec_aux :: 'VS_' ::=
- {{ com value type specification }}
- {{ ocaml VS_val_spec of typschm * id * (string -> string option) * bool }}
- {{ lem VS_val_spec of typschm * id * maybe string * bool }}
- | val typschm id :: S :: val_spec
- {{ com specify the type of an upcoming definition }}
- {{ ocaml (VS_val_spec [[typschm]] [[id]] None false) }} {{ lem }}
-
-default_spec :: 'DT_' ::=
- {{ com default kinding or typing assumption }}
- {{ aux _ l }}
- | default Order order :: :: order
-
-reg_id :: 'RI_' ::=
- {{ aux _ annot }} {{ auxparam 'a }}
- | id :: :: id
-
-alias_spec :: 'AL_' ::=
- {{ com register alias expression forms }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | reg_id . id :: :: subreg
- | reg_id [ exp ] :: :: bit
- | reg_id [ exp '..' exp' ] :: :: slice
- | reg_id : reg_id' :: :: concat
-
-dec_spec :: 'DEC_' ::=
- {{ com register declarations }}
- {{ aux _ annot }} {{ auxparam 'a }}
- | register typ id :: :: reg
- | register alias id = alias_spec :: :: alias
- | register alias typ id = alias_spec :: :: typ_alias
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Top-level definitions %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-prec :: '' ::=
- | infix :: :: Infix
- | infixl :: :: InfixL
- | infixr :: :: InfixR
-
-def :: 'DEF_' ::=
- {{ com top-level definition }}
- {{ auxparam 'a }}
- | type_def :: :: type
- {{ com type definition }}
- | fundef :: :: fundef
- {{ com function definition }}
- | letbind :: :: val
- {{ com value definition }}
- | val_spec :: :: spec
- {{ com top-level type constraint }}
- | fix prec num id :: :: fixity
- {{ com fixity declaration }}
- | overload id [ id1 ; ... ; idn ] :: :: overload
- {{ com operator overload specification }}
- | default_spec :: :: default
- {{ com default kind and type assumptions }}
- | dec_spec :: :: reg_dec
- {{ com register declaration }}
-
-defs :: '' ::=
- {{ com definition sequence }}
- {{ auxparam 'a }}
- | def1 .. defn :: :: Defs
diff --git a/src/Makefile b/src/Makefile
index 9446a693..2b31d35e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -71,8 +71,8 @@ all: sail lib doc
full: sail lib power doc test
-ast.lem: ../language/l2.ott
- ott -sort false -generate_aux_rules true -o ast.lem -picky_multiple_parses true ../language/l2.ott
+ast.lem: ../language/sail.ott
+ ott -sort false -generate_aux_rules true -o ast.lem -picky_multiple_parses true ../language/sail.ott
bytecode.lem: ../language/bytecode.ott ast.lem
ott -sort false -generate_aux_rules true -o bytecode.lem -picky_multiple_parses true ../language/bytecode.ott
diff --git a/src/contrib/checkout.sh b/src/contrib/checkout.sh
deleted file mode 100755
index 6d423e54..00000000
--- a/src/contrib/checkout.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-test -d batteries-included || (git clone https://github.com/ocaml-batteries-team/batteries-included.git && \
- cd batteries-included && git checkout release-2.2.0)
-(cd batteries-included && make all)
-
-test -d bitstring || (git clone https://code.google.com/p/bitstring/ && \
- cd bitstring && git checkout master)
-(cd bitstring && (test -e config.h || (aclocal && autoreconf && ./configure)) && make srcdir='$(top_srcdir)' )
-
-# To fix "-fno-defer-pop" build problem on Mac OS, brew install gcc
-# and make sure "gcc" runs the brew version (not clang). Or get ocaml
-# 4.01.0 via opam, which avoids this problem.
-test -d uint || (git clone https://github.com/andrenth/ocaml-uint.git && \
- cd ocaml-uint && git checkout 1.1.x)
-(cd ocaml-uint && make configure && make)
diff --git a/src/demo.sh b/src/demo.sh
deleted file mode 100755
index 1c8f2e30..00000000
--- a/src/demo.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/sh
-
-# directory of our Power ISA to Sail generator
-POWERISA="../../../rsem/idl/power"
-# restricted set of instructions to translate
-MNEMO="stwu,stw,mr,addi,lwz,bclr,or"
-
-REBUILD=0
-
-run () {
- printf "\n# $1\n"
- printf "$ $2"
- read ignore
- eval $2
-}
-
-while getopts ":r" opt; do
- case $opt in
- r)
- REBUILD=1
- ;;
- \?)
- echo "Invalid option: -$OPTARG" >&2
- ;;
- esac
-done
-
-rebuild () {
- run "Building Sail" "make clean sail lib"
-
- run "Generating the Sail interpreter from Power ISA (restricted to: $MNEMO)" \
- "make -C $POWERISA clean extract EXPORT_MNEMO=$MNEMO"
-
- run "Type-checking Sail Power model" "make -C $POWERISA check"
- run "Copying Power model locally to run tests" \
- "cp $POWERISA/generated/extract-full.sail test/power.sail"
- #git diff test/power.sail
-
- run "Translating Power model from Sail to OCaml via Lem" "make power"
-}
-
-DEMO="./run_power.native --interactive --file test/main.bin"
-
-if [ $REBUILD -eq 1 ]; then
- rebuild
- run "Starting interactive interpreter (press 'h' for help)" \
- "$DEMO"
-else
- $DEMO
-fi
diff --git a/src/gen_lib/sample_gen/power.ml b/src/gen_lib/sample_gen/power.ml
deleted file mode 100644
index a9feb5c1..00000000
--- a/src/gen_lib/sample_gen/power.ml
+++ /dev/null
@@ -1,9103 +0,0 @@
-(*Generated by Sail from generated/power.sail.*)
-open Big_int_Z
-open Sail_values
-let dEC_TO_BCD (Vvector ([|p;q;r;s;t;u;v;w;x;y|], _, _)) =
-begin
- let a = ref (bitwise_or_bit ((bitwise_and_bit ((bitwise_not_bit (s)),(bitwise_and_bit (v,w)))),(bitwise_or_bit ((bitwise_and_bit (t,(bitwise_and_bit (v,(bitwise_and_bit (w,s)))))),(bitwise_and_bit (v,(bitwise_and_bit (w,(bitwise_not_bit
- (x)))))))))) in begin
- let b = ref (bitwise_or_bit ((bitwise_and_bit (p,(bitwise_and_bit (s,(bitwise_and_bit (x,(bitwise_not_bit
- (t)))))))),(bitwise_or_bit ((bitwise_and_bit (p,(bitwise_not_bit (w)))),(bitwise_and_bit (p,(bitwise_not_bit
- (v)))))))) in begin
- let c = ref (bitwise_or_bit ((bitwise_and_bit (q,(bitwise_and_bit (s,(bitwise_and_bit (x,(bitwise_not_bit
- (t)))))))),(bitwise_or_bit ((bitwise_and_bit (q,(bitwise_not_bit (w)))),(bitwise_and_bit (q,(bitwise_not_bit
- (v)))))))) in begin
- let d = ref r in begin
- let e = ref (bitwise_or_bit ((bitwise_and_bit (v,(bitwise_and_bit ((bitwise_not_bit (w)),x)))),(bitwise_or_bit ((bitwise_and_bit (s,(bitwise_and_bit (v,(bitwise_and_bit (w,x)))))),(bitwise_and_bit ((bitwise_not_bit
- (t)),(bitwise_and_bit (v,(bitwise_and_bit (x,w)))))))))) in begin
- let f = ref (bitwise_or_bit ((bitwise_and_bit (p,(bitwise_and_bit (t,(bitwise_and_bit (v,(bitwise_and_bit (w,(bitwise_and_bit (x,(bitwise_not_bit
- (s)))))))))))),(bitwise_or_bit ((bitwise_and_bit (s,(bitwise_and_bit ((bitwise_not_bit
- (x)),v)))),(bitwise_and_bit (s,(bitwise_not_bit (v)))))))) in begin
- let g = ref (bitwise_or_bit ((bitwise_and_bit (q,(bitwise_and_bit (t,(bitwise_and_bit (w,(bitwise_and_bit (v,(bitwise_and_bit (x,(bitwise_not_bit
- (s)))))))))))),(bitwise_or_bit ((bitwise_and_bit (t,(bitwise_and_bit ((bitwise_not_bit
- (x)),v)))),(bitwise_and_bit (t,(bitwise_not_bit (v)))))))) in begin
- let h = ref u in begin
- let i = ref (bitwise_or_bit ((bitwise_and_bit (t,(bitwise_and_bit (v,(bitwise_and_bit (w,x)))))),(bitwise_or_bit ((bitwise_and_bit (s,(bitwise_and_bit (v,(bitwise_and_bit (w,x)))))),(bitwise_and_bit (v,(bitwise_and_bit ((bitwise_not_bit
- (w)),(bitwise_not_bit (x)))))))))) in begin
- let j = ref (bitwise_or_bit ((bitwise_and_bit (p,(bitwise_and_bit ((bitwise_not_bit
- (s)),(bitwise_and_bit ((bitwise_not_bit (t)),(bitwise_and_bit (w,v)))))))),(bitwise_or_bit ((bitwise_and_bit (s,(bitwise_and_bit (v,(bitwise_and_bit ((bitwise_not_bit
- (w)),x)))))),(bitwise_or_bit ((bitwise_and_bit (p,(bitwise_and_bit (w,(bitwise_and_bit ((bitwise_not_bit
- (x)),v)))))),(bitwise_and_bit (w,(bitwise_not_bit (v)))))))))) in begin
- let k = ref (bitwise_or_bit ((bitwise_and_bit (q,(bitwise_and_bit ((bitwise_not_bit
- (s)),(bitwise_and_bit ((bitwise_not_bit (t)),(bitwise_and_bit (v,w)))))))),(bitwise_or_bit ((bitwise_and_bit (t,(bitwise_and_bit (v,(bitwise_and_bit ((bitwise_not_bit
- (w)),x)))))),(bitwise_or_bit ((bitwise_and_bit (q,(bitwise_and_bit (v,(bitwise_and_bit (w,(bitwise_not_bit
- (x)))))))),(bitwise_and_bit (x,(bitwise_not_bit (v)))))))))) in begin
- let m = ref y in begin
- (Vvector ([|!m;!k;!j;!i;!h;!g;!f;!e;!d;!c;!b;!a|], 0, true))
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
-end
-
-let bCD_TO_DEC (Vvector ([|a;b;c;d;e;f;g;h;i;j;k;m|], _, _)) =
-begin
- let p = ref (bitwise_or_bit ((bitwise_and_bit (f,(bitwise_and_bit (a,(bitwise_and_bit (i,(bitwise_not_bit
- (e)))))))),(bitwise_or_bit ((bitwise_and_bit (j,(bitwise_and_bit (a,(bitwise_not_bit (i)))))),(bitwise_and_bit (b,(bitwise_not_bit
- (a)))))))) in begin
- let q = ref (bitwise_or_bit ((bitwise_and_bit (g,(bitwise_and_bit (a,(bitwise_and_bit (i,(bitwise_not_bit
- (e)))))))),(bitwise_or_bit ((bitwise_and_bit (k,(bitwise_and_bit (a,(bitwise_not_bit (i)))))),(bitwise_and_bit (c,(bitwise_not_bit
- (a)))))))) in begin
- let r = ref d in begin
- let s = ref (bitwise_or_bit ((bitwise_and_bit (j,(bitwise_and_bit ((bitwise_not_bit (a)),(bitwise_and_bit (e,(bitwise_not_bit
- (i)))))))),(bitwise_or_bit ((bitwise_and_bit (f,(bitwise_and_bit ((bitwise_not_bit (i)),(bitwise_not_bit
- (e)))))),(bitwise_or_bit ((bitwise_and_bit (f,(bitwise_and_bit ((bitwise_not_bit (a)),(bitwise_not_bit
- (e)))))),(bitwise_and_bit (e,i)))))))) in begin
- let t = ref (bitwise_or_bit ((bitwise_and_bit (k,(bitwise_and_bit ((bitwise_not_bit (a)),(bitwise_and_bit (e,(bitwise_not_bit
- (i)))))))),(bitwise_or_bit ((bitwise_and_bit (g,(bitwise_and_bit ((bitwise_not_bit (i)),(bitwise_not_bit
- (e)))))),(bitwise_or_bit ((bitwise_and_bit (g,(bitwise_and_bit ((bitwise_not_bit (a)),(bitwise_not_bit
- (e)))))),(bitwise_and_bit (a,i)))))))) in begin
- let u = ref h in begin
- let v = ref (bitwise_or_bit (a,(bitwise_or_bit (e,i)))) in begin
- let w = ref (bitwise_or_bit ((bitwise_and_bit ((bitwise_not_bit (e)),(bitwise_and_bit (j,(bitwise_not_bit
- (i)))))),(bitwise_or_bit ((bitwise_and_bit (e,i)),a)))) in begin
- let x = ref (bitwise_or_bit ((bitwise_and_bit ((bitwise_not_bit (a)),(bitwise_and_bit (k,(bitwise_not_bit
- (i)))))),(bitwise_or_bit ((bitwise_and_bit (a,i)),e)))) in begin
- let y = ref m in begin
- (Vvector ([|!y;!x;!w;!v;!u;!t;!s;!r;!q;!p|], 0, true))
- end
- end
- end
- end
- end
- end
- end
- end
- end
- end
-end
-
-let carry_out (_, carry) =
-carry
-
-let real_addr x =
-x
-
-let mark_as_not_likely_to_be_needed_again_anytime_soon x =
-()
-
-
-
-let eXTS_EXPLICIT (v, m) =
-((vector_concat (duplicate ((bit_vector_access v (big_int_of_int 0)),(minus (m,(length (v)))))) v) :
- value)
-
-
-
-let mASK (start, stop) =
-begin
- let mask_temp = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((gt (start,stop)))
- then begin
- (set_vector_subrange_bit !mask_temp start (big_int_of_int 63) (duplicate (Vone,(minus ((big_int_of_int 64),start)))));
- (set_vector_subrange_bit !mask_temp (big_int_of_int 0) stop (duplicate (Vone,(add (stop,(big_int_of_int 1))))))
- end
- else begin
- (set_vector_subrange_bit !mask_temp start stop (duplicate (Vone,(add ((minus (stop,start)),(big_int_of_int 1))))))
- end);
- !mask_temp
- end
-end
-
-
-
-let rOTL (v, n) =
-((vector_concat (vector_subrange v n (big_int_of_int 63)) (vector_subrange v (big_int_of_int 0) (minus (n,(big_int_of_int 1))))) :
- value)
-
-let cr init_val =
- Vregister ((match init_val with | None -> ref (Array.make 32 Vzero) | Some init_val -> ref init_val), 32, true, [("CR0", (32 ,
- 35));
- ("LT", (32 , 32));
- ("GT", (33 , 33));
- ("EQ", (34 , 34));
- ("SO", (35 , 35));
- ("CR1", (36 , 39));
- ("FX", (36 , 36));
- ("FEX", (37 , 37));
- ("VX", (38 , 38));
- ("OX", (39 , 39));
- ("CR2", (40 , 43));
- ("CR3", (44 , 47));
- ("CR4", (48 , 51));
- ("CR5", (52 , 55));
- ("CR6", (56 , 59));
- ("CR7", (60 , 63))])
-
-let cR = cr None
-
-let cTR = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let lR = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let xer init_val =
- Vregister ((match init_val with | None -> ref (Array.make 64 Vzero) | Some init_val -> ref init_val), 0, true, [("SO", (32 ,
- 32));
- ("OV", (33 , 33));
- ("CA", (34 , 34))])
-
-let xER = xer None
-
-
-
-let gPR0 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR1 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR2 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR3 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR4 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR5 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR6 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR7 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR8 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR9 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR10 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR11 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR12 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR13 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR14 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR15 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR16 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR17 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR18 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR19 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR20 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR21 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR22 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR23 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR24 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR25 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR26 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR27 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR28 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR29 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR30 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR31 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let gPR =
- (VvectorR ([|gPR31;gPR30;gPR29;gPR28;gPR27;gPR26;gPR25;gPR24;gPR23;gPR22;gPR21;gPR20;gPR19;gPR18;gPR17;gPR16;gPR15;gPR14;gPR13;gPR12;gPR11;gPR10;gPR9;gPR8;gPR7;gPR6;gPR5;gPR4;gPR3;gPR2;gPR1;gPR0|], 0, true))
-
-let vRSAVE = Vregister (ref (Array.make 32 Vzero),32,true,[])
-
-let sPRG3 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let sPRG4 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let sPRG5 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let sPRG6 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let sPRG7 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let sPR =
- (make_indexed_v [(1, xER);(8, lR);(9, cTR);(259, sPRG3);(260, sPRG4);(261, sPRG5);(262, sPRG6);(263, sPRG7)] (Some Vundef) 0 1024 true)
-
-let dCR0 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let dCR1 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let dCR = (make_indexed_v [(0, dCR0);(1, dCR1)] (Some Vundef) 0 0 true)
-
-let fPR0 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR1 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR2 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR3 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR4 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR5 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR6 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR7 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR8 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR9 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR10 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR11 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR12 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR13 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR14 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR15 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR16 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR17 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR18 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR19 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR20 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR21 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR22 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR23 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR24 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR25 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR26 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR27 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR28 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR29 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR30 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR31 = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let fPR =
- (VvectorR ([|fPR31;fPR30;fPR29;fPR28;fPR27;fPR26;fPR25;fPR24;fPR23;fPR22;fPR21;fPR20;fPR19;fPR18;fPR17;fPR16;fPR15;fPR14;fPR13;fPR12;fPR11;fPR10;fPR9;fPR8;fPR7;fPR6;fPR5;fPR4;fPR3;fPR2;fPR1;fPR0|], 0, true))
-
-let fpscr init_val =
- Vregister ((match init_val with | None -> ref (Array.make 64 Vzero) | Some init_val -> ref init_val), 0, true, [("FX", (32 ,
- 32));
- ("FEX", (33 , 33));
- ("VX", (34 , 34));
- ("OX", (35 , 35));
- ("UX", (36 , 36));
- ("ZX", (37 , 37));
- ("XX", (38 , 38));
- ("VXSNAN", (39 , 39));
- ("VXISI", (40 , 40));
- ("VXIDI", (41 , 41));
- ("VXZDZ", (42 , 42));
- ("VXIMZ", (43 , 43));
- ("VXVC", (44 , 44));
- ("FR", (45 , 45));
- ("FI", (46 , 46));
- ("FPRF", (47 , 51));
- ("C", (47 , 47));
- ("FPCC", (48 , 51));
- ("FL", (48 , 48));
- ("FG", (49 , 49));
- ("FE", (50 , 50));
- ("FU", (51 , 51));
- ("VXSOFT", (53 , 53));
- ("VXSQRT", (54 , 54));
- ("VXCVI", (55 , 55));
- ("VE", (56 , 56));
- ("OE", (57 , 57));
- ("UE", (58 , 58));
- ("ZE", (59 , 59));
- ("XE", (60 , 60));
- ("NI", (61 , 61));
- ("RN", (62 , 63))])
-
-let fPSCR = fpscr None
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-let fPRp =
- (make_indexed_v [(0, fPRp0);(2, fPRp2);(4, fPRp4);(6, fPRp6);(8, fPRp8);(10, fPRp10);(12, fPRp12);(14, fPRp14);(16, fPRp16);(18, fPRp18);(20, fPRp20);(22, fPRp22);(24, fPRp24);(26, fPRp26);(28, fPRp28);(30, fPRp30)] (Some Vundef) 0 32 true)
-
-
-
-
-
-let dOUBLE word =
-begin
- let temp = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((bitwise_and_bit ((gt_vec_range ((vector_subrange word (big_int_of_int 1) (big_int_of_int 8)),(big_int_of_int 0))),(lt_vec_range ((vector_subrange word (big_int_of_int 1) (big_int_of_int 8)),(big_int_of_int 255))))))
- then begin
- (set_vector_subrange_bit !temp (big_int_of_int 0) (big_int_of_int 1) (vector_subrange word (big_int_of_int 0) (big_int_of_int 1)));
- (get_barray !temp).((big_int_of_int 2)) <-
- (bitwise_not_bit ((bit_vector_access word (big_int_of_int 1))));
- (get_barray !temp).((big_int_of_int 3)) <-
- (bitwise_not_bit ((bit_vector_access word (big_int_of_int 1))));
- (get_barray !temp).((big_int_of_int 4)) <-
- (bitwise_not_bit ((bit_vector_access word (big_int_of_int 1))));
- (set_vector_subrange_bit !temp (big_int_of_int 5) (big_int_of_int 63) ((vector_concat (vector_subrange word (big_int_of_int 2) (big_int_of_int 31)) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))) :
- value))
- end
- else (if to_bool((bitwise_and_bit ((eq_vec_range ((vector_subrange word (big_int_of_int 1) (big_int_of_int 8)),(big_int_of_int 0))),(neq ((vector_subrange word (big_int_of_int 9) (big_int_of_int 31)),(big_int_of_int 0))))))
- then begin
- let sign = ref (bit_vector_access word (big_int_of_int 0)) in begin
- let exp = ref (minus ((big_int_of_int 0),(big_int_of_int 126))) in begin
- let frac = ref ((vector_concat (Vvector ([|Vzero|], 0, true)) (vector_concat (vector_subrange word (big_int_of_int 9) (big_int_of_int 31)) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))) :
- value) in begin
- (let (__stop,__by) = ((big_int_of_int 52) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- (if to_bool((eq (( match (bit_vector_access !frac (big_int_of_int 0)) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then begin
- (set_vector_subrange_bit !frac (big_int_of_int 0) (big_int_of_int 52) ((vector_concat (vector_subrange !frac (big_int_of_int 1) (big_int_of_int 52)) (Vvector ([|Vzero|], 0, true))) :
- value));
- exp := (minus (!exp,(big_int_of_int 1)))
- end
- else ())
- end ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (get_barray !temp).((big_int_of_int 0)) <- !sign;
- (set_vector_subrange_bit !temp (big_int_of_int 1) (big_int_of_int 11) ((add_vec_range ((to_vec_inc
- ((big_int_of_int 11),!exp)),(big_int_of_int 1023))) :
- value));
- (set_vector_subrange_bit !temp (big_int_of_int 12) (big_int_of_int 63) ((vector_subrange !frac (big_int_of_int 1) (big_int_of_int 52)) :
- value))
- end
- end
- end
- end
- else begin
- (set_vector_subrange_bit !temp (big_int_of_int 0) (big_int_of_int 1) (vector_subrange word (big_int_of_int 0) (big_int_of_int 1)));
- (get_barray !temp).((big_int_of_int 2)) <- (bit_vector_access word (big_int_of_int 1));
- (get_barray !temp).((big_int_of_int 3)) <- (bit_vector_access word (big_int_of_int 1));
- (get_barray !temp).((big_int_of_int 4)) <- (bit_vector_access word (big_int_of_int 1));
- (set_vector_subrange_bit !temp (big_int_of_int 5) (big_int_of_int 63) ((vector_concat (vector_subrange word (big_int_of_int 2) (big_int_of_int 31)) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))) :
- value))
- end));
- !temp
- end
-end
-
-let sINGLE frs =
-begin
- let word = ref (to_vec_inc ((big_int_of_int 32),(big_int_of_int 0))) in begin
- (if to_bool((bitwise_or_bit ((gt_vec_range ((vector_subrange frs (big_int_of_int 1) (big_int_of_int 11)),(big_int_of_int 896))),(eq_vec_range ((vector_subrange frs (big_int_of_int 1) (big_int_of_int 63)),(big_int_of_int 0))))))
- then begin
- (set_vector_subrange_bit !word (big_int_of_int 0) (big_int_of_int 1) (vector_subrange frs (big_int_of_int 0) (big_int_of_int 1)));
- (set_vector_subrange_bit !word (big_int_of_int 2) (big_int_of_int 31) ((vector_subrange frs (big_int_of_int 5) (big_int_of_int 34)) :
- value))
- end
- else (if to_bool((bitwise_and_bit ((lteq_range_vec ((big_int_of_int 874),(vector_subrange frs (big_int_of_int 1) (big_int_of_int 11)))),(lteq_vec_range ((vector_subrange frs (big_int_of_int 1) (big_int_of_int 11)),(big_int_of_int 896))))))
- then begin
- let sign = ref (bit_vector_access frs (big_int_of_int 0)) in begin
- let exp = ref ((minus_vec_range ((vector_subrange frs (big_int_of_int 1) (big_int_of_int 11)),(big_int_of_int 1023))) :
- value) in begin
- let frac = ref ((vector_concat (Vvector ([|Vone|], 0, true)) (vector_subrange frs (big_int_of_int 12) (big_int_of_int 63))) :
- value) in begin
- (let (__stop,__by) = ((big_int_of_int 53) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- (if to_bool((lt_vec_range (!exp,(minus ((big_int_of_int 0),(big_int_of_int 126))))))
- then begin
- (set_vector_subrange_bit !frac (big_int_of_int 0) (big_int_of_int 52) ((vector_concat (Vvector ([|Vzero|], 0, true)) (vector_subrange !frac (big_int_of_int 0) (big_int_of_int 51))) :
- value));
- exp := ((add_vec_range (!exp,(big_int_of_int 1))) : value)
- end
- else ())
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
- end
- end
- end
- end
- else word := (to_vec_inc_undef ((big_int_of_int 32)))));
- !word
- end
-end
-
-let vR0 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR1 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR2 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR3 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR4 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR5 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR6 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR7 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR8 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR9 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR10 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR11 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR12 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR13 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR14 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR15 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR16 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR17 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR18 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR19 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR20 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR21 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR22 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR23 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR24 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR25 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR26 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR27 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR28 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR29 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR30 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR31 = Vregister (ref (Array.make 128 Vzero),0,true,[])
-
-let vR =
- (VvectorR ([|vR31;vR30;vR29;vR28;vR27;vR26;vR25;vR24;vR23;vR22;vR21;vR20;vR19;vR18;vR17;vR16;vR15;vR14;vR13;vR12;vR11;vR10;vR9;vR8;vR7;vR6;vR5;vR4;vR3;vR2;vR1;vR0|], 0, true))
-
-let vscr init_val =
- Vregister ((match init_val with | None -> ref (Array.make 32 Vzero) | Some init_val -> ref init_val), 96, true, [("NJ", (111 ,
- 111));
- ("SAT", (127 , 127))])
-
-let vSCR = vscr None
-
-
-
-let chop (x, y) =
-(vector_subrange x (big_int_of_int 0) y)
-
-
-
-let clamp (_'nv3, x, y, z) =
-begin
- let result = ref (big_int_of_int 0) in begin
- (if to_bool((lt (x,y)))
- then begin
- result := y;
- (set_register_field_bit vSCR "SAT" Vone)
- end
- else (if to_bool((gt (x,z)))
- then begin
- result := z;
- (set_register_field_bit vSCR "SAT" Vone)
- end
- else begin result := x end));
- (to_vec_inc (_'nv3,!result))
- end
-end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-let nIA = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-let cIA = Vregister (ref (Array.make 64 Vzero),0,true,[])
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-let byte_reverse (_'nv5, input) =
-begin
- let output = ref (to_vec_inc ((length (input)),(big_int_of_int 0))) in begin
- let j = ref (length (input)) in begin
- (let (__stop,__by) = ((length (input)) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit !output i (add (i,(big_int_of_int 7))) (vector_subrange input (minus (!j,(big_int_of_int 7))) !j));
- j := (minus (!j,(big_int_of_int 8)))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0));
- !output
- end
- end
-end
-
-
-
-let mode64bit = Vregister (ref (Array.make 1 Vzero),0,true,[])
-
-let bigendianmode = Vregister (ref (Array.make 1 Vzero),0,true,[])
-
-
-
-let set_overflow_cr0 (target_register, new_xer_so) =
-begin
- let m = ref (big_int_of_int 0) in begin
- let c = ref (to_vec_inc ((big_int_of_int 3),(big_int_of_int 0))) in begin
- let zero = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((bit_vector_access mode64bit (big_int_of_int 0)))
- then m := (big_int_of_int 0)
- else m := (big_int_of_int 32));
- (if to_bool((lt_vec_signed ((vector_subrange target_register !m (big_int_of_int 63)),(vector_subrange !zero !m (big_int_of_int 63)))))
- then c := (Vvector ([|Vone;Vzero;Vzero|], 0, true))
- else (if to_bool((gt_vec_signed ((vector_subrange target_register !m (big_int_of_int 63)),(vector_subrange !zero !m (big_int_of_int 63)))))
- then c := (Vvector ([|Vzero;Vone;Vzero|], 0, true))
- else c := (Vvector ([|Vzero;Vzero;Vone|], 0, true))));
- (set_register_field_v cR "CR0" ((vector_concat !c (Vvector ([|new_xer_so|], 0, true))) :
- value))
- end
- end
- end
-end
-
-let set_SO_OV overflow =
-begin
- (set_register_field_bit xER "OV" overflow);
- (set_register_field_bit xER "SO" (bitwise_or_bit ((get_register_field_bit xER "SO"),overflow)))
-end
-
-let zero_or_undef x =
-begin
- let out = ref (to_vec_inc ((length (x)),(big_int_of_int 0))) in begin
- (let (__stop,__by) = ((minus ((length (x)),(big_int_of_int 1))) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- (get_barray !out).(i) <- (if to_bool((bit_vector_access x i)) then Vundef else Vzero)
- end ;foreach(i + __by)) in foreach (big_int_of_int 0));
- !out
- end
-end
-
-type ast =
- [ | `B of (value*vbit*vbit)
- | `Bc of (value*value*value*vbit*vbit)
- | `Bclr of (value*value*value*vbit)
- | `Bcctr of (value*value*value*vbit)
- | `Crand of (value*value*value)
- | `Crnand of (value*value*value)
- | `Cror of (value*value*value)
- | `Crxor of (value*value*value)
- | `Crnor of (value*value*value)
- | `Creqv of (value*value*value)
- | `Crandc of (value*value*value)
- | `Crorc of (value*value*value)
- | `Mcrf of (value*value)
- | `Sc of value
- | `Scv of value
- | `Lbz of (value*value*value)
- | `Lbzx of (value*value*value)
- | `Lbzu of (value*value*value)
- | `Lbzux of (value*value*value)
- | `Lhz of (value*value*value)
- | `Lhzx of (value*value*value)
- | `Lhzu of (value*value*value)
- | `Lhzux of (value*value*value)
- | `Lha of (value*value*value)
- | `Lhax of (value*value*value)
- | `Lhau of (value*value*value)
- | `Lhaux of (value*value*value)
- | `Lwz of (value*value*value)
- | `Lwzx of (value*value*value)
- | `Lwzu of (value*value*value)
- | `Lwzux of (value*value*value)
- | `Lwa of (value*value*value)
- | `Lwax of (value*value*value)
- | `Lwaux of (value*value*value)
- | `Ld of (value*value*value)
- | `Ldx of (value*value*value)
- | `Ldu of (value*value*value)
- | `Ldux of (value*value*value)
- | `Stb of (value*value*value)
- | `Stbx of (value*value*value)
- | `Stbu of (value*value*value)
- | `Stbux of (value*value*value)
- | `Sth of (value*value*value)
- | `Sthx of (value*value*value)
- | `Sthu of (value*value*value)
- | `Sthux of (value*value*value)
- | `Stw of (value*value*value)
- | `Stwx of (value*value*value)
- | `Stwu of (value*value*value)
- | `Stwux of (value*value*value)
- | `Std of (value*value*value)
- | `Stdx of (value*value*value)
- | `Stdu of (value*value*value)
- | `Stdux of (value*value*value)
- | `Lq of (value*value*value*value)
- | `Stq of (value*value*value)
- | `Lhbrx of (value*value*value)
- | `Sthbrx of (value*value*value)
- | `Lwbrx of (value*value*value)
- | `Stwbrx of (value*value*value)
- | `Ldbrx of (value*value*value)
- | `Stdbrx of (value*value*value)
- | `Lmw of (value*value*value)
- | `Stmw of (value*value*value)
- | `Lswi of (value*value*value)
- | `Lswx of (value*value*value)
- | `Stswi of (value*value*value)
- | `Stswx of (value*value*value)
- | `Addi of (value*value*value)
- | `Addis of (value*value*value)
- | `Add of (value*value*value*vbit*vbit)
- | `Subf of (value*value*value*vbit*vbit)
- | `Addic of (value*value*value)
- | `AddicDot of (value*value*value)
- | `Subfic of (value*value*value)
- | `Addc of (value*value*value*vbit*vbit)
- | `Subfc of (value*value*value*vbit*vbit)
- | `Adde of (value*value*value*vbit*vbit)
- | `Subfe of (value*value*value*vbit*vbit)
- | `Addme of (value*value*vbit*vbit)
- | `Subfme of (value*value*vbit*vbit)
- | `Addze of (value*value*vbit*vbit)
- | `Subfze of (value*value*vbit*vbit)
- | `Neg of (value*value*vbit*vbit)
- | `Mulli of (value*value*value)
- | `Mullw of (value*value*value*vbit*vbit)
- | `Mulhw of (value*value*value*vbit)
- | `Mulhwu of (value*value*value*vbit)
- | `Divw of (value*value*value*vbit*vbit)
- | `Divwu of (value*value*value*vbit*vbit)
- | `Divwe of (value*value*value*vbit*vbit)
- | `Divweu of (value*value*value*vbit*vbit)
- | `Mulld of (value*value*value*vbit*vbit)
- | `Mulhd of (value*value*value*vbit)
- | `Mulhdu of (value*value*value*vbit)
- | `Divd of (value*value*value*vbit*vbit)
- | `Divdu of (value*value*value*vbit*vbit)
- | `Divde of (value*value*value*vbit*vbit)
- | `Divdeu of (value*value*value*vbit*vbit)
- | `Cmpi of (value*vbit*value*value)
- | `Cmp of (value*vbit*value*value)
- | `Cmpli of (value*vbit*value*value)
- | `Cmpl of (value*vbit*value*value)
- | `Twi of (value*value*value)
- | `Tw of (value*value*value)
- | `Tdi of (value*value*value)
- | `Td of (value*value*value)
- | `Isel of (value*value*value*value)
- | `Andi of (value*value*value)
- | `Andis of (value*value*value)
- | `Ori of (value*value*value)
- | `Oris of (value*value*value)
- | `Xori of (value*value*value)
- | `Xoris of (value*value*value)
- | `And of (value*value*value*vbit)
- | `Xor of (value*value*value*vbit)
- | `Nand of (value*value*value*vbit)
- | `Or of (value*value*value*vbit)
- | `Nor of (value*value*value*vbit)
- | `Eqv of (value*value*value*vbit)
- | `Andc of (value*value*value*vbit)
- | `Orc of (value*value*value*vbit)
- | `Extsb of (value*value*vbit)
- | `Extsh of (value*value*vbit)
- | `Cntlzw of (value*value*vbit)
- | `Cmpb of (value*value*value)
- | `Popcntb of (value*value)
- | `Popcntw of (value*value)
- | `Prtyd of (value*value)
- | `Prtyw of (value*value)
- | `Extsw of (value*value*vbit)
- | `Cntlzd of (value*value*vbit)
- | `Popcntd of (value*value)
- | `Bpermd of (value*value*value)
- | `Rlwinm of (value*value*value*value*value*vbit)
- | `Rlwnm of (value*value*value*value*value*vbit)
- | `Rlwimi of (value*value*value*value*value*vbit)
- | `Rldicl of (value*value*value*value*vbit)
- | `Rldicr of (value*value*value*value*vbit)
- | `Rldic of (value*value*value*value*vbit)
- | `Rldcl of (value*value*value*value*vbit)
- | `Rldcr of (value*value*value*value*vbit)
- | `Rldimi of (value*value*value*value*vbit)
- | `Slw of (value*value*value*vbit)
- | `Srw of (value*value*value*vbit)
- | `Srawi of (value*value*value*vbit)
- | `Sraw of (value*value*value*vbit)
- | `Sld of (value*value*value*vbit)
- | `Srd of (value*value*value*vbit)
- | `Sradi of (value*value*value*vbit)
- | `Srad of (value*value*value*vbit)
- | `Cdtbcd of (value*value)
- | `Cbcdtd of (value*value)
- | `Addg6s of (value*value*value)
- | `Mtspr of (value*value)
- | `Mfspr of (value*value)
- | `Mtcrf of (value*value)
- | `Mfcr of value
- | `Mtocrf of (value*value)
- | `Mfocrf of (value*value)
- | `Mcrxr of value
- | `Mtdcrux of (value*value)
- | `Mfdcrux of (value*value)
- | `Lfs of (value*value*value)
- | `Lfsx of (value*value*value)
- | `Lfsu of (value*value*value)
- | `Lfsux of (value*value*value)
- | `Lfd of (value*value*value)
- | `Lfdx of (value*value*value)
- | `Lfdu of (value*value*value)
- | `Lfdux of (value*value*value)
- | `Lfiwax of (value*value*value)
- | `Lfiwzx of (value*value*value)
- | `Stfs of (value*value*value)
- | `Stfsx of (value*value*value)
- | `Stfsu of (value*value*value)
- | `Stfsux of (value*value*value)
- | `Stfd of (value*value*value)
- | `Stfdx of (value*value*value)
- | `Stfdu of (value*value*value)
- | `Stfdux of (value*value*value)
- | `Stfiwx of (value*value*value)
- | `Lfdp of (value*value*value)
- | `Lfdpx of (value*value*value)
- | `Stfdp of (value*value*value)
- | `Stfdpx of (value*value*value)
- | `Fmr of (value*value*vbit)
- | `Fneg of (value*value*vbit)
- | `Fabs of (value*value*vbit)
- | `Fnabs of (value*value*vbit)
- | `Fcpsgn of (value*value*value*vbit)
- | `Fadds of (value*value*value*vbit)
- | `Fadd of (value*value*value*vbit)
- | `Fsubs of (value*value*value*vbit)
- | `Fsub of (value*value*value*vbit)
- | `Fmuls of (value*value*value*vbit)
- | `Fmul of (value*value*value*vbit)
- | `Fdivs of (value*value*value*vbit)
- | `Fdiv of (value*value*value*vbit)
- | `Fsqrts of (value*value*vbit)
- | `Fsqrt of (value*value*vbit)
- | `Fres of (value*value*vbit)
- | `Fre of (value*value*vbit)
- | `Frsqrtes of (value*value*vbit)
- | `Frsqrte of (value*value*vbit)
- | `Ftdiv of (value*value*value)
- | `Ftsqrt of (value*value)
- | `Fmadds of (value*value*value*value*vbit)
- | `Fmadd of (value*value*value*value*vbit)
- | `Fmsubs of (value*value*value*value*vbit)
- | `Fmsub of (value*value*value*value*vbit)
- | `Fnmadds of (value*value*value*value*vbit)
- | `Fnmadd of (value*value*value*value*vbit)
- | `Fnmsubs of (value*value*value*value*vbit)
- | `Fnmsub of (value*value*value*value*vbit)
- | `Frsp of (value*value*vbit)
- | `Fctid of (value*value*vbit)
- | `Fctidz of (value*value*vbit)
- | `Fctidu of (value*value*vbit)
- | `Fctiduz of (value*value*vbit)
- | `Fctiw of (value*value*vbit)
- | `Fctiwz of (value*value*vbit)
- | `Fctiwu of (value*value*vbit)
- | `Fctiwuz of (value*value*vbit)
- | `Fcfid of (value*value*vbit)
- | `Fcfidu of (value*value*vbit)
- | `Fcfids of (value*value*vbit)
- | `Fcfidus of (value*value*vbit)
- | `Frin of (value*value*vbit)
- | `Frip of (value*value*vbit)
- | `Friz of (value*value*vbit)
- | `Frim of (value*value*vbit)
- | `Fcmpu of (value*value*value)
- | `Fcmpo of (value*value*value)
- | `Fsel of (value*value*value*value*vbit)
- | `Mffs of (value*vbit)
- | `Mcrfs of (value*value)
- | `Mtfsfi of (value*vbit*value*vbit)
- | `Mtfsf of (vbit*value*vbit*value*vbit)
- | `Mtfsb0 of (value*vbit)
- | `Mtfsb1 of (value*vbit)
- | `Daddq of (value*value*value*vbit)
- | `Dadd of (value*value*value*vbit)
- | `Dsubq of (value*value*value*vbit)
- | `Dsub of (value*value*value*vbit)
- | `Dmulq of (value*value*value*vbit)
- | `Dmul of (value*value*value*vbit)
- | `Ddivq of (value*value*value*vbit)
- | `Ddiv of (value*value*value*vbit)
- | `Dcmpuq of (value*value*value)
- | `Dcmpu of (value*value*value)
- | `Dcmpoq of (value*value*value)
- | `Dcmpo of (value*value*value)
- | `Dtstdcq of (value*value*value)
- | `Dtstdc of (value*value*value)
- | `Dtstdgq of (value*value*value)
- | `Dtstdg of (value*value*value)
- | `Dtstexq of (value*value*value)
- | `Dtstex of (value*value*value)
- | `Dtstsfq of (value*value*value)
- | `Dtstsf of (value*value*value)
- | `Dquaiq of (value*value*value*value*vbit)
- | `Dquai of (value*value*value*value*vbit)
- | `Dquaq of (value*value*value*value*vbit)
- | `Dqua of (value*value*value*value*vbit)
- | `Drrndq of (value*value*value*value*vbit)
- | `Drrnd of (value*value*value*value*vbit)
- | `Drintxq of (value*vbit*value*value*vbit)
- | `Drintx of (value*vbit*value*value*vbit)
- | `Drintnq of (value*vbit*value*value*vbit)
- | `Drintn of (value*vbit*value*value*vbit)
- | `Dctdp of (value*value*vbit)
- | `Dctqpq of (value*value*vbit)
- | `Drsp of (value*value*vbit)
- | `Drdpq of (value*value*vbit)
- | `Dcffix of (value*value*vbit)
- | `Dcffixq of (value*value*vbit)
- | `Dctfixq of (value*value*vbit)
- | `Dctfix of (value*value*vbit)
- | `Ddedpdq of (value*value*value*vbit)
- | `Ddedpd of (value*value*value*vbit)
- | `Denbcdq of (value*vbit*value*vbit)
- | `Denbcd of (value*vbit*value*vbit)
- | `Dxexq of (value*value*vbit)
- | `Dxex of (value*value*vbit)
- | `Diexq of (value*value*value*vbit)
- | `Diex of (value*value*value*vbit)
- | `Dscliq of (value*value*value*vbit)
- | `Dscli of (value*value*value*vbit)
- | `Dscriq of (value*value*value*vbit)
- | `Dscri of (value*value*value*vbit)
- | `Lvebx of (value*value*value)
- | `Lvehx of (value*value*value)
- | `Lvewx of (value*value*value)
- | `Lvx of (value*value*value)
- | `Lvxl of (value*value*value)
- | `Stvebx of (value*value*value)
- | `Stvehx of (value*value*value)
- | `Stvewx of (value*value*value)
- | `Stvx of (value*value*value)
- | `Stvxl of (value*value*value)
- | `Lvsl of (value*value*value)
- | `Lvsr of (value*value*value)
- | `Vpkpx of (value*value*value)
- | `Vpkshss of (value*value*value)
- | `Vpkshus of (value*value*value)
- | `Vpkswss of (value*value*value)
- | `Vpkswus of (value*value*value)
- | `Vpkuhum of (value*value*value)
- | `Vpkuhus of (value*value*value)
- | `Vpkuwum of (value*value*value)
- | `Vpkuwus of (value*value*value)
- | `Vupkhpx of (value*value)
- | `Vupkhsb of (value*value)
- | `Vupkhsh of (value*value)
- | `Vupklpx of (value*value)
- | `Vupklsb of (value*value)
- | `Vupklsh of (value*value)
- | `Vmrghb of (value*value*value)
- | `Vmrghh of (value*value*value)
- | `Vmrghw of (value*value*value)
- | `Vmrglb of (value*value*value)
- | `Vmrglh of (value*value*value)
- | `Vmrglw of (value*value*value)
- | `Vspltb of (value*value*value)
- | `Vsplth of (value*value*value)
- | `Vspltw of (value*value*value)
- | `Vspltisb of (value*value)
- | `Vspltish of (value*value)
- | `Vspltisw of (value*value)
- | `Vperm of (value*value*value*value)
- | `Vsel of (value*value*value*value)
- | `Vsl of (value*value*value)
- | `Vsldoi of (value*value*value*value)
- | `Vslo of (value*value*value)
- | `Vsr of (value*value*value)
- | `Vsro of (value*value*value)
- | `Vaddcuw of (value*value*value)
- | `Vaddsbs of (value*value*value)
- | `Vaddshs of (value*value*value)
- | `Vaddsws of (value*value*value)
- | `Vaddubm of (value*value*value)
- | `Vadduhm of (value*value*value)
- | `Vadduwm of (value*value*value)
- | `Vaddubs of (value*value*value)
- | `Vadduhs of (value*value*value)
- | `Vadduws of (value*value*value)
- | `Vsubcuw of (value*value*value)
- | `Vsubsbs of (value*value*value)
- | `Vsubshs of (value*value*value)
- | `Vsubsws of (value*value*value)
- | `Vsububm of (value*value*value)
- | `Vsubuhm of (value*value*value)
- | `Vsubuwm of (value*value*value)
- | `Vsububs of (value*value*value)
- | `Vsubuhs of (value*value*value)
- | `Vsubuws of (value*value*value)
- | `Vmulesb of (value*value*value)
- | `Vmulesh of (value*value*value)
- | `Vmuleub of (value*value*value)
- | `Vmuleuh of (value*value*value)
- | `Vmulosb of (value*value*value)
- | `Vmulosh of (value*value*value)
- | `Vmuloub of (value*value*value)
- | `Vmulouh of (value*value*value)
- | `Vmhaddshs of (value*value*value*value)
- | `Vmhraddshs of (value*value*value*value)
- | `Vmladduhm of (value*value*value*value)
- | `Vmsumubm of (value*value*value*value)
- | `Vmsummbm of (value*value*value*value)
- | `Vmsumshm of (value*value*value*value)
- | `Vmsumshs of (value*value*value*value)
- | `Vmsumuhm of (value*value*value*value)
- | `Vmsumuhs of (value*value*value*value)
- | `Vsumsws of (value*value*value)
- | `Vsum2sws of (value*value*value)
- | `Vsum4sbs of (value*value*value)
- | `Vsum4shs of (value*value*value)
- | `Vsum4ubs of (value*value*value)
- | `Vavgsb of (value*value*value)
- | `Vavgsh of (value*value*value)
- | `Vavgsw of (value*value*value)
- | `Vavgub of (value*value*value)
- | `Vavguh of (value*value*value)
- | `Vavguw of (value*value*value)
- | `Vmaxsb of (value*value*value)
- | `Vmaxsh of (value*value*value)
- | `Vmaxsw of (value*value*value)
- | `Vmaxub of (value*value*value)
- | `Vmaxuh of (value*value*value)
- | `Vmaxuw of (value*value*value)
- | `Vminsb of (value*value*value)
- | `Vminsh of (value*value*value)
- | `Vminsw of (value*value*value)
- | `Vminub of (value*value*value)
- | `Vminuh of (value*value*value)
- | `Vminuw of (value*value*value)
- | `Vcmpequb of (value*value*value*vbit)
- | `Vcmpequh of (value*value*value*vbit)
- | `Vcmpequw of (value*value*value*vbit)
- | `Vcmpgtsb of (value*value*value*vbit)
- | `Vcmpgtsh of (value*value*value*vbit)
- | `Vcmpgtsw of (value*value*value*vbit)
- | `Vcmpgtub of (value*value*value*vbit)
- | `Vcmpgtuh of (value*value*value*vbit)
- | `Vcmpgtuw of (value*value*value*vbit)
- | `Vand of (value*value*value)
- | `Vandc of (value*value*value)
- | `Vnor of (value*value*value)
- | `Vor of (value*value*value)
- | `Vxor of (value*value*value)
- | `Vrlb of (value*value*value)
- | `Vrlh of (value*value*value)
- | `Vrlw of (value*value*value)
- | `Vslb of (value*value*value)
- | `Vslh of (value*value*value)
- | `Vslw of (value*value*value)
- | `Vsrb of (value*value*value)
- | `Vsrh of (value*value*value)
- | `Vsrw of (value*value*value)
- | `Vsrab of (value*value*value)
- | `Vsrah of (value*value*value)
- | `Vsraw of (value*value*value)
- | `Vaddfp of (value*value*value)
- | `Vsubfp of (value*value*value)
- | `Vmaddfp of (value*value*value*value)
- | `Vnmsubfp of (value*value*value*value)
- | `Vmaxfp of (value*value*value)
- | `Vminfp of (value*value*value)
- | `Vctsxs of (value*value*value)
- | `Vctuxs of (value*value*value)
- | `Vcfsx of (value*value*value)
- | `Vcfux of (value*value*value)
- | `Vrfim of (value*value)
- | `Vrfin of (value*value)
- | `Vrfip of (value*value)
- | `Vrfiz of (value*value)
- | `Vcmpbfp of (value*value*value*vbit)
- | `Vcmpeqfp of (value*value*value*vbit)
- | `Vcmpgefp of (value*value*value*vbit)
- | `Vcmpgtfp of (value*value*value*vbit)
- | `Vexptefp of (value*value)
- | `Vlogefp of (value*value)
- | `Vrefp of (value*value)
- | `Vrsqrtefp of (value*value)
- | `Mtvscr of value
- | `Mfvscr of value
- | `Lxsdx of (value*value*value*vbit)
- | `Lxvd2x of (value*value*value*vbit)
- | `Lxvdsx of (value*value*value*vbit)
- | `Lxvw4x of (value*value*value*vbit)
- | `Stxsdx of (value*value*value*vbit)
- | `Stxvd2x of (value*value*value*vbit)
- | `Stxvw4x of (value*value*value*vbit)
- | `Xsabsdp of (value*value*vbit*vbit)
- | `Xsadddp of (value*value*value*vbit*vbit*vbit)
- | `Xscmpodp of (value*value*value*vbit*vbit)
- | `Xscmpudp of (value*value*value*vbit*vbit)
- | `Xscpsgndp of (value*value*value*vbit*vbit*vbit)
- | `Xscvdpsp of (value*value*vbit*vbit)
- | `Xscvdpsxds of (value*value*vbit*vbit)
- | `Xscvdpsxws of (value*value*vbit*vbit)
- | `Xscvdpuxds of (value*value*vbit*vbit)
- | `Xscvdpuxws of (value*value*vbit*vbit)
- | `Xscvspdp of (value*value*vbit*vbit)
- | `Xscvsxddp of (value*value*vbit*vbit)
- | `Xscvuxddp of (value*value*vbit*vbit)
- | `Xsdivdp of (value*value*value*vbit*vbit*vbit)
- | `Xsmaddmdp of (value*value*value*vbit*vbit*vbit)
- | `Xsmaddadp of (value*value*value*vbit*vbit*vbit)
- | `Xsmaxdp of (value*value*value*vbit*vbit*vbit)
- | `Xsmindp of (value*value*value*vbit*vbit*vbit)
- | `Xsmsubmdp of (value*value*value*vbit*vbit*vbit)
- | `Xsmsubadp of (value*value*value*vbit*vbit*vbit)
- | `Xsmuldp of (value*value*value*vbit*vbit*vbit)
- | `Xsnabsdp of (value*value*vbit*vbit)
- | `Xsnegdp of (value*value*vbit*vbit)
- | `Xsnmaddmdp of (value*value*value*vbit*vbit*vbit)
- | `Xsnmaddadp of (value*value*value*vbit*vbit*vbit)
- | `Xsnmsubmdp of (value*value*value*vbit*vbit*vbit)
- | `Xsnmsubadp of (value*value*value*vbit*vbit*vbit)
- | `Xsrdpi of (value*value*vbit*vbit)
- | `Xsrdpic of (value*value*vbit*vbit)
- | `Xsrdpim of (value*value*vbit*vbit)
- | `Xsrdpip of (value*value*vbit*vbit)
- | `Xsrdpiz of (value*value*vbit*vbit)
- | `Xsredp of (value*value*vbit*vbit)
- | `Xsrsqrtedp of (value*value*vbit*vbit)
- | `Xssqrtdp of (value*value*vbit*vbit)
- | `Xssubdp of (value*value*value*vbit*vbit*vbit)
- | `Xstdivdp of (value*value*value*vbit*vbit)
- | `Xstsqrtdp of (value*value*vbit)
- | `Xvabsdp of (value*value*vbit*vbit)
- | `Xvabssp of (value*value*vbit*vbit)
- | `Xvadddp of (value*value*value*vbit*vbit*vbit)
- | `Xvaddsp of (value*value*value*vbit*vbit*vbit)
- | `Xvcmpeqdp of (value*value*value*vbit*vbit*vbit*vbit)
- | `Xvcmpeqsp of (value*value*value*vbit*vbit*vbit*vbit)
- | `Xvcmpgedp of (value*value*value*vbit*vbit*vbit*vbit)
- | `Xvcmpgesp of (value*value*value*vbit*vbit*vbit*vbit)
- | `Xvcmpgtdp of (value*value*value*vbit*vbit*vbit*vbit)
- | `Xvcmpgtsp of (value*value*value*vbit*vbit*vbit*vbit)
- | `Xvcpsgndp of (value*value*value*vbit*vbit*vbit)
- | `Xvcpsgnsp of (value*value*value*vbit*vbit*vbit)
- | `Xvcvdpsp of (value*value*vbit*vbit)
- | `Xvcvdpsxds of (value*value*vbit*vbit)
- | `Xvcvdpsxws of (value*value*vbit*vbit)
- | `Xvcvdpuxds of (value*value*vbit*vbit)
- | `Xvcvdpuxws of (value*value*vbit*vbit)
- | `Xvcvspdp of (value*value*vbit*vbit)
- | `Xvcvspsxds of (value*value*vbit*vbit)
- | `Xvcvspsxws of (value*value*vbit*vbit)
- | `Xvcvspuxds of (value*value*vbit*vbit)
- | `Xvcvspuxws of (value*value*vbit*vbit)
- | `Xvcvsxddp of (value*value*vbit*vbit)
- | `Xvcvsxdsp of (value*value*vbit*vbit)
- | `Xvcvsxwdp of (value*value*vbit*vbit)
- | `Xvcvsxwsp of (value*value*vbit*vbit)
- | `Xvcvuxddp of (value*value*vbit*vbit)
- | `Xvcvuxdsp of (value*value*vbit*vbit)
- | `Xvcvuxwdp of (value*value*vbit*vbit)
- | `Xvcvuxwsp of (value*value*vbit*vbit)
- | `Xvdivdp of (value*value*value*vbit*vbit*vbit)
- | `Xvdivsp of (value*value*value*vbit*vbit*vbit)
- | `Xvmaddmdp of (value*value*value*vbit*vbit*vbit)
- | `Xvmaddadp of (value*value*value*vbit*vbit*vbit)
- | `Xvmaddmsp of (value*value*value*vbit*vbit*vbit)
- | `Xvmaddasp of (value*value*value*vbit*vbit*vbit)
- | `Xvmaxdp of (value*value*value*vbit*vbit*vbit)
- | `Xvmaxsp of (value*value*value*vbit*vbit*vbit)
- | `Xvmindp of (value*value*value*vbit*vbit*vbit)
- | `Xvminsp of (value*value*value*vbit*vbit*vbit)
- | `Xvmsubmdp of (value*value*value*vbit*vbit*vbit)
- | `Xvmsubadp of (value*value*value*vbit*vbit*vbit)
- | `Xvmsubmsp of (value*value*value*vbit*vbit*vbit)
- | `Xvmsubasp of (value*value*value*vbit*vbit*vbit)
- | `Xvmuldp of (value*value*value*vbit*vbit*vbit)
- | `Xvmulsp of (value*value*value*vbit*vbit*vbit)
- | `Xvnabsdp of (value*value*vbit*vbit)
- | `Xvnabssp of (value*value*vbit*vbit)
- | `Xvnegdp of (value*value*vbit*vbit)
- | `Xvnegsp of (value*value*vbit*vbit)
- | `Xvnmaddmdp of (value*value*value*vbit*vbit*vbit)
- | `Xvnmaddadp of (value*value*value*vbit*vbit*vbit)
- | `Xvnmaddmsp of (value*value*value*vbit*vbit*vbit)
- | `Xvnmaddasp of (value*value*value*vbit*vbit*vbit)
- | `Xvnmsubmdp of (value*value*value*vbit*vbit*vbit)
- | `Xvnmsubadp of (value*value*value*vbit*vbit*vbit)
- | `Xvnmsubmsp of (value*value*value*vbit*vbit*vbit)
- | `Xvnmsubasp of (value*value*value*vbit*vbit*vbit)
- | `Xvrdpi of (value*value*vbit*vbit)
- | `Xvrdpic of (value*value*vbit*vbit)
- | `Xvrdpim of (value*value*vbit*vbit)
- | `Xvrdpip of (value*value*vbit*vbit)
- | `Xvrdpiz of (value*value*vbit*vbit)
- | `Xvredp of (value*value*vbit*vbit)
- | `Xvresp of (value*value*vbit*vbit)
- | `Xvrspi of (value*value*vbit*vbit)
- | `Xvrspic of (value*value*vbit*vbit)
- | `Xvrspim of (value*value*vbit*vbit)
- | `Xvrspip of (value*value*vbit*vbit)
- | `Xvrspiz of (value*value*vbit*vbit)
- | `Xvrsqrtedp of (value*value*vbit*vbit)
- | `Xvrsqrtesp of (value*value*vbit*vbit)
- | `Xvsqrtdp of (value*value*vbit*vbit)
- | `Xvsqrtsp of (value*value*vbit*vbit)
- | `Xvsubdp of (value*value*value*vbit*vbit*vbit)
- | `Xvsubsp of (value*value*value*vbit*vbit*vbit)
- | `Xvtdivdp of (value*value*value*vbit*vbit)
- | `Xvtdivsp of (value*value*value*vbit*vbit)
- | `Xvtsqrtdp of (value*value*vbit)
- | `Xvtsqrtsp of (value*value*vbit)
- | `Xxland of (value*value*value*vbit*vbit*vbit)
- | `Xxlandc of (value*value*value*vbit*vbit*vbit)
- | `Xxlnor of (value*value*value*vbit*vbit*vbit)
- | `Xxlor of (value*value*value*vbit*vbit*vbit)
- | `Xxlxor of (value*value*value*vbit*vbit*vbit)
- | `Xxmrghw of (value*value*value*vbit*vbit*vbit)
- | `Xxmrglw of (value*value*value*vbit*vbit*vbit)
- | `Xxpermdi of (value*value*value*value*vbit*vbit*vbit)
- | `Xxsel of (value*value*value*value*vbit*vbit*vbit*vbit)
- | `Xxsldwi of (value*value*value*value*vbit*vbit*vbit)
- | `Xxspltw of (value*value*value*vbit*vbit)
- | `Dlmzb of (value*value*value*vbit)
- | `Macchw of (value*value*value*vbit*vbit)
- | `Macchws of (value*value*value*vbit*vbit)
- | `Macchwu of (value*value*value*vbit*vbit)
- | `Macchwsu of (value*value*value*vbit*vbit)
- | `Machhw of (value*value*value*vbit*vbit)
- | `Machhws of (value*value*value*vbit*vbit)
- | `Machhwu of (value*value*value*vbit*vbit)
- | `Machhwsu of (value*value*value*vbit*vbit)
- | `Maclhw of (value*value*value*vbit*vbit)
- | `Maclhws of (value*value*value*vbit*vbit)
- | `Maclhwu of (value*value*value*vbit*vbit)
- | `Maclhwsu of (value*value*value*vbit*vbit)
- | `Mulchw of (value*value*value*vbit)
- | `Mulchwu of (value*value*value*vbit)
- | `Mulhhw of (value*value*value*vbit)
- | `Mulhhwu of (value*value*value*vbit)
- | `Mullhw of (value*value*value*vbit)
- | `Mullhwu of (value*value*value*vbit)
- | `Nmacchw of (value*value*value*vbit*vbit)
- | `Nmacchws of (value*value*value*vbit*vbit)
- | `Nmachhw of (value*value*value*vbit*vbit)
- | `Nmachhws of (value*value*value*vbit*vbit)
- | `Nmaclhw of (value*value*value*vbit*vbit)
- | `Nmaclhws of (value*value*value*vbit*vbit)
- | `Icbi of (value*value)
- | `Icbt of (value*value*value)
- | `Dcba of (value*value)
- | `Dcbt of (value*value*value)
- | `Dcbtst of (value*value*value)
- | `Dcbz of (value*value)
- | `Dcbst of (value*value)
- | `Dcbf of (value*value*value)
- | `Isync
- | `Lbarx of (value*value*value*vbit)
- | `Lharx of (value*value*value*vbit)
- | `Lwarx of (value*value*value*vbit)
- | `Stbcx of (value*value*value)
- | `Sthcx of (value*value*value)
- | `Stwcx of (value*value*value)
- | `Ldarx of (value*value*value*vbit)
- | `Stdcx of (value*value*value)
- | `Sync of value
- | `Eieio
- | `Mbar of value
- | `Wait of value]
-
-
-
-type decode_failure = No_matching_pattern |Unsupported_instruction |Illegal_instruction
-
-let decode = function
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;aA;lK|], _, _)) as instr) ->
- let lI = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 29)) in
- (Some ((`B (lI,aA,lK))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;aA;lK|], _, _)) as instr) ->
- let bO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bI = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bD = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Bc (bO,bI,bD,aA,lK))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;lK|], _, _)) as instr) ->
- let bO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bI = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bH = (vector_subrange instr (big_int_of_int 19) (big_int_of_int 20)) in
- (Some ((`Bclr (bO,bI,bH,lK))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;lK|], _, _)) as instr) ->
- let bO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bI = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bH = (vector_subrange instr (big_int_of_int 19) (big_int_of_int 20)) in
- (Some ((`Bcctr (bO,bI,bH,lK))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Crand (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Crnand (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Cror (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Crxor (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Crnor (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Creqv (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Crandc (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;_|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let bA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let bB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Crorc (bT,bA,bB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let bFA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 13)) in
- (Some ((`Mcrf (bF,bFA))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;_|], _, _)) as instr) ->
- let lEV = (vector_subrange instr (big_int_of_int 20) (big_int_of_int 26)) in (Some ((`Sc (lEV))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone|], _, _)) as instr) ->
- let lEV = (vector_subrange instr (big_int_of_int 20) (big_int_of_int 26)) in (Some ((`Scv (lEV))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lbz (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lbzx (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lbzu (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lbzux (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vone;Vzero;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lhz (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lhzx (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vone;Vzero;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lhzu (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lhzux (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vone;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lha (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lhax (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lhau (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lhaux (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lwz (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lwzx (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lwzu (rT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lwzux (rT,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Lwa (rT,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lwax (rT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lwaux (rT,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Ld (rT,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ldx (rT,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Ldu (rT,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ldux (rT,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stb (rS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stbx (rS,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stbu (rS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stbux (rS,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Sth (rS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Sthx (rS,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vone;Vone;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Sthu (rS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Sthux (rS,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stw (rS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stwx (rS,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vzero;Vone;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stwu (rS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stwux (rS,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Std (rS,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stdx (rS,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Stdu (rS,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stdux (rS,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dQ = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 27)) in
- let pT = (vector_subrange instr (big_int_of_int 28) (big_int_of_int 31)) in
- (Some ((`Lq (rTp,rA,dQ,pT))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero|], _, _)) as instr) ->
- let rSp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Stq (rSp,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lhbrx (rT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Sthbrx (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lwbrx (rT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stwbrx (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ldbrx (rT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stdbrx (rS,rA,rB))))
-| ((Vvector ([|Vone;Vzero;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lmw (rT,rA,d))))
-| ((Vvector ([|Vone;Vzero;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stmw (rS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let nB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lswi (rT,rA,nB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lswx (rT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let nB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stswi (rS,rA,nB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stswx (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vzero;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Addi (rT,rA,sI))))
-| ((Vvector ([|Vzero;Vzero;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Addis (rT,rA,sI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Add (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Subf (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Addic (rT,rA,sI))))
-| ((Vvector ([|Vzero;Vzero;Vone;Vone;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`AddicDot (rT,rA,sI))))
-| ((Vvector ([|Vzero;Vzero;Vone;Vzero;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Subfic (rT,rA,sI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Addc (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Subfc (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Adde (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Subfe (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Addme (rT,rA,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Subfme (rT,rA,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Addze (rT,rA,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Subfze (rT,rA,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Neg (rT,rA,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Mulli (rT,rA,sI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mullw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulhw (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulhwu (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divwu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divwe (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divweu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulld (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulhd (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulhdu (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divd (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divdu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divde (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Divdeu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vone;Vzero;Vone;Vone;_;_;_;_;l;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Cmpi (bF,l,rA,sI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;l;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Cmp (bF,l,rA,rB))))
-| ((Vvector ([|Vzero;Vzero;Vone;Vzero;Vone;Vzero;_;_;_;_;l;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let uI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Cmpli (bF,l,rA,uI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;l;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Cmpl (bF,l,rA,rB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let tO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Twi (tO,rA,sI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_|], _, _)) as instr) ->
- let tO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Tw (tO,rA,rB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let tO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Tdi (tO,rA,sI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_|], _, _)) as instr) ->
- let tO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Td (tO,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let bC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Isel (rT,rA,rB,bC))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let uI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Andi (rS,rA,uI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let uI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Andis (rS,rA,uI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vzero;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let uI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Ori (rS,rA,uI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vzero;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let uI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Oris (rS,rA,uI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let uI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Xori (rS,rA,uI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let uI = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Xoris (rS,rA,uI))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`And (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xor (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nand (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Or (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nor (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Eqv (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Andc (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Orc (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Extsb (rS,rA,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Extsh (rS,rA,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Cntlzw (rS,rA,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Cmpb (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Popcntb (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Popcntw (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Prtyd (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Prtyw (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Extsw (rS,rA,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Cntlzd (rS,rA,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Popcntd (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Bpermd (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vone;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sH = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let mB = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- let mE = (vector_subrange instr (big_int_of_int 26) (big_int_of_int 30)) in
- (Some ((`Rlwinm (rS,rA,sH,mB,mE,rc))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let mB = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- let mE = (vector_subrange instr (big_int_of_int 26) (big_int_of_int 30)) in
- (Some ((`Rlwnm (rS,rA,rB,mB,mE,rc))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sH = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let mB = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- let mE = (vector_subrange instr (big_int_of_int 26) (big_int_of_int 30)) in
- (Some ((`Rlwimi (rS,rA,sH,mB,mE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let mb = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 26)) in
- (Some
- ((`Rldicl
- (rS,rA,((vector_concat (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) (vector_subrange instr (big_int_of_int 30) (big_int_of_int 30))) :
- value),mb,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let me = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 26)) in
- (Some
- ((`Rldicr
- (rS,rA,((vector_concat (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) (vector_subrange instr (big_int_of_int 30) (big_int_of_int 30))) :
- value),me,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let mb = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 26)) in
- (Some
- ((`Rldic
- (rS,rA,((vector_concat (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) (vector_subrange instr (big_int_of_int 30) (big_int_of_int 30))) :
- value),mb,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let mb = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 26)) in
- (Some ((`Rldcl (rS,rA,rB,mb,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let me = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 26)) in
- (Some ((`Rldcr (rS,rA,rB,me,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let mb = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 26)) in
- (Some
- ((`Rldimi
- (rS,rA,((vector_concat (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) (vector_subrange instr (big_int_of_int 30) (big_int_of_int 30))) :
- value),mb,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Slw (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Srw (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sH = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Srawi (rS,rA,sH,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Sraw (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Sld (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Srd (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vone;_;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some
- ((`Sradi
- (rS,rA,((vector_concat (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) (vector_subrange instr (big_int_of_int 30) (big_int_of_int 30))) :
- value),rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Srad (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Cdtbcd (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Cbcdtd (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Addg6s (rT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let spr = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 20)) in
- (Some ((`Mtspr (rS,spr))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let spr = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 20)) in
- (Some ((`Mfspr (rT,spr))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;Vzero;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fXM = (vector_subrange instr (big_int_of_int 12) (big_int_of_int 19)) in
- (Some ((`Mtcrf (rS,fXM))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;Vzero;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in (Some ((`Mfcr (rT))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;Vone;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fXM = (vector_subrange instr (big_int_of_int 12) (big_int_of_int 19)) in
- (Some ((`Mtocrf (rS,fXM))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;Vone;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fXM = (vector_subrange instr (big_int_of_int 12) (big_int_of_int 19)) in
- (Some ((`Mfocrf (rT,fXM))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in (Some ((`Mcrxr (bF))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;_|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Mtdcrux (rS,rA))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;_|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Mfdcrux (rT,rA))))
-| ((Vvector ([|Vone;Vone;Vzero;Vzero;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lfs (fRT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lfsx (fRT,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vzero;Vzero;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lfsu (fRT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lfsux (fRT,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vzero;Vzero;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lfd (fRT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lfdx (fRT,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Lfdu (fRT,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lfdux (fRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lfiwax (fRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lfiwzx (fRT,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stfs (fRS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stfsx (fRS,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vzero;Vone;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stfsu (fRS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stfsux (fRS,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vzero;Vone;Vone;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stfd (fRS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stfdx (fRS,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vzero;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let d = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 31)) in
- (Some ((`Stfdu (fRS,rA,d))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stfdux (fRS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stfiwx (fRS,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Lfdp (fRTp,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lfdpx (fRTp,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero|], _, _)) as instr) ->
- let fRSp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dS = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 29)) in
- (Some ((`Stfdp (fRSp,rA,dS))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let fRSp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stfdpx (fRSp,rA,rB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fmr (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fneg (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fabs (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fnabs (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fcpsgn (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fadds (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fadd (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fsubs (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fsub (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fmuls (fRT,fRA,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fmul (fRT,fRA,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fdivs (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fdiv (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fsqrts (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fsqrt (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fres (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fre (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Frsqrtes (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Frsqrte (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ftdiv (bF,fRA,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ftsqrt (bF,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fmadds (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fmadd (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fmsubs (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fmsub (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fnmadds (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fnmadd (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fnmsubs (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fnmsub (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Frsp (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctid (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctidz (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctidu (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctiduz (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctiw (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctiwz (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctiwu (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fctiwuz (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fcfid (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fcfidu (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fcfids (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fcfidus (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Frin (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Frip (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Friz (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Frim (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fcmpu (bF,fRA,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Fcmpo (bF,fRA,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let fRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Fsel (fRT,fRA,fRB,fRC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- (Some ((`Mffs (fRT,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let bFA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 13)) in
- (Some ((`Mcrfs (bF,bFA))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;w;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let u = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 19)) in
- (Some ((`Mtfsfi (bF,w,u,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;l;_;_;_;_;_;_;_;_;w;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;rc|], _, _)) as instr) ->
- let fLM = (vector_subrange instr (big_int_of_int 7) (big_int_of_int 14)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mtfsf (l,fLM,w,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- (Some ((`Mtfsb0 (bT,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let bT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- (Some ((`Mtfsb1 (bT,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Daddq (fRTp,fRAp,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dadd (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dsubq (fRTp,fRAp,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dsub (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dmulq (fRTp,fRAp,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dmul (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ddivq (fRTp,fRAp,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ddiv (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcmpuq (bF,fRAp,fRBp))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcmpu (bF,fRA,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcmpoq (bF,fRAp,fRBp))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcmpo (bF,fRA,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dCM = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dtstdcq (bF,fRAp,dCM))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dCM = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dtstdc (bF,fRA,dCM))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dGM = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dtstdgq (bF,fRAp,dGM))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let dGM = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dtstdg (bF,fRA,dGM))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dtstexq (bF,fRAp,fRBp))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dtstex (bF,fRA,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dtstsfq (bF,fRA,fRBp))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dtstsf (bF,fRA,fRB))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let tE = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Dquaiq (fRTp,tE,fRBp,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let tE = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Dquai (fRT,tE,fRB,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Dquaq (fRTp,fRAp,fRBp,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Dqua (fRT,fRA,fRB,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Drrndq (fRTp,fRA,fRBp,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Drrnd (fRT,fRA,fRB,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;r;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Drintxq (fRTp,r,fRBp,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;r;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Drintx (fRT,r,fRB,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;r;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Drintnq (fRTp,r,fRBp,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;r;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let rMC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 22)) in
- (Some ((`Drintn (fRT,r,fRB,rMC,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dctdp (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dctqpq (fRTp,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Drsp (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Drdpq (fRTp,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcffix (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcffixq (fRTp,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dctfixq (fRT,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dctfix (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let sP = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 12)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ddedpdq (fRTp,sP,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let sP = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 12)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ddedpd (fRT,sP,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;s;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Denbcdq (fRTp,s,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;s;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Denbcd (fRT,s,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dxexq (fRT,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dxex (fRT,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRBp = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Diexq (fRTp,fRA,fRBp,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let fRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Diex (fRT,fRA,fRB,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sH = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dscliq (fRTp,fRAp,sH,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sH = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dscli (fRT,fRA,sH,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRTp = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRAp = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sH = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dscriq (fRTp,fRAp,sH,rc))))
-| ((Vvector ([|Vone;Vone;Vone;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;rc|], _, _)) as instr) ->
- let fRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let fRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let sH = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 21)) in
- (Some ((`Dscri (fRT,fRA,sH,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lvebx (vRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lvehx (vRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lvewx (vRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lvx (vRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lvxl (vRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stvebx (vRS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stvehx (vRS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stvewx (vRS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stvx (vRS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;_|], _, _)) as instr) ->
- let vRS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stvxl (vRS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lvsl (vRT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lvsr (vRT,rA,rB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkpx (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkshss (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkshus (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkswss (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkswus (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkuhum (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkuhus (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkuwum (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vpkuwus (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vupkhpx (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vupkhsb (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vupkhsh (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vupklpx (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vupklsb (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vupklsh (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmrghb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmrghh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmrghw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmrglb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmrglh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmrglw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 12) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vspltb (vRT,uIM,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 13) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsplth (vRT,uIM,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 14) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vspltw (vRT,uIM,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let sIM = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Vspltisb (vRT,sIM))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let sIM = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Vspltish (vRT,sIM))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let sIM = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- (Some ((`Vspltisw (vRT,sIM))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vone|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vperm (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vsel (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsl (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let sHB = (vector_subrange instr (big_int_of_int 22) (big_int_of_int 25)) in
- (Some ((`Vsldoi (vRT,vRA,vRB,sHB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vslo (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsr (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsro (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vaddcuw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vaddsbs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vaddshs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vaddsws (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vaddubm (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vadduhm (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vadduwm (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vaddubs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vadduhs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vadduws (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubcuw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubsbs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubshs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubsws (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsububm (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubuhm (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubuwm (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsububs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubuhs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubuws (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmulesb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmulesh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmuleub (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmuleuh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmulosb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmulosh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmuloub (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmulouh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmhaddshs (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmhraddshs (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmladduhm (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmsumubm (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vone|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmsummbm (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmsumshm (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vone|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmsumshs (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmsumuhm (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vone;Vone|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmsumuhs (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsumsws (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsum2sws (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsum4sbs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsum4shs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsum4ubs (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vavgsb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vavgsh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vavgsw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vavgub (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vavguh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vavguw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmaxsb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmaxsh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmaxsw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmaxub (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmaxuh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmaxuw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vminsb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vminsh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vminsw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vminub (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vminuh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vminuw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpequb (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpequh (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpequw (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgtsb (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgtsh (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgtsw (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgtub (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgtuh (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgtuw (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vand (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vandc (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vnor (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vor (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vxor (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrlb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrlh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrlw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vslb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vslh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vslw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsrb (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsrh (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsrw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsrab (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsrah (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsraw (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vaddfp (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vsubfp (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vmaddfp (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;Vone|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let vRC = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Vnmsubfp (vRT,vRA,vRB,vRC))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vmaxfp (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vminfp (vRT,vRA,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vctsxs (vRT,uIM,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vctuxs (vRT,uIM,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcfsx (vRT,uIM,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcfux (vRT,uIM,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrfim (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrfin (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrfip (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrfiz (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpbfp (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpeqfp (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgefp (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vcmpgtfp (vRT,vRA,vRB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vexptefp (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vlogefp (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrefp (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Vrsqrtefp (vRT,vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mtvscr (vRB))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero|], _, _)) as instr) ->
- let vRT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- (Some ((`Mfvscr (vRT))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lxsdx (t,rA,rB,tX))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lxvd2x (t,rA,rB,tX))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lxvdsx (t,rA,rB,tX))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lxvw4x (t,rA,rB,tX))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;sX|], _, _)) as instr) ->
- let s = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stxsdx (s,rA,rB,sX))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;sX|], _, _)) as instr) ->
- let s = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stxvd2x (s,rA,rB,sX))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;sX|], _, _)) as instr) ->
- let s = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stxvw4x (s,rA,rB,sX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsabsdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsadddp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;aX;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscmpodp (bF,a,b,aX,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;aX;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscmpudp (bF,a,b,aX,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscpsgndp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvdpsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvdpsxds (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvdpsxws (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvdpuxds (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvdpuxws (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvspdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvsxddp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xscvuxddp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsdivdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsmaddmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsmaddadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsmaxdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsmindp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsmsubmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsmsubadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsmuldp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsnabsdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsnegdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsnmaddmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsnmaddadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsnmsubmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsnmsubadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsrdpi (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsrdpic (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsrdpim (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsrdpip (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsrdpiz (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsredp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xsrsqrtedp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xssqrtdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xssubdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;aX;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xstdivdp (bF,a,b,aX,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xstsqrtdp (bF,b,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvabsdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvabssp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvadddp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvaddsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcmpeqdp (t,a,b,rc,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vzero;Vzero;Vzero;Vzero;Vone;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcmpeqsp (t,a,b,rc,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcmpgedp (t,a,b,rc,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcmpgesp (t,a,b,rc,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcmpgtdp (t,a,b,rc,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;rc;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcmpgtsp (t,a,b,rc,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcpsgndp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcpsgnsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvdpsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvdpsxds (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvdpsxws (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvdpuxds (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvdpuxws (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvspdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvspsxds (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvspsxws (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvspuxds (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvspuxws (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvsxddp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvsxdsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvsxwdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvsxwsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvuxddp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvuxdsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvuxwdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvcvuxwsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvdivdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvdivsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmaddmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmaddadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmaddmsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmaddasp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmaxdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmaxsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmindp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvminsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmsubmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmsubadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmsubmsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmsubasp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmuldp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvmulsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnabsdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnabssp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnegdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnegsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmaddmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmaddadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmaddmsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmaddasp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmsubmdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmsubadp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmsubmsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvnmsubasp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrdpi (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrdpic (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrdpim (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrdpip (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrdpiz (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvredp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvresp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrspi (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrspic (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrspim (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrspip (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrspiz (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrsqrtedp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvrsqrtesp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvsqrtdp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvsqrtsp (t,b,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvsubdp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvsubsp (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vone;Vone;Vzero;Vone;aX;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvtdivdp (bF,a,b,aX,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;Vone;aX;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvtdivsp (bF,a,b,aX,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvtsqrtdp (bF,b,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;bX;_|], _, _)) as instr) ->
- let bF = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 8)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xvtsqrtsp (bF,b,bX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxland (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxlandc (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxlnor (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxlor (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxlxor (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxmrghw (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxmrglw (t,a,b,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;_;_;Vzero;Vone;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let dM = (vector_subrange instr (big_int_of_int 22) (big_int_of_int 23)) in
- (Some ((`Xxpermdi (t,a,b,dM,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;cX;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let c = (vector_subrange instr (big_int_of_int 21) (big_int_of_int 25)) in
- (Some ((`Xxsel (t,a,b,c,cX,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;_;_;Vzero;Vzero;Vzero;Vone;Vzero;aX;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let a = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- let sHW = (vector_subrange instr (big_int_of_int 22) (big_int_of_int 23)) in
- (Some ((`Xxsldwi (t,a,b,sHW,aX,bX,tX))))
-| ((Vvector ([|Vone;Vone;Vone;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vzero;bX;tX|], _, _)) as instr) ->
- let t = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let uIM = (vector_subrange instr (big_int_of_int 14) (big_int_of_int 15)) in
- let b = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Xxspltw (t,uIM,b,bX,tX))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dlmzb (rS,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Macchw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Macchws (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Macchwu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Macchwsu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Machhw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Machhws (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Machhwu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Machhwsu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Maclhw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Maclhws (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Maclhwu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Maclhwsu (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulchw (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulchwu (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulhhw (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mulhhwu (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mullhw (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vzero;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Mullhwu (rT,rA,rB,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nmacchw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nmacchws (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nmachhw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nmachhws (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nmaclhw (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vzero;Vzero;Vone;Vzero;Vzero;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;oE;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vone;Vzero;rc|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Nmaclhws (rT,rA,rB,oE,rc))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Icbi (rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let cT = (vector_subrange instr (big_int_of_int 7) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Icbt (cT,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcba (rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vone;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let tH = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcbt (tH,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let tH = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcbtst (tH,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcbz (rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcbst (rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let l = (vector_subrange instr (big_int_of_int 9) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Dcbf (l,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vzero;Vzero;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- (Some ((`Isync ())))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vzero;eH|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lbarx (rT,rA,rB,eH))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vzero;Vone;Vzero;Vzero;eH|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lharx (rT,rA,rB,eH))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vzero;eH|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Lwarx (rT,rA,rB,eH))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone;Vone;Vzero;Vone|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stbcx (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Sthcx (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stwcx (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vzero;eH|], _, _)) as instr) ->
- let rT = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Ldarx (rT,rA,rB,eH))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vone;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;Vone|], _, _)) as instr) ->
- let rS = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in
- let rA = (vector_subrange instr (big_int_of_int 11) (big_int_of_int 15)) in
- let rB = (vector_subrange instr (big_int_of_int 16) (big_int_of_int 20)) in
- (Some ((`Stdcx (rS,rA,rB))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vzero;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let l = (vector_subrange instr (big_int_of_int 9) (big_int_of_int 10)) in (Some ((`Sync (l))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- (Some ((`Eieio ())))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vone;Vone;Vzero;Vone;Vzero;Vone;Vzero;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let mO = (vector_subrange instr (big_int_of_int 6) (big_int_of_int 10)) in (Some ((`Mbar (mO))))
-| ((Vvector ([|Vzero;Vone;Vone;Vone;Vone;Vone;_;_;_;_;_;_;_;_;_;_;_;_;_;_;_;Vzero;Vzero;Vzero;Vzero;Vone;Vone;Vone;Vone;Vone;Vzero;_|], _, _)) as instr) ->
- let wC = (vector_subrange instr (big_int_of_int 9) (big_int_of_int 10)) in (Some ((`Wait (wC))))
-| _ -> (None ())
-
-let execute = function
-| `B (lI, aA, lK) ->
- begin
- (if to_bool(aA)
- then (set_register nIA ((EXTS
- ((big_int_of_int 64),(vector_concat lI (Vvector ([|Vzero;Vzero|], 0, true))))) :
- value))
- else (set_register nIA ((add_vec (cIA,(EXTS
- ((big_int_of_int 64),(vector_concat lI (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value)));
- (if to_bool(lK)
- then (set_register lR ((add_vec_range (cIA,(big_int_of_int 4))) : value))
- else ())
- end
-| `Bc (bO, bI, bD, aA, lK) ->
- begin
- let m = ref (big_int_of_int 0) in begin
- (if to_bool((bit_vector_access mode64bit (big_int_of_int 0)))
- then m := (big_int_of_int 0)
- else m := (big_int_of_int 32));
- let ctr_temp = ref cTR in begin
- (if to_bool((bitwise_not_bit ((bit_vector_access bO (big_int_of_int 2)))))
- then begin
- ctr_temp := ((minus_vec_range (!ctr_temp,(big_int_of_int 1))) : value);
- (set_register cTR !ctr_temp)
- end
- else ());
- let ctr_ok = ref (bitwise_or_bit ((bit_vector_access bO (big_int_of_int 2)),(bitwise_xor_bit ((bitwise_not_bit
- ((eq_vec_range ((vector_subrange !ctr_temp !m (big_int_of_int 63)),(big_int_of_int 0))))),(bit_vector_access bO (big_int_of_int 3)))))) in begin
- let cond_ok = ref (bitwise_or_bit ((bit_vector_access bO (big_int_of_int 0)),(bitwise_xor_bit ((bit_vector_access cR (add_vec_range_range (bI,(big_int_of_int 32)))),(bitwise_not_bit
- ((bit_vector_access bO (big_int_of_int 1)))))))) in begin
- (if to_bool((bitwise_and_bit (!ctr_ok,!cond_ok)))
- then (if to_bool(aA)
- then (set_register nIA ((EXTS
- ((big_int_of_int 64),(vector_concat bD (Vvector ([|Vzero;Vzero|], 0, true))))) :
- value))
- else (set_register nIA ((add_vec (cIA,(EXTS
- ((big_int_of_int 64),(vector_concat bD (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value)))
- else ());
- (if to_bool(lK)
- then (set_register lR ((add_vec_range (cIA,(big_int_of_int 4))) : value))
- else ())
- end
- end
- end
- end
- end
-| `Bclr (bO, bI, bH, lK) ->
- begin
- let m = ref (big_int_of_int 0) in begin
- (if to_bool((bit_vector_access mode64bit (big_int_of_int 0)))
- then m := (big_int_of_int 0)
- else m := (big_int_of_int 32));
- let ctr_temp = ref cTR in begin
- (if to_bool((bitwise_not_bit ((bit_vector_access bO (big_int_of_int 2)))))
- then begin
- ctr_temp := ((minus_vec_range (!ctr_temp,(big_int_of_int 1))) : value);
- (set_register cTR !ctr_temp)
- end
- else ());
- let ctr_ok = ref (bitwise_or_bit ((bit_vector_access bO (big_int_of_int 2)),(bitwise_xor_bit ((bitwise_not_bit
- ((eq_vec_range ((vector_subrange !ctr_temp !m (big_int_of_int 63)),(big_int_of_int 0))))),(bit_vector_access bO (big_int_of_int 3)))))) in begin
- let cond_ok = ref (bitwise_or_bit ((bit_vector_access bO (big_int_of_int 0)),(bitwise_xor_bit ((bit_vector_access cR (add_vec_range_range (bI,(big_int_of_int 32)))),(bitwise_not_bit
- ((bit_vector_access bO (big_int_of_int 1)))))))) in begin
- (if to_bool((bitwise_and_bit (!ctr_ok,!cond_ok)))
- then (set_register nIA ((vector_concat (vector_subrange lR (big_int_of_int 0) (big_int_of_int 61)) (Vvector ([|Vzero;Vzero|], 0, true))) :
- value))
- else ());
- (if to_bool(lK)
- then (set_register lR ((add_vec_range (cIA,(big_int_of_int 4))) : value))
- else ())
- end
- end
- end
- end
- end
-| `Bcctr (bO, bI, bH, lK) ->
- begin
- let cond_ok = ref (bitwise_or_bit ((bit_vector_access bO (big_int_of_int 0)),(bitwise_xor_bit ((bit_vector_access cR (add_vec_range_range (bI,(big_int_of_int 32)))),(bitwise_not_bit
- ((bit_vector_access bO (big_int_of_int 1)))))))) in begin
- (if to_bool(!cond_ok)
- then (set_register nIA ((vector_concat (vector_subrange cTR (big_int_of_int 0) (big_int_of_int 61)) (Vvector ([|Vzero;Vzero|], 0, true))) :
- value))
- else ());
- (if to_bool(lK)
- then (set_register lR ((add_vec_range (cIA,(big_int_of_int 4))) : value))
- else ())
- end
- end
-| `Crand (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_and_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))
-| `Crnand (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_not_bit
- ((bitwise_and_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))))
-| `Cror (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_or_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))
-| `Crxor (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_xor_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))
-| `Crnor (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_not_bit
- ((bitwise_or_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))))
-| `Creqv (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_xor_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bitwise_not_bit
- ((bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))))
-| `Crandc (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_and_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bitwise_not_bit
- ((bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))))
-| `Crorc (bT, bA, bB) ->
- (get_barray cR).((add_vec_range_range (bT,(big_int_of_int 32)))) <-
- (bitwise_or_bit ((bit_vector_access cR (add_vec_range_range (bA,(big_int_of_int 32)))),(bitwise_not_bit
- ((bit_vector_access cR (add_vec_range_range (bB,(big_int_of_int 32))))))))
-| `Mcrf (bF, bFA) ->
- (set_vector_subrange_bit cR (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 32))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 35))) (vector_subrange cR (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bFA)),(big_int_of_int 32))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bFA)),(big_int_of_int 35)))))
-| `Sc (lEV) -> ()
-| `Scv (lEV) -> ()
-| `Lbz (rT, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 1)))) :
- value)
- end
- end
- end
-| `Lbzx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 1)))) :
- value)
- end
- end
- end
-| `Lbzu (rT, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 1)))) :
- value)
- end
- end
-| `Lbzux (rT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 1)))) :
- value)
- end
- end
-| `Lhz (rT, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 2)))) :
- value)
- end
- end
- end
-| `Lhzx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 2)))) :
- value)
- end
- end
- end
-| `Lhzu (rT, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 2)))) :
- value)
- end
- end
-| `Lhzux (rT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 2)))) :
- value)
- end
- end
-| `Lha (rT, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 2))))) : value)
- end
- end
- end
-| `Lhax (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 2))))) : value)
- end
- end
- end
-| `Lhau (rT, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 2))))) : value)
- end
- end
-| `Lhaux (rT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 2))))) : value)
- end
- end
-| `Lwz (rT, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 4)))) :
- value)
- end
- end
- end
-| `Lwzx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 4)))) :
- value)
- end
- end
- end
-| `Lwzu (rT, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 4)))) :
- value)
- end
- end
-| `Lwzux (rT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 4)))) :
- value)
- end
- end
-| `Lwa (rT, rA, dS) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- (get_varray gPR).((unsigned (rT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 4))))) : value)
- end
- end
- end
-| `Lwax (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 4))))) : value)
- end
- end
- end
-| `Lwaux (rT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 4))))) : value)
- end
- end
-| `Ld (rT, rA, dS) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- (get_varray gPR).((unsigned (rT))) <- (mEMr (!eA,(big_int_of_int 8)))
- end
- end
- end
-| `Ldx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <- (mEMr (!eA,(big_int_of_int 8)))
- end
- end
- end
-| `Ldu (rT, rA, dS) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <- (mEMr (!eA,(big_int_of_int 8)))
- end
- end
-| `Ldux (rT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- (get_varray gPR).((unsigned (rT))) <- (mEMr (!eA,(big_int_of_int 8)))
- end
- end
-| `Stb (rS, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- mEMw(!eA,(big_int_of_int 1),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 56) (big_int_of_int 63)) :
- value))
- end
- end
- end
-| `Stbx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 1),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 56) (big_int_of_int 63)) :
- value))
- end
- end
- end
-| `Stbu (rS, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 1),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 56) (big_int_of_int 63)) :
- value))
- end
- end
-| `Stbux (rS, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 1),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 56) (big_int_of_int 63)) :
- value))
- end
- end
-| `Sth (rS, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- mEMw(!eA,(big_int_of_int 2),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 48) (big_int_of_int 63)) :
- value))
- end
- end
- end
-| `Sthx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 2),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 48) (big_int_of_int 63)) :
- value))
- end
- end
- end
-| `Sthu (rS, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 2),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 48) (big_int_of_int 63)) :
- value))
- end
- end
-| `Sthux (rS, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 2),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 48) (big_int_of_int 63)) :
- value))
- end
- end
-| `Stw (rS, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- mEMw(!eA,(big_int_of_int 4),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) :
- value))
- end
- end
- end
-| `Stwx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 4),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) :
- value))
- end
- end
- end
-| `Stwu (rS, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 4),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) :
- value))
- end
- end
-| `Stwux (rS, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 4),((vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) :
- value))
- end
- end
-| `Std (rS, rA, dS) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- mEMw(!eA,(big_int_of_int 8),(vector_access gPR (unsigned (rS))))
- end
- end
- end
-| `Stdx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 8),(vector_access gPR (unsigned (rS))))
- end
- end
- end
-| `Stdu (rS, rA, dS) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 8),(vector_access gPR (unsigned (rS))))
- end
- end
-| `Stdux (rS, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rA))) <- !eA;
- mEMw(!eA,(big_int_of_int 8),(vector_access gPR (unsigned (rS))))
- end
- end
-| `Lq (rTp, rA, dQ, pT) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dQ (Vvector ([|Vzero;Vzero;Vzero;Vzero|], 0, true))))))) :
- value);
- let mem = ref (mEMr (!eA,(big_int_of_int 16))) in begin
- (if to_bool((bit_vector_access bigendianmode (big_int_of_int 0)))
- then begin
- (get_varray gPR).((unsigned (rTp))) <-
- (vector_subrange !mem (big_int_of_int 0) (big_int_of_int 63));
- (get_varray gPR).((add_vec_range_range (rTp,(big_int_of_int 1)))) <-
- ((vector_subrange !mem (big_int_of_int 64) (big_int_of_int 127)) : value)
- end
- else begin
- let bytereverse = ref (byte_reverse ((multiply ((big_int_of_int 8),_'nv4602)),!mem)) in begin
- (get_varray gPR).((unsigned (rTp))) <-
- (vector_subrange !bytereverse (big_int_of_int 0) (big_int_of_int 63));
- (get_varray gPR).((add_vec_range_range (rTp,(big_int_of_int 1)))) <-
- ((vector_subrange !bytereverse (big_int_of_int 64) (big_int_of_int 127)) : value)
- end
- end)
- end
- end
- end
- end
-| `Stq (rSp, rA, dS) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- begin
- eA := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)));
- b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)));
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- let mem = ref (to_vec_inc ((big_int_of_int 128),(big_int_of_int 0))) in begin
- (set_vector_subrange_bit !mem (big_int_of_int 0) (big_int_of_int 63) (vector_access gPR (unsigned
- (rSp))));
- (set_vector_subrange_bit !mem (big_int_of_int 64) (big_int_of_int 127) ((vector_access gPR (add_vec_range_range (rSp,(big_int_of_int 1)))) :
- value));
- (if to_bool((bitwise_not_range_bit (bigendianmode)))
- then mem := (byte_reverse ((multiply ((big_int_of_int 8),_'nv4740)),!mem))
- else ());
- mEMw(!eA,(big_int_of_int 16),!mem)
- end
- end;
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- mEMw(!eA,(big_int_of_int 8),rSp)
- end
- end
- end
-| `Lhbrx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- let load_data = ref (mEMr (!eA,(big_int_of_int 2))) in begin
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_concat (vector_subrange !load_data (big_int_of_int 8) (big_int_of_int 15)) (vector_subrange !load_data (big_int_of_int 0) (big_int_of_int 7)))) :
- value)
- end
- end
- end
- end
-| `Sthbrx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 2),((vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 56) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 48) (big_int_of_int 55))) :
- value))
- end
- end
- end
-| `Lwbrx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- let load_data = ref (mEMr (!eA,(big_int_of_int 4))) in begin
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_concat (vector_subrange !load_data (big_int_of_int 24) (big_int_of_int 31)) (vector_concat (vector_subrange !load_data (big_int_of_int 16) (big_int_of_int 23)) (vector_concat (vector_subrange !load_data (big_int_of_int 8) (big_int_of_int 15)) (vector_subrange !load_data (big_int_of_int 0) (big_int_of_int 7)))))) :
- value)
- end
- end
- end
- end
-| `Stwbrx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 4),((vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 56) (big_int_of_int 63)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 48) (big_int_of_int 55)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 40) (big_int_of_int 47)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 39))))) :
- value))
- end
- end
- end
-| `Ldbrx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- let load_data = ref (mEMr (!eA,(big_int_of_int 8))) in begin
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (vector_subrange !load_data (big_int_of_int 56) (big_int_of_int 63)) (vector_concat (vector_subrange !load_data (big_int_of_int 48) (big_int_of_int 55)) (vector_concat (vector_subrange !load_data (big_int_of_int 40) (big_int_of_int 47)) (vector_concat (vector_subrange !load_data (big_int_of_int 32) (big_int_of_int 39)) (vector_concat (vector_subrange !load_data (big_int_of_int 24) (big_int_of_int 31)) (vector_concat (vector_subrange !load_data (big_int_of_int 16) (big_int_of_int 23)) (vector_concat (vector_subrange !load_data (big_int_of_int 8) (big_int_of_int 15)) (vector_subrange !load_data (big_int_of_int 0) (big_int_of_int 7))))))))) :
- value)
- end
- end
- end
- end
-| `Stdbrx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 8),((vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 56) (big_int_of_int 63)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 48) (big_int_of_int 55)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 40) (big_int_of_int 47)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 39)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 24) (big_int_of_int 31)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 16) (big_int_of_int 23)) (vector_concat (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 8) (big_int_of_int 15)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 0) (big_int_of_int 7))))))))) :
- value))
- end
- end
- end
-| `Lmw (rT, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- let size = ref (multiply ((minus_range_vec_range ((big_int_of_int 32),rT)),(big_int_of_int 4))) in begin
- let buffer = ref (mEMr (!eA,!size)) in begin
- let i = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 1)) in
- let rec foreach r = if (r <= __stop) then (begin
- (get_varray gPR).(r) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_subrange !buffer !i (add (!i,(big_int_of_int 31))))) :
- value);
- i := (add (!i,(big_int_of_int 32)))
- end ;foreach(r + __by)) in foreach (unsigned (rT)))
- end
- end
- end
- end
- end
- end
-| `Stmw (rS, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- let size = ref (multiply ((minus_range_vec_range ((big_int_of_int 32),rS)),(big_int_of_int 4))) in begin
- let buffer = ref (make_indexed_bitv [(0, Vzero);(993, Vzero)] (Some Vzero) 0 994 true) in begin
- let i = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 1)) in
- let rec foreach r = if (r <= __stop) then (begin
- (set_vector_subrange_bit !buffer !i (add (!i,(big_int_of_int 31))) ((vector_subrange (vector_access gPR r) (big_int_of_int 32) (big_int_of_int 63)) :
- value));
- i := (add (!i,(big_int_of_int 32)))
- end ;foreach(r + __by)) in foreach (unsigned (rS)));
- mEMw(!eA,!size,(vector_subrange !buffer (big_int_of_int 0) (multiply (!size,(big_int_of_int 8)))))
- end
- end
- end
- end
- end
- end
-| `Lswi (rT, rA, nB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then eA := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else eA := (vector_access gPR (unsigned (rA))));
- let r = ref (big_int_of_int 0) in begin
- r := (minus_vec_range_range (rT,(big_int_of_int 1)));
- let size = ref (if to_bool((eq_vec_range (nB,(big_int_of_int 0))))
- then (big_int_of_int 32)
- else (unsigned (nB))) in begin
- let membuffer = ref (mEMr (!eA,!size)) in begin
- let j = ref (big_int_of_int 0) in begin
- let i = ref (big_int_of_int 32) in begin
- (let (__stop,__by) = ((big_int_of_int 1) , (big_int_of_int 1)) in
- let rec foreach n = if (n >= __stop) then (begin
- (if to_bool((eq (!i,(big_int_of_int 32))))
- then begin
- r := (modulo ((add (!r,(big_int_of_int 1))),(big_int_of_int 32)));
- (get_varray gPR).(!r) <- (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- end
- else ());
- (set_vector_subrange_bit (get_varray gPR).(!r) !i (add (!i,(big_int_of_int 7))) ((vector_subrange !membuffer !j (add (!j,(big_int_of_int 7)))) :
- value));
- j := (add (!j,(big_int_of_int 8)));
- i := (add (!i,(big_int_of_int 8)));
- (if to_bool((eq (!i,(big_int_of_int 64))))
- then i := (big_int_of_int 32)
- else ());
- eA := ((add_vec_range (!eA,(big_int_of_int 1))) : value)
- end ;foreach(n - __by)) in foreach (if to_bool((eq_vec_range (nB,(big_int_of_int 0))))
- then (big_int_of_int 32)
- else (unsigned (nB))))
- end
- end
- end
- end
- end
- end
- end
-| `Lswx (rT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- let r = ref (big_int_of_int 0) in begin
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- r := (minus_vec_range_range (rT,(big_int_of_int 1)));
- let i = ref (big_int_of_int 32) in begin
- let n_top = ref (unsigned
- ((vector_subrange xER (big_int_of_int 57) (big_int_of_int 63)))) in begin
- (recalculate_dependency ());
- (if to_bool((eq (!n_top,(big_int_of_int 0))))
- then (get_varray gPR).((unsigned (rT))) <- (to_vec_inc_undef ((big_int_of_int 64)))
- else begin
- let membuffer = ref (mEMr (!eA,!n_top)) in begin
- let j = ref (big_int_of_int 0) in begin
- let n_r = ref (quot (!n_top,(big_int_of_int 4))) in begin
- let n_mod = ref (modulo (!n_top,(big_int_of_int 4))) in begin
- n_r :=
- (if to_bool((eq (!n_mod,(big_int_of_int 0))))
- then !n_r
- else (add (!n_r,(big_int_of_int 1))));
- (let (__stop,__by) = ((big_int_of_int 1) , (big_int_of_int 1)) in
- let rec foreach n = if (n >= __stop) then (begin
- r := (modulo ((add (!r,(big_int_of_int 1))),(big_int_of_int 32)));
- let temp = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq (n,(big_int_of_int 1))))
- then ( match !n_mod with
- | 0 ->
- (set_vector_subrange_bit !temp (big_int_of_int 32) (big_int_of_int 63) ((vector_subrange !membuffer !j (add (!j,(big_int_of_int 31)))) :
- value))
- | 1 ->
- (set_vector_subrange_bit !temp (big_int_of_int 32) (big_int_of_int 39) ((vector_subrange !membuffer !j (add (!j,(big_int_of_int 7)))) :
- value))
- | 2 ->
- (set_vector_subrange_bit !temp (big_int_of_int 32) (big_int_of_int 47) ((vector_subrange !membuffer !j (add (!j,(big_int_of_int 15)))) :
- value))
- | 3 ->
- (set_vector_subrange_bit !temp (big_int_of_int 32) (big_int_of_int 55) ((vector_subrange !membuffer !j (add (!j,(big_int_of_int 23)))) :
- value))
- )
- else (set_vector_subrange_bit !temp (big_int_of_int 32) (big_int_of_int 63) ((vector_subrange !membuffer !j (add (!j,(big_int_of_int 31)))) :
- value)));
- j := (add (!j,(big_int_of_int 32)));
- (get_varray gPR).(!r) <- !temp
- end
- end ;foreach(n - __by)) in foreach !n_r)
- end
- end
- end
- end
- end)
- end
- end
- end
- end
- end
- end
-| `Stswi (rS, rA, nB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then eA := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else eA := (vector_access gPR (unsigned (rA))));
- let r = ref (big_int_of_int 0) in begin
- r := (minus_vec_range_range (rS,(big_int_of_int 1)));
- let size = ref (if to_bool((eq_vec_range (nB,(big_int_of_int 0))))
- then (big_int_of_int 32)
- else (unsigned (nB))) in begin
- let membuffer = ref (make_indexed_bitv [(0, Vzero);(255, Vzero)] (Some Vzero) 0 256 true) in begin
- let j = ref (big_int_of_int 0) in begin
- let i = ref (big_int_of_int 32) in begin
- (let (__stop,__by) = ((big_int_of_int 1) , (big_int_of_int 1)) in
- let rec foreach n = if (n >= __stop) then (begin
- (if to_bool((eq (!i,(big_int_of_int 32))))
- then r := (modulo ((add (!r,(big_int_of_int 1))),(big_int_of_int 32)))
- else ());
- (set_vector_subrange_bit !membuffer !j (add (!j,(big_int_of_int 7))) ((vector_subrange (vector_access gPR !r) !i (add (!i,(big_int_of_int 7)))) :
- value));
- j := (add (!j,(big_int_of_int 8)));
- i := (add (!i,(big_int_of_int 8)));
- (if to_bool((eq (!i,(big_int_of_int 64))))
- then i := (big_int_of_int 32)
- else ())
- end ;foreach(n - __by)) in foreach (if to_bool((eq_vec_range (nB,(big_int_of_int 0))))
- then (big_int_of_int 32)
- else (unsigned (nB))));
- mEMw(!eA,!size,(vector_subrange !membuffer (big_int_of_int 0) (multiply (!size,(big_int_of_int 8)))))
- end
- end
- end
- end
- end
- end
- end
-| `Stswx (rS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- let r = ref (big_int_of_int 0) in begin
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- r := (minus_vec_range_range (rS,(big_int_of_int 1)));
- let i = ref (big_int_of_int 32) in begin
- let n_top = ref (unsigned
- ((vector_subrange xER (big_int_of_int 57) (big_int_of_int 63)))) in begin
- (recalculate_dependency ());
- let membuffer = ref (make_indexed_bitv [(0, Vzero);(511, Vzero)] (Some Vzero) 0 512 true) in begin
- let j = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 1) , (big_int_of_int 1)) in
- let rec foreach n = if (n >= __stop) then (begin
- (if to_bool((eq (!i,(big_int_of_int 32))))
- then r := (modulo ((add (!r,(big_int_of_int 1))),(big_int_of_int 32)))
- else ());
- (set_vector_subrange_bit !membuffer !j (add (!j,(big_int_of_int 7))) ((vector_subrange (vector_access gPR !r) !i (add (!i,(big_int_of_int 7)))) :
- value));
- i := (add (!i,(big_int_of_int 8)));
- j := (add (!j,(big_int_of_int 8)));
- (if to_bool((eq (!i,(big_int_of_int 64))))
- then i := (big_int_of_int 32)
- else ())
- end ;foreach(n - __by)) in foreach !n_top);
- (if to_bool((bitwise_not_bit ((eq (!n_top,(big_int_of_int 0))))))
- then mEMw(!eA,!n_top,(vector_subrange !membuffer (big_int_of_int 0) (multiply (!n_top,(big_int_of_int 8)))))
- else ())
- end
- end
- end
- end
- end
- end
- end
- end
-| `Addi (rT, rA, sI) ->
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then (get_varray gPR).((unsigned (rT))) <- ((EXTS ((big_int_of_int 64),sI)) : value)
- else (get_varray gPR).((unsigned (rT))) <-
- ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),sI)))) : value))
-| `Addis (rT, rA, sI) ->
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then (get_varray gPR).((unsigned (rT))) <-
- ((EXTS
- ((big_int_of_int 64),(vector_concat sI (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))))) :
- value)
- else (get_varray gPR).((unsigned (rT))) <-
- ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS
- ((big_int_of_int 64),(vector_concat sI (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))))))) :
- value))
-| `Add (rT, rA, rB, oE, rc) ->
- let (temp, overflow, _) =
- ( match (add_overflow_vec_signed ((read_register (vector_access gPR (unsigned (rA)))),(read_register (vector_access gPR (unsigned
- (rB)))))) with
- | (_0v, _1v, _2v) -> (_0v,_1v,_2v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (temp : value);
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,overflow)))
- then xer_so := overflow
- else ());
- (set_overflow_cr0 ((temp : value),!xer_so))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (overflow))
- else ())
- end
-| `Subf (rT, rA, rB, oE, rc) ->
- let (t1, o1, _) =
- ( match (add_overflow_vec_signed ((bitwise_not
- ((read_register (vector_access gPR (unsigned (rA)))))),(read_register (vector_access gPR (unsigned
- (rB)))))) with
- | (_3v, _4v, _5v) -> (_3v,_4v,_5v)
- ) in
- let (t2, o2, _) =
- ( match (add_overflow_vec_bit_signed (t1,Vone)) with | (_6v, _7v, _8v) -> (_6v,_7v,_8v) ) in
- begin
- let temp = ref (t2 : value) in begin
- let overflow = ref (bitwise_or_bit (o1,o2)) in begin
- (get_varray gPR).((unsigned (rT))) <- !temp;
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (set_overflow_cr0 (!temp,!xer_so))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
-| `Addic (rT, rA, sI) ->
- let (temp, _, carry) =
- ( match (add_overflow_vec_signed ((read_register (vector_access gPR (unsigned (rA)))),(EXTS
- ((big_int_of_int 64),sI)))) with
- | (_9v, _10v, _11v) -> (_9v,_10v,_11v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (temp : value);
- (set_register_field_bit xER "CA" carry)
- end
-| `AddicDot (rT, rA, sI) ->
- let (temp, overflow, carry) =
- ( match (add_overflow_vec_signed ((read_register (vector_access gPR (unsigned (rA)))),(EXTS
- ((big_int_of_int 64),sI)))) with
- | (_12v, _13v, _14v) -> (_12v,_13v,_14v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (temp : value);
- (set_register_field_bit xER "CA" carry);
- (set_overflow_cr0
- ((temp : value),(bitwise_or_bit (overflow,(get_register_field_bit xER "SO")))))
- end
-| `Subfic (rT, rA, sI) ->
- let (t1, o1, c1) =
- ( match (add_overflow_vec_signed ((bitwise_not
- ((read_register (vector_access gPR (unsigned (rA)))))),(EXTS ((big_int_of_int 64),sI)))) with
- | (_15v, _16v, _17v) -> (_15v,_16v,_17v)
- ) in
- let (t2, o2, c2) =
- ( match (add_overflow_vec_bit_signed (t1,Vone)) with
- | (_18v, _19v, _20v) -> (_18v,_19v,_20v)
- ) in
- begin
- let temp = ref (t2 : value) in begin
- (get_varray gPR).((unsigned (rT))) <- !temp;
- (set_register_field_bit xER "CA" (bitwise_or_bit (c1,c2)))
- end
- end
-| `Addc (rT, rA, rB, oE, rc) ->
- let (temp, overflow, carry) =
- ( match (add_overflow_vec_signed ((read_register (vector_access gPR (unsigned (rA)))),(read_register (vector_access gPR (unsigned
- (rB)))))) with
- | (_21v, _22v, _23v) -> (_21v,_22v,_23v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (temp : value);
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,overflow)))
- then xer_so := overflow
- else ());
- (set_overflow_cr0 ((temp : value),!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" carry);
- (if to_bool(oE)
- then (set_SO_OV (overflow))
- else ())
- end
-| `Subfc (rT, rA, rB, oE, rc) ->
- let (t1, o1, c1) =
- ( match (add_overflow_vec_signed ((bitwise_not
- ((read_register (vector_access gPR (unsigned (rA)))))),(read_register (vector_access gPR (unsigned
- (rB)))))) with
- | (_24v, _25v, _26v) -> (_24v,_25v,_26v)
- ) in
- let (t2, o2, c2) =
- ( match (add_overflow_vec_bit_signed (t1,Vone)) with
- | (_27v, _28v, _29v) -> (_27v,_28v,_29v)
- ) in
- begin
- let temp = ref (t2 : value) in begin
- let overflow = ref (bitwise_or_bit (o1,o2)) in begin
- let carry = ref (bitwise_or_bit (c1,c2)) in begin
- (get_varray gPR).((unsigned (rT))) <- !temp;
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (set_overflow_cr0 (!temp,!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" !carry);
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
-| `Adde (rT, rA, rB, oE, rc) ->
- let (t1, o1, c1) =
- ( match (add_overflow_vec_signed ((read_register (vector_access gPR (unsigned (rA)))),(read_register (vector_access gPR (unsigned
- (rB)))))) with
- | (_30v, _31v, _32v) -> (_30v,_31v,_32v)
- ) in
- let (t2, o2, c2) =
- ( match (add_overflow_vec_bit_signed (t1,(get_register_field_bit xER "CA"))) with
- | (_33v, _34v, _35v) -> (_33v,_34v,_35v)
- ) in
- begin
- let temp = ref (t2 : value) in begin
- let overflow = ref (bitwise_or_bit (o1,o2)) in begin
- let carry = ref (bitwise_or_bit (c1,c2)) in begin
- (get_varray gPR).((unsigned (rT))) <- !temp;
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (set_overflow_cr0 (!temp,!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" !carry);
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
-| `Subfe (rT, rA, rB, oE, rc) ->
- let (t1, o1, c1) =
- ( match (add_overflow_vec_signed ((bitwise_not
- ((read_register (vector_access gPR (unsigned (rA)))))),(read_register (vector_access gPR (unsigned
- (rB)))))) with
- | (_36v, _37v, _38v) -> (_36v,_37v,_38v)
- ) in
- let (t2, o2, c2) =
- ( match (add_overflow_vec_bit_signed (t1,(get_register_field_bit xER "CA"))) with
- | (_39v, _40v, _41v) -> (_39v,_40v,_41v)
- ) in
- begin
- let temp = ref (t2 : value) in begin
- let overflow = ref (bitwise_or_bit (o1,o2)) in begin
- let carry = ref (bitwise_or_bit (c1,c2)) in begin
- (get_varray gPR).((unsigned (rT))) <- !temp;
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (set_overflow_cr0 (!temp,!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" !carry);
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
-| `Addme (rT, rA, oE, rc) ->
- let (t1, o1, c1) =
- ( match (add_overflow_vec_bit_signed ((read_register (vector_access gPR (unsigned (rA)))),(get_register_field_bit xER "CA"))) with
- | (_42v, _43v, _44v) -> (_42v,_43v,_44v)
- ) in
- let (t2, o2, c2) =
- ( match (add_overflow_vec_signed (t1,(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone|], 0, true)))) with
- | (_45v, _46v, _47v) -> (_45v,_46v,_47v)
- ) in
- begin
- let temp = ref (t2 : value) in begin
- let overflow = ref (bitwise_or_bit (o1,o2)) in begin
- let carry = ref (bitwise_or_bit (c1,c2)) in begin
- (get_varray gPR).((unsigned (rT))) <- !temp;
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (set_overflow_cr0 (!temp,!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" !carry);
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
-| `Subfme (rT, rA, oE, rc) ->
- let (t1, o1, c1) =
- ( match (add_overflow_vec_bit_signed ((bitwise_not
- ((read_register (vector_access gPR (unsigned (rA)))))),(get_register_field_bit xER "CA"))) with
- | (_48v, _49v, _50v) -> (_48v,_49v,_50v)
- ) in
- let (t2, o2, c2) =
- ( match (add_overflow_vec_signed (t1,(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone|], 0, true)))) with
- | (_51v, _52v, _53v) -> (_51v,_52v,_53v)
- ) in
- begin
- let temp = ref (t2 : value) in begin
- let overflow = ref (bitwise_or_bit (o1,o2)) in begin
- let carry = ref (bitwise_or_bit (c1,c2)) in begin
- (get_varray gPR).((unsigned (rT))) <- !temp;
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (set_overflow_cr0 (!temp,!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" !carry);
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
-| `Addze (rT, rA, oE, rc) ->
- let (temp, overflow, carry) =
- ( match (add_overflow_vec_bit_signed ((read_register (vector_access gPR (unsigned (rA)))),(get_register_field_bit xER "CA"))) with
- | (_54v, _55v, _56v) -> (_54v,_55v,_56v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (temp : value);
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,overflow)))
- then xer_so := overflow
- else ());
- (set_overflow_cr0 ((temp : value),!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" carry);
- (if to_bool(oE)
- then (set_SO_OV (overflow))
- else ())
- end
-| `Subfze (rT, rA, oE, rc) ->
- let (temp, overflow, carry) =
- ( match (add_overflow_vec_bit_signed ((bitwise_not
- ((read_register (vector_access gPR (unsigned (rA)))))),(get_register_field_bit xER "CA"))) with
- | (_57v, _58v, _59v) -> (_57v,_58v,_59v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (temp : value);
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,overflow)))
- then xer_so := overflow
- else ());
- (set_overflow_cr0 ((temp : value),!xer_so))
- end
- end
- else ());
- (set_register_field_bit xER "CA" carry);
- (if to_bool(oE)
- then (set_SO_OV (overflow))
- else ())
- end
-| `Neg (rT, rA, oE, rc) ->
- let (temp, overflow, _) =
- ( match (add_overflow_vec_bit_signed ((bitwise_not
- ((read_register (vector_access gPR (unsigned (rA)))))),Vone)) with
- | (_60v, _61v, _62v) -> (_60v,_61v,_62v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (temp : value);
- (if to_bool(rc)
- then (set_overflow_cr0 ((temp : value),(get_register_field_bit xER "SO")))
- else ());
- (if to_bool(oE)
- then (set_SO_OV (overflow))
- else ())
- end
-| `Mulli (rT, rA, sI) ->
- begin
- let prod = ref ((multiply_vec_signed ((vector_access gPR (unsigned (rA))),(EXTS
- ((big_int_of_int 64),sI)))) :
- value) in begin
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_subrange !prod (big_int_of_int 64) (big_int_of_int 127)) : value)
- end
- end
-| `Mullw (rT, rA, rB, oE, rc) ->
- let (prod, overflow, _) =
- ( match (mult_overflow_vec_signed ((vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)),(vector_subrange (vector_access gPR (unsigned
- (rB))) (big_int_of_int 32) (big_int_of_int 63)))) with
- | (_63v, _64v, _65v) -> (_63v,_64v,_65v)
- ) in
- begin
- (get_varray gPR).((unsigned (rT))) <- (prod : value);
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,overflow)))
- then xer_so := overflow
- else ());
- (set_overflow_cr0 ((prod : value),!xer_so))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (overflow))
- else ())
- end
-| `Mulhw (rT, rA, rB, rc) ->
- begin
- let prod = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let overflow = ref Vzero in begin
- let (p, o, _) =
- ( match (mult_overflow_vec_signed ((vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)),(vector_subrange (vector_access gPR (unsigned
- (rB))) (big_int_of_int 32) (big_int_of_int 63)))) with
- | (_66v, _67v, _68v) -> (_66v,_67v,_68v)
- ) in
- begin
- prod := (p : value);
- overflow := o
- end;
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 32) (big_int_of_int 63) ((vector_subrange !prod (big_int_of_int 0) (big_int_of_int 31)) :
- value));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 0) (big_int_of_int 31) (to_vec_inc_undef
- ((add ((add ((big_int_of_int 31),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(big_int_of_int 0))))))));
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bit_vector_access mode64bit (big_int_of_int 0)))
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0 (!prod,!xer_so)))
- end
- end
- else ())
- end
- end
- end
-| `Mulhwu (rT, rA, rB, rc) ->
- begin
- let prod = ref ((multiply_vec ((vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)),(vector_subrange (vector_access gPR (unsigned
- (rB))) (big_int_of_int 32) (big_int_of_int 63)))) :
- value) in begin
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 32) (big_int_of_int 63) ((vector_subrange !prod (big_int_of_int 0) (big_int_of_int 31)) :
- value));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 0) (big_int_of_int 31) (to_vec_inc_undef
- ((add ((add ((big_int_of_int 31),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(big_int_of_int 0))))))));
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bit_vector_access mode64bit (big_int_of_int 0)))
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0 (!prod,!xer_so)))
- end
- end
- else ())
- end
- end
-| `Divw (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref ((vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)) :
- value) in begin
- let divisor = ref ((vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 32) (big_int_of_int 63)) :
- value) in begin
- let divided = ref (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec_signed (!dividend,!divisor)) with
- | (_69v, _70v, _71v) -> (_69v,_70v,_71v)
- ) in
- begin
- (set_vector_subrange_bit !divided (big_int_of_int 32) (big_int_of_int 63) (d : value));
- overflow := o
- end;
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 32) (big_int_of_int 63) (vector_subrange !divided (big_int_of_int 32) (big_int_of_int 63)));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 0) (big_int_of_int 31) (to_vec_inc_undef
- ((add ((add ((big_int_of_int 31),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(big_int_of_int 0))))))));
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (if to_bool((bitwise_or_bit ((bit_vector_access mode64bit (big_int_of_int 0)),!overflow)))
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0 (!divided,!xer_so)))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
- end
-| `Divwu (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref ((vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)) :
- value) in begin
- let divisor = ref ((vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 32) (big_int_of_int 63)) :
- value) in begin
- let divided = ref (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec (!dividend,!divisor)) with
- | (_72v, _73v, _74v) -> (_72v,_73v,_74v)
- ) in
- begin
- (set_vector_subrange_bit !divided (big_int_of_int 32) (big_int_of_int 63) (d : value));
- overflow := o
- end;
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 32) (big_int_of_int 63) (vector_subrange !divided (big_int_of_int 32) (big_int_of_int 63)));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 0) (big_int_of_int 31) (to_vec_inc_undef
- ((add ((add ((big_int_of_int 31),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(big_int_of_int 0))))))));
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (if to_bool((bitwise_or_bit ((bit_vector_access mode64bit (big_int_of_int 0)),!overflow)))
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0 (!divided,!xer_so)))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
- end
-| `Divwe (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref ((vector_concat (vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))) :
- value) in begin
- let divisor = ref ((vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 32) (big_int_of_int 63)) :
- value) in begin
- let divided = ref (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec_signed (!dividend,!divisor)) with
- | (_75v, _76v, _77v) -> (_75v,_76v,_77v)
- ) in
- begin
- (set_vector_subrange_bit !divided (big_int_of_int 32) (big_int_of_int 63) (vector_subrange d (big_int_of_int 32) (big_int_of_int 63)));
- overflow := o
- end;
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 32) (big_int_of_int 63) (vector_subrange !divided (big_int_of_int 32) (big_int_of_int 63)));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 0) (big_int_of_int 31) (to_vec_inc_undef
- ((add ((add ((big_int_of_int 31),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(big_int_of_int 0))))))));
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (if to_bool((bitwise_or_bit ((bit_vector_access mode64bit (big_int_of_int 0)),!overflow)))
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0 (!divided,!xer_so)))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
- end
-| `Divweu (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref ((vector_concat (vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))) :
- value) in begin
- let divisor = ref ((vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 32) (big_int_of_int 63)) :
- value) in begin
- let divided = ref (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec (!dividend,!divisor)) with
- | (_78v, _79v, _80v) -> (_78v,_79v,_80v)
- ) in
- begin
- (set_vector_subrange_bit !divided (big_int_of_int 32) (big_int_of_int 63) (vector_subrange d (big_int_of_int 32) (big_int_of_int 63)));
- overflow := o
- end;
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 32) (big_int_of_int 63) (vector_subrange !divided (big_int_of_int 32) (big_int_of_int 63)));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rT))) (big_int_of_int 0) (big_int_of_int 31) (to_vec_inc_undef
- ((add ((add ((big_int_of_int 31),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(big_int_of_int 0))))))));
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (if to_bool((bitwise_or_bit ((bit_vector_access mode64bit (big_int_of_int 0)),!overflow)))
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0 (!divided,!xer_so)))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
- end
- end
-| `Mulld (rT, rA, rB, oE, rc) ->
- begin
- let prod = ref (to_vec_inc ((big_int_of_int 128),(big_int_of_int 0))) in begin
- let overflow = ref Vzero in begin
- let (p, o, _) =
- ( match (mult_overflow_vec_signed ((read_register (vector_access gPR (unsigned (rA)))),(read_register (vector_access gPR (unsigned
- (rB)))))) with
- | (_81v, _82v, _83v) -> (_81v,_82v,_83v)
- ) in
- begin
- prod := (p : value);
- overflow := o
- end;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_subrange !prod (big_int_of_int 64) (big_int_of_int 127)) : value);
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (set_overflow_cr0
- (((vector_subrange !prod (big_int_of_int 64) (big_int_of_int 127)) : value),!xer_so))
- end
- end
- else ());
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ())
- end
- end
- end
-| `Mulhd (rT, rA, rB, rc) ->
- begin
- let prod = ref ((multiply_vec_signed ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned
- (rB))))) :
- value) in begin
- (get_varray gPR).((unsigned (rT))) <-
- (vector_subrange !prod (big_int_of_int 0) (big_int_of_int 63));
- (if to_bool(rc)
- then (set_overflow_cr0
- ((vector_subrange !prod (big_int_of_int 0) (big_int_of_int 63)),(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Mulhdu (rT, rA, rB, rc) ->
- begin
- let prod = ref ((multiply_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned
- (rB))))) :
- value) in begin
- (get_varray gPR).((unsigned (rT))) <-
- (vector_subrange !prod (big_int_of_int 0) (big_int_of_int 63));
- (if to_bool(rc)
- then (set_overflow_cr0
- ((vector_subrange !prod (big_int_of_int 0) (big_int_of_int 63)),(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Divd (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref (vector_access gPR (unsigned (rA))) in begin
- let divisor = ref (vector_access gPR (unsigned (rB))) in begin
- let divided = ref (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec_signed (!dividend,!divisor)) with
- | (_84v, _85v, _86v) -> (_84v,_85v,_86v)
- ) in
- begin
- divided := (d : value);
- overflow := o
- end;
- (get_varray gPR).((unsigned (rT))) <- !divided;
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ());
- (if to_bool(rc)
- then (set_overflow_cr0
- (!divided,(bitwise_or_bit (!overflow,(get_register_field_bit xER "SO")))))
- else ())
- end
- end
- end
- end
- end
-| `Divdu (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref (vector_access gPR (unsigned (rA))) in begin
- let divisor = ref (vector_access gPR (unsigned (rB))) in begin
- let divided = ref (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec (!dividend,!divisor)) with
- | (_87v, _88v, _89v) -> (_87v,_88v,_89v)
- ) in
- begin
- divided := (d : value);
- overflow := o
- end;
- (get_varray gPR).((unsigned (rT))) <- !divided;
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ());
- (if to_bool(rc)
- then (set_overflow_cr0
- (!divided,(bitwise_or_bit (!overflow,(get_register_field_bit xER "SO")))))
- else ())
- end
- end
- end
- end
- end
-| `Divde (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref ((vector_concat (vector_access gPR (unsigned (rA))) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))) :
- value) in begin
- let divisor = ref (vector_access gPR (unsigned (rB))) in begin
- let divided = ref (to_vec_inc ((big_int_of_int 128),(big_int_of_int 0))) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec_signed (!dividend,!divisor)) with
- | (_90v, _91v, _92v) -> (_90v,_91v,_92v)
- ) in
- begin
- divided := (d : value);
- overflow := o
- end;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_subrange !divided (big_int_of_int 64) (big_int_of_int 127)) : value);
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ());
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (if to_bool(!overflow)
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0
- (((vector_subrange !divided (big_int_of_int 64) (big_int_of_int 127)) : value),!xer_so)))
- end
- end
- else ())
- end
- end
- end
- end
- end
-| `Divdeu (rT, rA, rB, oE, rc) ->
- begin
- let dividend = ref ((vector_concat (vector_access gPR (unsigned (rA))) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))) :
- value) in begin
- let divisor = ref (vector_access gPR (unsigned (rB))) in begin
- let divided = ref (to_vec_inc ((big_int_of_int 128),(big_int_of_int 0))) in begin
- let overflow = ref Vzero in begin
- let (d, o, _) =
- ( match (quot_overflow_vec (!dividend,!divisor)) with
- | (_93v, _94v, _95v) -> (_93v,_94v,_95v)
- ) in
- begin
- divided := (d : value);
- overflow := o
- end;
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_subrange !divided (big_int_of_int 64) (big_int_of_int 127)) : value);
- (if to_bool(oE)
- then (set_SO_OV (!overflow))
- else ());
- (if to_bool(rc)
- then begin
- let xer_so = ref (get_register_field_bit xER "SO") in begin
- (if to_bool((bitwise_and_bit (oE,!overflow)))
- then xer_so := !overflow
- else ());
- (if to_bool(!overflow)
- then (set_register_field_v cR "CR0" ((Vvector ([|!xer_so;Vundef;Vundef;Vundef|], 0, true)) :
- value))
- else (set_overflow_cr0
- (((vector_subrange !divided (big_int_of_int 64) (big_int_of_int 127)) : value),!xer_so)))
- end
- end
- else ())
- end
- end
- end
- end
- end
-| `Cmpi (bF, l, rA, sI) ->
- begin
- let a = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq (( match l with | Vzero -> (big_int_of_int 0) | Vone -> (big_int_of_int 1) ),(big_int_of_int 0))))
- then a :=
- ((EXTS
- ((big_int_of_int 64),(vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)))) :
- value)
- else a := (vector_access gPR (unsigned (rA))));
- let c = ref (make_indexed_bitv [] (Some Vzero) 0 3 true) in begin
- (if to_bool((lt_vec (!a,(EXTS ((big_int_of_int 64),sI)))))
- then c := (Vvector ([|Vone;Vzero;Vzero|], 0, true))
- else (if to_bool((gt_vec (!a,(EXTS ((big_int_of_int 64),sI)))))
- then c := (Vvector ([|Vzero;Vone;Vzero|], 0, true))
- else c := (Vvector ([|Vzero;Vzero;Vone|], 0, true))));
- (set_vector_subrange_bit cR (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 32))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 35))) (vector_concat !c (Vvector ([|(get_register_field_bit xER "SO")|], 0, true))))
- end
- end
- end
-| `Cmp (bF, l, rA, rB) ->
- begin
- let a = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq (( match l with | Vzero -> (big_int_of_int 0) | Vone -> (big_int_of_int 1) ),(big_int_of_int 0))))
- then begin
- a :=
- ((EXTS
- ((big_int_of_int 64),(vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)))) :
- value);
- b :=
- ((EXTS
- ((big_int_of_int 64),(vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 32) (big_int_of_int 63)))) :
- value)
- end
- else begin
- a := (vector_access gPR (unsigned (rA)));
- b := (vector_access gPR (unsigned (rB)))
- end);
- let c = ref (make_indexed_bitv [] (Some Vzero) 0 3 true) in begin
- (if to_bool((lt_vec (!a,!b)))
- then c := (Vvector ([|Vone;Vzero;Vzero|], 0, true))
- else (if to_bool((gt_vec (!a,!b)))
- then c := (Vvector ([|Vzero;Vone;Vzero|], 0, true))
- else c := (Vvector ([|Vzero;Vzero;Vone|], 0, true))));
- (set_vector_subrange_bit cR (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 32))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 35))) (vector_concat !c (Vvector ([|(get_register_field_bit xER "SO")|], 0, true))))
- end
- end
- end
- end
-| `Cmpli (bF, l, rA, uI) ->
- begin
- let a = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let c = ref (to_vec_inc ((big_int_of_int 3),(big_int_of_int 0))) in begin
- (if to_bool((eq (( match l with | Vzero -> (big_int_of_int 0) | Vone -> (big_int_of_int 1) ),(big_int_of_int 0))))
- then a :=
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_subrange (vector_access gPR (unsigned
- (rA))) (big_int_of_int 32) (big_int_of_int 63))) :
- value)
- else a := (vector_access gPR (unsigned (rA))));
- (if to_bool((lt_vec_unsigned (!a,(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) uI))))
- then c := (Vvector ([|Vone;Vzero;Vzero|], 0, true))
- else (if to_bool((gt_vec_unsigned (!a,(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) uI))))
- then c := (Vvector ([|Vzero;Vone;Vzero|], 0, true))
- else c := (Vvector ([|Vzero;Vzero;Vone|], 0, true))));
- (set_vector_subrange_bit cR (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 32))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 35))) (vector_concat !c (Vvector ([|(get_register_field_bit xER "SO")|], 0, true))))
- end
- end
- end
-| `Cmpl (bF, l, rA, rB) ->
- begin
- let a = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let c = ref (to_vec_inc ((big_int_of_int 3),(big_int_of_int 0))) in begin
- (if to_bool((eq (( match l with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then begin
- a :=
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_subrange (vector_access gPR (unsigned
- (rA))) (big_int_of_int 32) (big_int_of_int 63))) :
- value);
- b :=
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_subrange (vector_access gPR (unsigned
- (rB))) (big_int_of_int 32) (big_int_of_int 63))) :
- value)
- end
- else begin
- a := (vector_access gPR (unsigned (rA)));
- b := (vector_access gPR (unsigned (rB)))
- end);
- (if to_bool((lt_vec_unsigned (!a,!b)))
- then c := (Vvector ([|Vone;Vzero;Vzero|], 0, true))
- else (if to_bool((gt_vec_unsigned (!a,!b)))
- then c := (Vvector ([|Vzero;Vone;Vzero|], 0, true))
- else c := (Vvector ([|Vzero;Vzero;Vone|], 0, true))));
- (set_vector_subrange_bit cR (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 32))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 35))) (vector_concat !c (Vvector ([|(get_register_field_bit xER "SO")|], 0, true))))
- end
- end
- end
- end
-| `Twi (tO, rA, sI) ->
- begin
- let a = ref (EXTS
- (_'nv9589,(vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)))) in begin
- (if to_bool((bitwise_and_bit ((lt_vec (!a,(EXTS (_'nv9589,sI)))),(bit_vector_access tO (big_int_of_int 0)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((gt_vec (!a,(EXTS (_'nv9589,sI)))),(bit_vector_access tO (big_int_of_int 1)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((eq (!a,(EXTS (_'nv9589,sI)))),(bit_vector_access tO (big_int_of_int 2)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((lt_vec_unsigned (!a,(EXTS (_'nv9589,sI)))),(bit_vector_access tO (big_int_of_int 3)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((gt_vec_unsigned (!a,(EXTS (_'nv9589,sI)))),(bit_vector_access tO (big_int_of_int 4)))))
- then (trap ())
- else ())
- end
- end
-| `Tw (tO, rA, rB) ->
- begin
- let a = ref (EXTS
- (_'nv9732,(vector_subrange (vector_access gPR (unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63)))) in begin
- let b = ref (EXTS
- (_'nv9732,(vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 32) (big_int_of_int 63)))) in begin
- (if to_bool((bitwise_and_bit ((lt_vec (!a,!b)),(bit_vector_access tO (big_int_of_int 0)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((gt_vec (!a,!b)),(bit_vector_access tO (big_int_of_int 1)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((eq (!a,!b)),(bit_vector_access tO (big_int_of_int 2)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((lt_vec_unsigned (!a,!b)),(bit_vector_access tO (big_int_of_int 3)))))
- then (trap ())
- else ());
- (if to_bool((bitwise_and_bit ((gt_vec_unsigned (!a,!b)),(bit_vector_access tO (big_int_of_int 4)))))
- then (trap ())
- else ())
- end
- end
- end
-| `Tdi (tO, rA, sI) -> ()
-| `Td (tO, rA, rB) -> ()
-| `Isel (rT, rA, rB, bC) ->
- begin
- let a = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then a := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else a := (vector_access gPR (unsigned (rA))));
- (if to_bool((eq (( match (bit_vector_access (read_register cR) (add_vec_range_range (bC,(big_int_of_int 32)))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 1))))
- then begin
- (get_varray gPR).((unsigned (rT))) <- !a;
- let discard = ref (vector_access gPR (unsigned (rB))) in ()
- end
- else (get_varray gPR).((unsigned (rT))) <- (vector_access gPR (unsigned (rB))))
- end
- end
-| `Andi (rS, rA, uI) ->
- begin
- let temp = ref ((bitwise_and ((vector_access gPR (unsigned (rS))),(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) uI))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- end
- end
-| `Andis (rS, rA, uI) ->
- begin
- let temp = ref ((bitwise_and ((vector_access gPR (unsigned (rS))),(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_concat uI (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- end
- end
-| `Ori (rS, rA, uI) ->
- (get_varray gPR).((unsigned (rA))) <-
- ((bitwise_or ((vector_access gPR (unsigned (rS))),(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) uI))) :
- value)
-| `Oris (rS, rA, uI) ->
- (get_varray gPR).((unsigned (rA))) <-
- ((bitwise_or ((vector_access gPR (unsigned (rS))),(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_concat uI (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))))) :
- value)
-| `Xori (rS, rA, uI) ->
- (get_varray gPR).((unsigned (rA))) <-
- ((bitwise_xor ((vector_access gPR (unsigned (rS))),(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) uI))) :
- value)
-| `Xoris (rS, rA, uI) ->
- (get_varray gPR).((unsigned (rA))) <-
- ((bitwise_xor ((vector_access gPR (unsigned (rS))),(vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_concat uI (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))))) :
- value)
-| `And (rS, rA, rB, rc) ->
- begin
- let temp = ref ((bitwise_and ((vector_access gPR (unsigned (rS))),(vector_access gPR (unsigned
- (rB))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Xor (rS, rA, rB, rc) ->
- begin
- let temp = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq (rS,rB)))
- then begin
- temp := (vector_access gPR (unsigned (rS)));
- temp := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)));
- (get_varray gPR).((unsigned (rA))) <- (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- end
- else begin
- temp :=
- ((bitwise_xor ((vector_access gPR (unsigned (rS))),(vector_access gPR (unsigned (rB))))) :
- value);
- (get_varray gPR).((unsigned (rA))) <- !temp
- end);
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Nand (rS, rA, rB, rc) ->
- begin
- let temp = ref ((bitwise_not
- ((bitwise_and ((vector_access gPR (unsigned (rS))),(vector_access gPR (unsigned (rB))))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Or (rS, rA, rB, rc) ->
- begin
- let temp = ref ((bitwise_or ((vector_access gPR (unsigned (rS))),(vector_access gPR (unsigned
- (rB))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Nor (rS, rA, rB, rc) ->
- begin
- let temp = ref ((bitwise_not
- ((bitwise_or ((vector_access gPR (unsigned (rS))),(vector_access gPR (unsigned (rB))))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Eqv (rS, rA, rB, rc) ->
- begin
- let temp = ref ((bitwise_xor ((vector_access gPR (unsigned (rS))),(bitwise_not
- ((vector_access gPR (unsigned (rB))))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Andc (rS, rA, rB, rc) ->
- begin
- let temp = ref ((bitwise_and ((vector_access gPR (unsigned (rS))),(bitwise_not
- ((vector_access gPR (unsigned (rB))))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Orc (rS, rA, rB, rc) ->
- begin
- let temp = ref ((bitwise_or ((vector_access gPR (unsigned (rS))),(bitwise_not
- ((vector_access gPR (unsigned (rB))))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Extsb (rS, rA, rc) ->
- begin
- let temp = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let s = ref (bit_vector_access (vector_access gPR (unsigned (rS))) (big_int_of_int 56)) in begin
- (set_vector_subrange_bit !temp (big_int_of_int 56) (big_int_of_int 63) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 56) (big_int_of_int 63)));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (big_int_of_int 56) (big_int_of_int 63) (vector_subrange !temp (big_int_of_int 56) (big_int_of_int 63)));
- (set_vector_subrange_bit !temp (big_int_of_int 0) (big_int_of_int 55) (duplicate (!s,(big_int_of_int 56))));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (big_int_of_int 0) (big_int_of_int 55) (vector_subrange !temp (big_int_of_int 0) (big_int_of_int 55)));
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
-| `Extsh (rS, rA, rc) ->
- begin
- let temp = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let s = ref (bit_vector_access (vector_access gPR (unsigned (rS))) (big_int_of_int 48)) in begin
- (set_vector_subrange_bit !temp (big_int_of_int 48) (big_int_of_int 63) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 48) (big_int_of_int 63)));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (big_int_of_int 48) (big_int_of_int 63) (vector_subrange !temp (big_int_of_int 48) (big_int_of_int 63)));
- (set_vector_subrange_bit !temp (big_int_of_int 0) (big_int_of_int 47) (duplicate (!s,(big_int_of_int 48))));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (big_int_of_int 0) (big_int_of_int 47) (vector_subrange !temp (big_int_of_int 0) (big_int_of_int 47)));
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
-| `Cntlzw (rS, rA, rc) ->
- begin
- let temp = ref (to_vec_inc
- ((big_int_of_int 64),(countLeadingZeroes
- ((vector_access gPR (unsigned (rS))),(big_int_of_int 32))))) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Cmpb (rS, rA, rB) ->
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach n = if (n <= __stop) then ((if to_bool((eq ((vector_subrange (vector_access gPR (unsigned
- (rS))) (multiply ((big_int_of_int 8),n)) (add ((multiply ((big_int_of_int 8),n)),(big_int_of_int 7)))),(vector_subrange (vector_access gPR (unsigned
- (rB))) (multiply ((big_int_of_int 8),n)) (add ((multiply ((big_int_of_int 8),n)),(big_int_of_int 7)))))))
- then (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (multiply ((big_int_of_int 8),n)) (add ((multiply ((big_int_of_int 8),n)),(big_int_of_int 7))) (Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone|], 0, true)))
- else (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (multiply ((big_int_of_int 8),n)) (add ((multiply ((big_int_of_int 8),n)),(big_int_of_int 7))) (to_vec_inc
- ((big_int_of_int 8),(big_int_of_int 0))))) ;foreach(n + __by)) in foreach (big_int_of_int 0))
-| `Popcntb (rS, rA) ->
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- let n = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach j = if (j <= __stop) then ((if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned
- (rS))) (add ((multiply (i,(big_int_of_int 8))),j))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 1))))
- then n := (add (!n,(big_int_of_int 1)))
- else ()) ;foreach(j + __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (multiply (i,(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 8))),(big_int_of_int 7))) (to_vec_inc
- ((big_int_of_int 8),!n)))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Popcntw (rS, rA) ->
- (let (__stop,__by) = ((big_int_of_int 1) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- let n = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 1)) in
- let rec foreach j = if (j <= __stop) then ((if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned
- (rS))) (add ((multiply (i,(big_int_of_int 32))),j))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 1))))
- then n := (add (!n,(big_int_of_int 1)))
- else ()) ;foreach(j + __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (multiply (i,(big_int_of_int 32))) (add ((multiply (i,(big_int_of_int 32))),(big_int_of_int 31))) (to_vec_inc
- ((big_int_of_int 32),!n)))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Prtyd (rS, rA) ->
- begin
- let s = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (s :=
- ( match (bitwise_xor_bit ((if to_bool((is_one (!s)))
- then Vone
- else Vzero),(bit_vector_access (vector_access gPR (unsigned (rS))) (add ((multiply (i,(big_int_of_int 8))),(big_int_of_int 7)))))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (get_varray gPR).((unsigned (rA))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (Vvector ([|(if to_bool((is_one
- (!s)))
- then Vone
- else Vzero)|], 0, true))) :
- value)
- end
- end
-| `Prtyw (rS, rA) ->
- begin
- let s = ref (big_int_of_int 0) in begin
- let t = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 3) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (s :=
- ( match (bitwise_xor_bit ((if to_bool((is_one (!s)))
- then Vone
- else Vzero),(bit_vector_access (vector_access gPR (unsigned (rS))) (add ((multiply (i,(big_int_of_int 8))),(big_int_of_int 7)))))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (t :=
- ( match (bitwise_xor_bit ((if to_bool((is_one (!t)))
- then Vone
- else Vzero),(bit_vector_access (vector_access gPR (unsigned (rS))) (add ((multiply (i,(big_int_of_int 8))),(big_int_of_int 7)))))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ) ;foreach(i + __by)) in foreach (big_int_of_int 4));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (big_int_of_int 0) (big_int_of_int 31) ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (Vvector ([|(if to_bool((is_one
- (!s)))
- then Vone
- else Vzero)|], 0, true))) :
- value));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (big_int_of_int 32) (big_int_of_int 63) ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (Vvector ([|(if to_bool((is_one
- (!t)))
- then Vone
- else Vzero)|], 0, true))) :
- value))
- end
- end
- end
-| `Extsw (rS, rA, rc) ->
- begin
- let s = ref (bit_vector_access (vector_access gPR (unsigned (rS))) (big_int_of_int 32)) in begin
- let temp = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (set_vector_subrange_bit !temp (big_int_of_int 32) (big_int_of_int 63) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63)));
- (set_vector_subrange_bit !temp (big_int_of_int 0) (big_int_of_int 31) (duplicate (!s,(big_int_of_int 32))));
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ());
- (get_varray gPR).((unsigned (rA))) <- !temp
- end
- end
- end
-| `Cntlzd (rS, rA, rc) ->
- begin
- let temp = ref (to_vec_inc
- ((big_int_of_int 64),(countLeadingZeroes
- ((vector_access gPR (unsigned (rS))),(big_int_of_int 0))))) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
-| `Popcntd (rS, rA) ->
- begin
- let n = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then ((if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned
- (rS))) i) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 1))))
- then n := (add (!n,(big_int_of_int 1)))
- else ()) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (get_varray gPR).((unsigned (rA))) <- (to_vec_inc ((big_int_of_int 64),!n))
- end
- end
-| `Bpermd (rS, rA, rB) ->
- begin
- let perm = ref (to_vec_inc ((big_int_of_int 8),(big_int_of_int 0))) in begin
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- let index = ref (vector_subrange (vector_access gPR (unsigned (rS))) (multiply ((big_int_of_int 8),i)) (add ((multiply ((big_int_of_int 8),i)),(big_int_of_int 7)))) in begin
- (if to_bool((lt_vec_unsigned (!index,(to_vec_inc ((big_int_of_int 8),(big_int_of_int 64))))))
- then (get_barray !perm).(i) <-
- (bit_vector_access (vector_access gPR (unsigned (rB))) (unsigned (!index)))
- else begin
- (get_barray !perm).(i) <- Vzero;
- let discard = ref (vector_access gPR (unsigned (rB))) in ()
- end)
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (get_varray gPR).((unsigned (rA))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_subrange !perm (big_int_of_int 0) (big_int_of_int 7))) :
- value)
- end
- end
-| `Rlwinm (rS, rA, sH, mB, mE, rc) ->
- begin
- let n = ref sH in begin
- let r = ref (rOTL
- (((vector_concat (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63))) :
- value),(unsigned (!n)))) in begin
- let m = ref (mASK
- ((add_vec_range_range (mB,(big_int_of_int 32))),(add_vec_range_range (mE,(big_int_of_int 32))))) in begin
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
-| `Rlwnm (rS, rA, rB, mB, mE, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 59) (big_int_of_int 63)) in begin
- let r = ref (rOTL
- (((vector_concat (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63))) :
- value),(unsigned (!n)))) in begin
- let m = ref (mASK
- ((add_vec_range_range (mB,(big_int_of_int 32))),(add_vec_range_range (mE,(big_int_of_int 32))))) in begin
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
-| `Rlwimi (rS, rA, sH, mB, mE, rc) ->
- begin
- let n = ref sH in begin
- let r = ref (rOTL
- (((vector_concat (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63))) :
- value),(unsigned (!n)))) in begin
- let m = ref (mASK
- ((add_vec_range_range (mB,(big_int_of_int 32))),(add_vec_range_range (mE,(big_int_of_int 32))))) in begin
- let temp = ref ((bitwise_or ((bitwise_and (!r,!m)),(bitwise_and ((vector_access gPR (unsigned
- (rA))),(bitwise_not (!m)))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
-| `Rldicl (rS, rA, sh, mb, rc) ->
- begin
- let n = ref (vector_concat (Vvector ([|(bit_vector_access sh (big_int_of_int 5))|], 0, true)) (vector_subrange sh (big_int_of_int 0) (big_int_of_int 4))) in begin
- let r = ref (rOTL ((vector_access gPR (unsigned (rS))),(unsigned (!n)))) in begin
- let b = ref (vector_concat (Vvector ([|(bit_vector_access mb (big_int_of_int 5))|], 0, true)) (vector_subrange mb (big_int_of_int 0) (big_int_of_int 4))) in begin
- let m = ref (mASK ((unsigned (!b)),(big_int_of_int 63))) in begin
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
- end
-| `Rldicr (rS, rA, sh, me, rc) ->
- begin
- let n = ref (vector_concat (Vvector ([|(bit_vector_access sh (big_int_of_int 5))|], 0, true)) (vector_subrange sh (big_int_of_int 0) (big_int_of_int 4))) in begin
- let r = ref (rOTL ((vector_access gPR (unsigned (rS))),(unsigned (!n)))) in begin
- let e = ref (vector_concat (Vvector ([|(bit_vector_access me (big_int_of_int 5))|], 0, true)) (vector_subrange me (big_int_of_int 0) (big_int_of_int 4))) in begin
- let m = ref (mASK ((big_int_of_int 0),(unsigned (!e)))) in begin
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
- end
-| `Rldic (rS, rA, sh, mb, rc) ->
- begin
- let n = ref (vector_concat (Vvector ([|(bit_vector_access sh (big_int_of_int 5))|], 0, true)) (vector_subrange sh (big_int_of_int 0) (big_int_of_int 4))) in begin
- let r = ref (rOTL ((vector_access gPR (unsigned (rS))),(unsigned (!n)))) in begin
- let b = ref (vector_concat (Vvector ([|(bit_vector_access mb (big_int_of_int 5))|], 0, true)) (vector_subrange mb (big_int_of_int 0) (big_int_of_int 4))) in begin
- let m = ref (mASK ((unsigned (!b)),(unsigned (((bitwise_not (!n)) : value))))) in begin
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
- end
-| `Rldcl (rS, rA, rB, mb, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 58) (big_int_of_int 63)) in begin
- let r = ref (rOTL ((vector_access gPR (unsigned (rS))),(unsigned (!n)))) in begin
- let b = ref (vector_concat (Vvector ([|(bit_vector_access mb (big_int_of_int 5))|], 0, true)) (vector_subrange mb (big_int_of_int 0) (big_int_of_int 4))) in begin
- let m = ref (mASK ((unsigned (!b)),(big_int_of_int 63))) in begin
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
- end
-| `Rldcr (rS, rA, rB, me, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 58) (big_int_of_int 63)) in begin
- let r = ref (rOTL ((vector_access gPR (unsigned (rS))),(unsigned (!n)))) in begin
- let e = ref (vector_concat (Vvector ([|(bit_vector_access me (big_int_of_int 5))|], 0, true)) (vector_subrange me (big_int_of_int 0) (big_int_of_int 4))) in begin
- let m = ref (mASK ((big_int_of_int 0),(unsigned (!e)))) in begin
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
- end
-| `Rldimi (rS, rA, sh, mb, rc) ->
- begin
- let n = ref (vector_concat (Vvector ([|(bit_vector_access sh (big_int_of_int 5))|], 0, true)) (vector_subrange sh (big_int_of_int 0) (big_int_of_int 4))) in begin
- let r = ref (rOTL ((vector_access gPR (unsigned (rS))),(unsigned (!n)))) in begin
- let b = ref (vector_concat (Vvector ([|(bit_vector_access mb (big_int_of_int 5))|], 0, true)) (vector_subrange mb (big_int_of_int 0) (big_int_of_int 4))) in begin
- let m = ref (mASK ((unsigned (!b)),(unsigned (((bitwise_not (!n)) : value))))) in begin
- let temp = ref ((bitwise_or ((bitwise_and (!r,!m)),(bitwise_and ((vector_access gPR (unsigned
- (rA))),(bitwise_not (!m)))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
- end
-| `Slw (rS, rA, rB, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 59) (big_int_of_int 63)) in begin
- let r = ref (rOTL
- (((vector_concat (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63))) :
- value),(unsigned (!n)))) in begin
- let m = ref (make_indexed_bitv [] (Some Vzero) 0 64 true) in begin
- (if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned (rB))) (big_int_of_int 58)) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then m := (mASK ((big_int_of_int 32),(minus_range_vec_range ((big_int_of_int 63),!n))))
- else m :=
- (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)));
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
-| `Srw (rS, rA, rB, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 59) (big_int_of_int 63)) in begin
- let r = ref (rOTL
- (((vector_concat (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63))) :
- value),(minus_range_vec_range ((big_int_of_int 64),!n)))) in begin
- let m = ref (make_indexed_bitv [] (Some Vzero) 0 64 true) in begin
- (if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned (rB))) (big_int_of_int 58)) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then m := (mASK ((add_vec_range_range (!n,(big_int_of_int 32))),(big_int_of_int 63)))
- else m :=
- (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)));
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
-| `Srawi (rS, rA, sH, rc) ->
- begin
- let n = ref sH in begin
- let r = ref (rOTL
- (((vector_concat (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63))) :
- value),(minus_range_vec_range ((big_int_of_int 64),!n)))) in begin
- let m = ref (mASK ((add_vec_range_range (!n,(big_int_of_int 32))),(big_int_of_int 63))) in begin
- let s = ref (bit_vector_access (vector_access gPR (unsigned (rS))) (big_int_of_int 32)) in begin
- let temp = ref ((bitwise_or ((bitwise_and (!r,!m)),(bitwise_and ((duplicate (!s,(big_int_of_int 64))),(bitwise_not
- (!m)))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ());
- (set_register_field_bit xER "CA" (if to_bool((gt_vec_unsigned (!n,(to_vec_inc
- ((big_int_of_int 5),(big_int_of_int 0))))))
- then (bitwise_and_bit (!s,(bitwise_not_bit
- ((eq_vec_range ((bitwise_and (!r,(bitwise_not (!m)))),(big_int_of_int 0)))))))
- else Vzero))
- end
- end
- end
- end
- end
- end
-| `Sraw (rS, rA, rB, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 59) (big_int_of_int 63)) in begin
- let r = ref (rOTL
- (((vector_concat (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) (vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63))) :
- value),(minus_range_vec_range ((big_int_of_int 64),!n)))) in begin
- let m = ref (make_indexed_bitv [] (Some Vzero) 0 64 true) in begin
- (if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned (rB))) (big_int_of_int 58)) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then m := (mASK ((add_vec_range_range (!n,(big_int_of_int 32))),(big_int_of_int 63)))
- else m :=
- (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)));
- let s = ref (bit_vector_access (vector_access gPR (unsigned (rS))) (big_int_of_int 32)) in begin
- let temp = ref ((bitwise_or ((bitwise_and (!r,!m)),(bitwise_and ((duplicate (!s,(big_int_of_int 64))),(bitwise_not
- (!m)))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ());
- (set_register_field_bit xER "CA" (if to_bool((gt_vec_unsigned (!n,(to_vec_inc
- ((big_int_of_int 5),(big_int_of_int 0))))))
- then (bitwise_and_bit (!s,(bitwise_not_bit
- ((eq_vec_range ((bitwise_and (!r,(bitwise_not (!m)))),(big_int_of_int 0)))))))
- else Vzero))
- end
- end
- end
- end
- end
- end
-| `Sld (rS, rA, rB, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 58) (big_int_of_int 63)) in begin
- let r = ref (rOTL ((vector_access gPR (unsigned (rS))),(unsigned (!n)))) in begin
- let m = ref (make_indexed_bitv [] (Some Vzero) 0 64 true) in begin
- (if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned (rB))) (big_int_of_int 57)) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then m := (mASK ((big_int_of_int 0),(minus_range_vec_range ((big_int_of_int 63),!n))))
- else m :=
- (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)));
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
-| `Srd (rS, rA, rB, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 58) (big_int_of_int 63)) in begin
- let r = ref (rOTL
- ((vector_access gPR (unsigned (rS))),(minus_range_vec_range ((big_int_of_int 64),!n)))) in begin
- let m = ref (make_indexed_bitv [] (Some Vzero) 0 64 true) in begin
- (if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned (rB))) (big_int_of_int 57)) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then m := (mASK ((unsigned (!n)),(big_int_of_int 63)))
- else m :=
- (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)));
- let temp = ref ((bitwise_and (!r,!m)) : value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ())
- end
- end
- end
- end
- end
-| `Sradi (rS, rA, sh, rc) ->
- begin
- let n = ref (vector_concat (Vvector ([|(bit_vector_access sh (big_int_of_int 5))|], 0, true)) (vector_subrange sh (big_int_of_int 0) (big_int_of_int 4))) in begin
- let r = ref (rOTL
- ((vector_access gPR (unsigned (rS))),(minus_range_vec_range ((big_int_of_int 64),!n)))) in begin
- let m = ref (mASK ((unsigned (!n)),(big_int_of_int 63))) in begin
- let s = ref (bit_vector_access (vector_access gPR (unsigned (rS))) (big_int_of_int 0)) in begin
- let temp = ref ((bitwise_or ((bitwise_and (!r,!m)),(bitwise_and ((duplicate (!s,(big_int_of_int 64))),(bitwise_not
- (!m)))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ());
- (set_register_field_bit xER "CA" (if to_bool((gt_vec_unsigned (!n,(to_vec_inc
- ((big_int_of_int 6),(big_int_of_int 0))))))
- then (bitwise_and_bit (!s,(bitwise_not_bit
- ((eq_vec_range ((bitwise_and (!r,(bitwise_not (!m)))),(big_int_of_int 0)))))))
- else Vzero))
- end
- end
- end
- end
- end
- end
-| `Srad (rS, rA, rB, rc) ->
- begin
- let n = ref (vector_subrange (vector_access gPR (unsigned (rB))) (big_int_of_int 58) (big_int_of_int 63)) in begin
- let r = ref (rOTL
- ((vector_access gPR (unsigned (rS))),(minus_range_vec_range ((big_int_of_int 64),!n)))) in begin
- let m = ref (make_indexed_bitv [] (Some Vzero) 0 64 true) in begin
- (if to_bool((eq (( match (bit_vector_access (vector_access gPR (unsigned (rB))) (big_int_of_int 57)) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 0))))
- then m := (mASK ((unsigned (!n)),(big_int_of_int 63)))
- else m :=
- (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)));
- let s = ref (bit_vector_access (vector_access gPR (unsigned (rS))) (big_int_of_int 0)) in begin
- let temp = ref ((bitwise_or ((bitwise_and (!r,!m)),(bitwise_and ((duplicate (!s,(big_int_of_int 64))),(bitwise_not
- (!m)))))) :
- value) in begin
- (get_varray gPR).((unsigned (rA))) <- !temp;
- (if to_bool(rc)
- then (set_overflow_cr0 (!temp,(get_register_field_bit xER "SO")))
- else ());
- (set_register_field_bit xER "CA" (if to_bool((gt_vec_unsigned (!n,(to_vec_inc
- ((big_int_of_int 6),(big_int_of_int 0))))))
- then (bitwise_and_bit (!s,(bitwise_not_bit
- ((eq_vec_range ((bitwise_and (!r,(bitwise_not (!m)))),(big_int_of_int 0)))))))
- else Vzero))
- end
- end
- end
- end
- end
- end
-| `Cdtbcd (rS, rA) ->
- (let (__stop,__by) = ((big_int_of_int 1) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- let n = ref (multiply (i,(big_int_of_int 32))) in begin
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (add (!n,(big_int_of_int 0))) (add (!n,(big_int_of_int 7))) (to_vec_inc
- ((big_int_of_int 8),(big_int_of_int 0))));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (add (!n,(big_int_of_int 8))) (add (!n,(big_int_of_int 19))) (dEC_TO_BCD
- (((vector_subrange (vector_access gPR (unsigned (rS))) (add (!n,(big_int_of_int 12))) (add (!n,(big_int_of_int 21)))) :
- value))));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (add (!n,(big_int_of_int 20))) (add (!n,(big_int_of_int 31))) (dEC_TO_BCD
- (((vector_subrange (vector_access gPR (unsigned (rS))) (add (!n,(big_int_of_int 22))) (add (!n,(big_int_of_int 31)))) :
- value))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Cbcdtd (rS, rA) ->
- (let (__stop,__by) = ((big_int_of_int 1) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (begin
- let n = ref (multiply (i,(big_int_of_int 32))) in begin
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (add (!n,(big_int_of_int 0))) (add (!n,(big_int_of_int 11))) (to_vec_inc
- ((big_int_of_int 12),(big_int_of_int 0))));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (add (!n,(big_int_of_int 12))) (add (!n,(big_int_of_int 21))) (bCD_TO_DEC
- (((vector_subrange (vector_access gPR (unsigned (rS))) (add (!n,(big_int_of_int 8))) (add (!n,(big_int_of_int 19)))) :
- value))));
- (set_vector_subrange_bit (get_varray gPR).((unsigned (rA))) (add (!n,(big_int_of_int 22))) (add (!n,(big_int_of_int 31))) (bCD_TO_DEC
- (((vector_subrange (vector_access gPR (unsigned (rS))) (add (!n,(big_int_of_int 20))) (add (!n,(big_int_of_int 31)))) :
- value))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Addg6s (rT, rA, rB) ->
- begin
- let dc = ref (to_vec_inc ((big_int_of_int 16),(big_int_of_int 0))) in begin
- (let (__stop,__by) = ((big_int_of_int 15) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then (let (v, _, co) =
- ( match (add_overflow_vec ((vector_subrange (vector_access gPR (unsigned (rA))) (multiply ((big_int_of_int 4),i)) (big_int_of_int 63)),(vector_subrange (vector_access gPR (unsigned
- (rB))) (multiply ((big_int_of_int 4),i)) (big_int_of_int 63)))) with
- | (_96v, _97v, _98v) -> (_96v,_97v,_98v)
- ) in
- (get_barray !dc).(i) <- (carry_out ((v : value),co)) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- let c = ref (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 0)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 1)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 2)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 3)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 4)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 5)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 6)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 7)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 8)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 9)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 10)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 11)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 12)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 13)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access !dc (big_int_of_int 14)),(big_int_of_int 4))) (duplicate ((bit_vector_access !dc (big_int_of_int 15)),(big_int_of_int 4)))))))))))))))))) in begin
- (get_varray gPR).((unsigned (rT))) <-
- ((bitwise_and ((bitwise_not (!c)),(Vvector ([|Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero;Vzero;Vone;Vone;Vzero|], 0, true)))) :
- value)
- end
- end
- end
-| `Mtspr (rS, spr) ->
- begin
- let n = ref (vector_concat (vector_subrange spr (big_int_of_int 5) (big_int_of_int 9)) (vector_subrange spr (big_int_of_int 0) (big_int_of_int 4))) in begin
- (if to_bool((eq_vec_range (!n,(big_int_of_int 13))))
- then (trap ())
- else (if to_bool((eq_vec_range (!n,(big_int_of_int 1))))
- then begin
- let reg = ref (vector_access gPR (unsigned (rS))) in begin
- let front = ref (zero_or_undef
- ((vector_subrange !reg (big_int_of_int 0) (big_int_of_int 31)))) in begin
- let xer_so = ref (bit_vector_access !reg (big_int_of_int 32)) in begin
- let xer_ov = ref (bit_vector_access !reg (big_int_of_int 33)) in begin
- let xer_ca = ref (bit_vector_access !reg (big_int_of_int 34)) in begin
- let mid = ref (zero_or_undef
- (((vector_subrange !reg (big_int_of_int 35) (big_int_of_int 56)) : value))) in begin
- let bot = ref ((vector_subrange !reg (big_int_of_int 57) (big_int_of_int 63)) :
- value) in begin
- (set_register xER ((vector_concat !front (vector_concat (Vvector ([|!xer_so|], 0, true)) (vector_concat (Vvector ([|!xer_ov|], 0, true)) (vector_concat (Vvector ([|!xer_ca|], 0, true)) (vector_concat !mid !bot))))) :
- value))
- end
- end
- end
- end
- end
- end
- end
- end
- else (if to_bool((eq ((length ((vector_access sPR (unsigned (!n))))),(big_int_of_int 64))))
- then (get_varray sPR).((unsigned (!n))) <- (vector_access gPR (unsigned (rS)))
- else (if to_bool((eq_vec_range (!n,(big_int_of_int 152))))
- then let cTRL = ref (vector_subrange (vector_access gPR (unsigned (rS))) (big_int_of_int 32) (big_int_of_int 63)) in ()
- else ()))))
- end
- end
-| `Mfspr (rT, spr) ->
- begin
- let n = ref (vector_concat (vector_subrange spr (big_int_of_int 5) (big_int_of_int 9)) (vector_subrange spr (big_int_of_int 0) (big_int_of_int 4))) in begin
- (if to_bool((eq ((length ((vector_access sPR (unsigned (!n))))),(big_int_of_int 64))))
- then (get_varray gPR).((unsigned (rT))) <- (vector_access sPR (unsigned (!n)))
- else (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (vector_access sPR (unsigned
- (!n)))) :
- value))
- end
- end
-| `Mtcrf (rS, fXM) ->
- begin
- let mask = ref (vector_concat (duplicate ((bit_vector_access fXM (big_int_of_int 0)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access fXM (big_int_of_int 1)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access fXM (big_int_of_int 2)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access fXM (big_int_of_int 3)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access fXM (big_int_of_int 4)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access fXM (big_int_of_int 5)),(big_int_of_int 4))) (vector_concat (duplicate ((bit_vector_access fXM (big_int_of_int 6)),(big_int_of_int 4))) (duplicate ((bit_vector_access fXM (big_int_of_int 7)),(big_int_of_int 4)))))))))) in begin
- (set_register cR ((bitwise_or (((bitwise_and ((vector_subrange (vector_access gPR (unsigned
- (rS))) (big_int_of_int 32) (big_int_of_int 63)),!mask)) :
- value),((bitwise_and (cR,(bitwise_not ((!mask : value))))) : value))) :
- value))
- end
- end
-| `Mfcr (rT) ->
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) cR) :
- value)
-| `Mtocrf (rS, fXM) ->
- begin
- let n = ref (big_int_of_int 0) in begin
- let count = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then ((if to_bool((eq (( match (bit_vector_access fXM i) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 1))))
- then begin
- n := i;
- count := (add (!count,(big_int_of_int 1)))
- end
- else ()) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (if to_bool((eq (!count,(big_int_of_int 1))))
- then (set_vector_subrange_bit cR (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 32))) (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 35))) (vector_subrange (vector_access gPR (unsigned
- (rS))) (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 32))) (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 35)))))
- else (set_register cR (to_vec_inc_undef ((big_int_of_int 32)))))
- end
- end
- end
-| `Mfocrf (rT, fXM) ->
- begin
- let n = ref (big_int_of_int 0) in begin
- let count = ref (big_int_of_int 0) in begin
- (let (__stop,__by) = ((big_int_of_int 7) , (big_int_of_int 1)) in
- let rec foreach i = if (i <= __stop) then ((if to_bool((eq (( match (bit_vector_access fXM i) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ),(big_int_of_int 1))))
- then begin
- n := i;
- count := (add (!count,(big_int_of_int 1)))
- end
- else ()) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (if to_bool((eq (!count,(big_int_of_int 1))))
- then begin
- let temp = ref (to_vec_inc_undef ((big_int_of_int 64))) in begin
- (set_vector_subrange_bit !temp (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 32))) (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 35))) (vector_subrange cR (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 32))) (add ((multiply ((big_int_of_int 4),!n)),(big_int_of_int 35)))));
- (get_varray gPR).((unsigned (rT))) <- !temp
- end
- end
- else (get_varray gPR).((unsigned (rT))) <- (to_vec_inc_undef ((big_int_of_int 64))))
- end
- end
- end
-| `Mcrxr (bF) ->
- begin
- (set_vector_subrange_bit cR (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 32))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 4),bF)),(big_int_of_int 35))) (vector_subrange xER (big_int_of_int 32) (big_int_of_int 35)));
- (set_vector_subrange_bit xER (big_int_of_int 32) (big_int_of_int 35) ((Vvector ([|Vzero;Vzero;Vzero;Vzero|], 0, true)) :
- value))
- end
-| `Mtdcrux (rS, rA) ->
- begin
- let dCRN = ref (vector_access gPR (unsigned (rA))) in begin
- (get_varray dCR).((unsigned (!dCRN))) <- (vector_access gPR (unsigned (rS)))
- end
- end
-| `Mfdcrux (rT, rA) ->
- begin
- let dCRN = ref (vector_access gPR (unsigned (rA))) in begin
- (get_varray gPR).((unsigned (rT))) <- (vector_access dCR (unsigned (!dCRN)))
- end
- end
-| `Lfs (fRT, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (dOUBLE ((mEMr (!eA,(big_int_of_int 4)))))
- end
- end
- end
-| `Lfsx (fRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (dOUBLE ((mEMr (!eA,(big_int_of_int 4)))))
- end
- end
- end
-| `Lfsu (fRT, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (dOUBLE ((mEMr (!eA,(big_int_of_int 4)))));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Lfsux (fRT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (dOUBLE ((mEMr (!eA,(big_int_of_int 4)))));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Lfd (fRT, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (mEMr (!eA,(big_int_of_int 8)))
- end
- end
- end
-| `Lfdx (fRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (mEMr (!eA,(big_int_of_int 8)))
- end
- end
- end
-| `Lfdu (fRT, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (mEMr (!eA,(big_int_of_int 8)));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Lfdux (fRT, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- (get_varray fPR).((unsigned (fRT))) <- (mEMr (!eA,(big_int_of_int 8)));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Lfiwax (fRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray fPR).((unsigned (fRT))) <-
- ((EXTS ((big_int_of_int 64),(mEMr (!eA,(big_int_of_int 4))))) : value)
- end
- end
- end
-| `Lfiwzx (fRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray fPR).((unsigned (fRT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr
- (!eA,(big_int_of_int 4)))) :
- value)
- end
- end
- end
-| `Stfs (fRS, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- mEMw(!eA,(big_int_of_int 4),(sINGLE ((vector_access fPR (unsigned (fRS))))))
- end
- end
- end
-| `Stfsx (fRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 4),(sINGLE ((vector_access fPR (unsigned (fRS))))))
- end
- end
- end
-| `Stfsu (fRS, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- mEMw(!eA,(big_int_of_int 4),(sINGLE ((vector_access fPR (unsigned (fRS))))));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Stfsux (fRS, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 4),(sINGLE ((vector_access fPR (unsigned (fRS))))));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Stfd (fRS, rA, d) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(EXTS ((big_int_of_int 64),d)))) : value);
- mEMw(!eA,(big_int_of_int 8),(vector_access fPR (unsigned (fRS))))
- end
- end
- end
-| `Stfdx (fRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 8),(vector_access fPR (unsigned (fRS))))
- end
- end
- end
-| `Stfdu (fRS, rA, d) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA := ((add_vec ((vector_access gPR (unsigned (rA))),(EXTS ((big_int_of_int 64),d)))) : value);
- mEMw(!eA,(big_int_of_int 8),(vector_access fPR (unsigned (fRS))));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Stfdux (fRS, rA, rB) ->
- begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- eA :=
- ((add_vec ((vector_access gPR (unsigned (rA))),(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 8),(vector_access fPR (unsigned (fRS))));
- (get_varray gPR).((unsigned (rA))) <- !eA
- end
- end
-| `Stfiwx (fRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 4),((vector_subrange (vector_access fPR (unsigned (fRS))) (big_int_of_int 32) (big_int_of_int 63)) :
- value))
- end
- end
- end
-| `Lfdp (fRTp, rA, dS) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- (get_varray fPRp).((unsigned (fRTp))) <- (mEMr (!eA,(big_int_of_int 16)))
- end
- end
- end
-| `Lfdpx (fRTp, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray fPRp).((unsigned (fRTp))) <- (mEMr (!eA,(big_int_of_int 16)))
- end
- end
- end
-| `Stfdp (fRSp, rA, dS) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((add_vec (!b,(EXTS
- ((big_int_of_int 64),(vector_concat dS (Vvector ([|Vzero;Vzero|], 0, true))))))) :
- value);
- mEMw(!eA,(big_int_of_int 16),(vector_access fPRp (unsigned (fRSp))))
- end
- end
- end
-| `Stfdpx (fRSp, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(!eA,(big_int_of_int 16),(vector_access fPRp (unsigned (fRSp))))
- end
- end
- end
-| `Fmr (fRT, fRB, rc) -> ()
-| `Fneg (fRT, fRB, rc) -> ()
-| `Fabs (fRT, fRB, rc) -> ()
-| `Fnabs (fRT, fRB, rc) -> ()
-| `Fcpsgn (fRT, fRA, fRB, rc) -> ()
-| `Fadds (fRT, fRA, fRB, rc) -> ()
-| `Fadd (fRT, fRA, fRB, rc) -> ()
-| `Fsubs (fRT, fRA, fRB, rc) -> ()
-| `Fsub (fRT, fRA, fRB, rc) -> ()
-| `Fmuls (fRT, fRA, fRC, rc) -> ()
-| `Fmul (fRT, fRA, fRC, rc) -> ()
-| `Fdivs (fRT, fRA, fRB, rc) -> ()
-| `Fdiv (fRT, fRA, fRB, rc) -> ()
-| `Fsqrts (fRT, fRB, rc) -> ()
-| `Fsqrt (fRT, fRB, rc) -> ()
-| `Fres (fRT, fRB, rc) -> ()
-| `Fre (fRT, fRB, rc) -> ()
-| `Frsqrtes (fRT, fRB, rc) -> ()
-| `Frsqrte (fRT, fRB, rc) -> ()
-| `Ftdiv (bF, fRA, fRB) -> ()
-| `Ftsqrt (bF, fRB) -> ()
-| `Fmadds (fRT, fRA, fRB, fRC, rc) -> ()
-| `Fmadd (fRT, fRA, fRB, fRC, rc) -> ()
-| `Fmsubs (fRT, fRA, fRB, fRC, rc) -> ()
-| `Fmsub (fRT, fRA, fRB, fRC, rc) -> ()
-| `Fnmadds (fRT, fRA, fRB, fRC, rc) -> ()
-| `Fnmadd (fRT, fRA, fRB, fRC, rc) -> ()
-| `Fnmsubs (fRT, fRA, fRB, fRC, rc) -> ()
-| `Fnmsub (fRT, fRA, fRB, fRC, rc) -> ()
-| `Frsp (fRT, fRB, rc) -> ()
-| `Fctid (fRT, fRB, rc) -> ()
-| `Fctidz (fRT, fRB, rc) -> ()
-| `Fctidu (fRT, fRB, rc) -> ()
-| `Fctiduz (fRT, fRB, rc) -> ()
-| `Fctiw (fRT, fRB, rc) -> ()
-| `Fctiwz (fRT, fRB, rc) -> ()
-| `Fctiwu (fRT, fRB, rc) -> ()
-| `Fctiwuz (fRT, fRB, rc) -> ()
-| `Fcfid (fRT, fRB, rc) -> ()
-| `Fcfidu (fRT, fRB, rc) -> ()
-| `Fcfids (fRT, fRB, rc) -> ()
-| `Fcfidus (fRT, fRB, rc) -> ()
-| `Frin (fRT, fRB, rc) -> ()
-| `Frip (fRT, fRB, rc) -> ()
-| `Friz (fRT, fRB, rc) -> ()
-| `Frim (fRT, fRB, rc) -> ()
-| `Fcmpu (bF, fRA, fRB) -> ()
-| `Fcmpo (bF, fRA, fRB) -> ()
-| `Fsel (fRT, fRA, fRB, fRC, rc) -> ()
-| `Mffs (fRT, rc) -> ()
-| `Mcrfs (bF, bFA) -> ()
-| `Mtfsfi (bF, w, u, rc) -> ()
-| `Mtfsf (l, fLM, w, fRB, rc) -> ()
-| `Mtfsb0 (bT, rc) -> ()
-| `Mtfsb1 (bT, rc) -> ()
-| `Daddq (fRTp, fRAp, fRBp, rc) -> ()
-| `Dadd (fRT, fRA, fRB, rc) -> ()
-| `Dsubq (fRTp, fRAp, fRBp, rc) -> ()
-| `Dsub (fRT, fRA, fRB, rc) -> ()
-| `Dmulq (fRTp, fRAp, fRBp, rc) -> ()
-| `Dmul (fRT, fRA, fRB, rc) -> ()
-| `Ddivq (fRTp, fRAp, fRBp, rc) -> ()
-| `Ddiv (fRT, fRA, fRB, rc) -> ()
-| `Dcmpuq (bF, fRAp, fRBp) -> ()
-| `Dcmpu (bF, fRA, fRB) -> ()
-| `Dcmpoq (bF, fRAp, fRBp) -> ()
-| `Dcmpo (bF, fRA, fRB) -> ()
-| `Dtstdcq (bF, fRAp, dCM) -> ()
-| `Dtstdc (bF, fRA, dCM) -> ()
-| `Dtstdgq (bF, fRAp, dGM) -> ()
-| `Dtstdg (bF, fRA, dGM) -> ()
-| `Dtstexq (bF, fRAp, fRBp) -> ()
-| `Dtstex (bF, fRA, fRB) -> ()
-| `Dtstsfq (bF, fRA, fRBp) -> ()
-| `Dtstsf (bF, fRA, fRB) -> ()
-| `Dquaiq (fRTp, tE, fRBp, rMC, rc) -> ()
-| `Dquai (fRT, tE, fRB, rMC, rc) -> ()
-| `Dquaq (fRTp, fRAp, fRBp, rMC, rc) -> ()
-| `Dqua (fRT, fRA, fRB, rMC, rc) -> ()
-| `Drrndq (fRTp, fRA, fRBp, rMC, rc) -> ()
-| `Drrnd (fRT, fRA, fRB, rMC, rc) -> ()
-| `Drintxq (fRTp, r, fRBp, rMC, rc) -> ()
-| `Drintx (fRT, r, fRB, rMC, rc) -> ()
-| `Drintnq (fRTp, r, fRBp, rMC, rc) -> ()
-| `Drintn (fRT, r, fRB, rMC, rc) -> ()
-| `Dctdp (fRT, fRB, rc) -> ()
-| `Dctqpq (fRTp, fRB, rc) -> ()
-| `Drsp (fRT, fRB, rc) -> ()
-| `Drdpq (fRTp, fRBp, rc) -> ()
-| `Dcffix (fRT, fRB, rc) -> ()
-| `Dcffixq (fRTp, fRB, rc) -> ()
-| `Dctfixq (fRT, fRBp, rc) -> ()
-| `Dctfix (fRT, fRB, rc) -> ()
-| `Ddedpdq (fRTp, sP, fRBp, rc) -> ()
-| `Ddedpd (fRT, sP, fRB, rc) -> ()
-| `Denbcdq (fRTp, s, fRBp, rc) -> ()
-| `Denbcd (fRT, s, fRB, rc) -> ()
-| `Dxexq (fRT, fRBp, rc) -> ()
-| `Dxex (fRT, fRB, rc) -> ()
-| `Diexq (fRTp, fRA, fRBp, rc) -> ()
-| `Diex (fRT, fRA, fRB, rc) -> ()
-| `Dscliq (fRTp, fRAp, sH, rc) -> ()
-| `Dscli (fRT, fRA, sH, rc) -> ()
-| `Dscriq (fRTp, fRAp, sH, rc) -> ()
-| `Dscri (fRT, fRA, sH, rc) -> ()
-| `Lvebx (vRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- let eb = ref (vector_subrange !eA (big_int_of_int 60) (big_int_of_int 63)) in begin
- (get_varray vR).((unsigned (vRT))) <- (to_vec_inc_undef ((big_int_of_int 128)));
- (if to_bool((bit_vector_access bigendianmode (big_int_of_int 0)))
- then (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (unsigned
- ((mult_range_vec ((big_int_of_int 8),!eb)))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 8),!eb)),(big_int_of_int 7))) (mEMr
- (!eA,(big_int_of_int 1))))
- else (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (minus_range_vec_range ((big_int_of_int 120),(mult_range_vec ((big_int_of_int 8),!eb)))) (minus_range_vec_range ((big_int_of_int 127),(mult_range_vec ((big_int_of_int 8),!eb)))) (mEMr
- (!eA,(big_int_of_int 1)))))
- end
- end
- end
- end
-| `Lvehx (vRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((bitwise_and ((add_vec (!b,(vector_access gPR (unsigned (rB))))),(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero|], 0, true)))) :
- value);
- let eb = ref (vector_subrange !eA (big_int_of_int 60) (big_int_of_int 63)) in begin
- (get_varray vR).((unsigned (vRT))) <- (to_vec_inc_undef ((big_int_of_int 128)));
- (if to_bool((bit_vector_access bigendianmode (big_int_of_int 0)))
- then (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (unsigned
- ((mult_range_vec ((big_int_of_int 8),!eb)))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 8),!eb)),(big_int_of_int 15))) (mEMr
- (!eA,(big_int_of_int 2))))
- else (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (minus_range_vec_range ((big_int_of_int 112),(mult_range_vec ((big_int_of_int 8),!eb)))) (minus_range_vec_range ((big_int_of_int 127),(mult_range_vec ((big_int_of_int 8),!eb)))) (mEMr
- (!eA,(big_int_of_int 2)))))
- end
- end
- end
- end
-| `Lvewx (vRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((bitwise_and ((add_vec (!b,(vector_access gPR (unsigned (rB))))),(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero|], 0, true)))) :
- value);
- let eb = ref (vector_subrange !eA (big_int_of_int 60) (big_int_of_int 63)) in begin
- (get_varray vR).((unsigned (vRT))) <- (to_vec_inc_undef ((big_int_of_int 128)));
- (if to_bool((bit_vector_access bigendianmode (big_int_of_int 0)))
- then (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (unsigned
- ((mult_range_vec ((big_int_of_int 8),!eb)))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 8),!eb)),(big_int_of_int 31))) (mEMr
- (!eA,(big_int_of_int 4))))
- else (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (minus_range_vec_range ((big_int_of_int 96),(mult_range_vec ((big_int_of_int 8),!eb)))) (minus_range_vec_range ((big_int_of_int 127),(mult_range_vec ((big_int_of_int 8),!eb)))) (mEMr
- (!eA,(big_int_of_int 4)))))
- end
- end
- end
- end
-| `Lvx (vRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray vR).((unsigned (vRT))) <-
- (mEMr
- (((bitwise_and (!eA,(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero|], 0, true)))) :
- value),(big_int_of_int 16)))
- end
- end
- end
-| `Lvxl (vRT, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray vR).((unsigned (vRT))) <-
- (mEMr
- (((bitwise_and (!eA,(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero|], 0, true)))) :
- value),(big_int_of_int 16)));
- (mark_as_not_likely_to_be_needed_again_anytime_soon (!eA))
- end
- end
- end
-| `Stvebx (vRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- let eb = ref (vector_subrange !eA (big_int_of_int 60) (big_int_of_int 63)) in begin
- (if to_bool((bit_vector_access bigendianmode (big_int_of_int 0)))
- then mEMw(!eA,(big_int_of_int 1),((vector_subrange vRS (unsigned
- ((mult_range_vec ((big_int_of_int 8),!eb)))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 8),!eb)),(big_int_of_int 7)))) :
- value))
- else mEMw(!eA,(big_int_of_int 1),((vector_subrange vRS (minus_range_vec_range ((big_int_of_int 120),(mult_range_vec ((big_int_of_int 8),!eb)))) (minus_range_vec_range ((big_int_of_int 127),(mult_range_vec ((big_int_of_int 8),!eb))))) :
- value)))
- end
- end
- end
- end
-| `Stvehx (vRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((bitwise_and ((add_vec (!b,(vector_access gPR (unsigned (rB))))),(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero|], 0, true)))) :
- value);
- let eb = ref (vector_subrange !eA (big_int_of_int 60) (big_int_of_int 63)) in begin
- (if to_bool((bit_vector_access bigendianmode (big_int_of_int 0)))
- then mEMw(!eA,(big_int_of_int 2),((vector_subrange vRS (unsigned
- ((mult_range_vec ((big_int_of_int 8),!eb)))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 8),!eb)),(big_int_of_int 15)))) :
- value))
- else mEMw(!eA,(big_int_of_int 2),((vector_subrange vRS (minus_range_vec_range ((big_int_of_int 112),(mult_range_vec ((big_int_of_int 8),!eb)))) (minus_range_vec_range ((big_int_of_int 127),(mult_range_vec ((big_int_of_int 8),!eb))))) :
- value)))
- end
- end
- end
- end
-| `Stvewx (vRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA :=
- ((bitwise_and ((add_vec (!b,(vector_access gPR (unsigned (rB))))),(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero|], 0, true)))) :
- value);
- let eb = ref (vector_subrange !eA (big_int_of_int 60) (big_int_of_int 63)) in begin
- (if to_bool((bit_vector_access bigendianmode (big_int_of_int 0)))
- then mEMw(!eA,(big_int_of_int 4),((vector_subrange vRS (unsigned
- ((mult_range_vec ((big_int_of_int 8),!eb)))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 8),!eb)),(big_int_of_int 31)))) :
- value))
- else mEMw(!eA,(big_int_of_int 4),((vector_subrange vRS (minus_range_vec_range ((big_int_of_int 96),(mult_range_vec ((big_int_of_int 8),!eb)))) (minus_range_vec_range ((big_int_of_int 127),(mult_range_vec ((big_int_of_int 8),!eb))))) :
- value)))
- end
- end
- end
- end
-| `Stvx (vRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(((bitwise_and (!eA,(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero|], 0, true)))) :
- value),(big_int_of_int 16),(vector_access vR (unsigned (vRS))))
- end
- end
- end
-| `Stvxl (vRS, rA, rB) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- mEMw(((bitwise_and (!eA,(Vvector ([|Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vone;Vzero;Vzero;Vzero;Vzero|], 0, true)))) :
- value),(big_int_of_int 16),(vector_access vR (unsigned (vRS))));
- (mark_as_not_likely_to_be_needed_again_anytime_soon (!eA))
- end
- end
- end
-| `Lvsl (vRT, rA, rB) -> ()
-| `Lvsr (vRT, rA, rB) -> ()
-| `Vpkpx (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (get_barray (get_varray vR).((unsigned (vRT)))).(i) <-
- (bit_vector_access (vector_access vR (unsigned (vRA))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 7))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 1))) (add (i,(big_int_of_int 5))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 12)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 6))) (add (i,(big_int_of_int 10))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 20)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 11))) (add (i,(big_int_of_int 15))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 24))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 28)))));
- (get_barray (get_varray vR).((unsigned (vRT)))).((add (i,(big_int_of_int 64)))) <-
- (bit_vector_access (vector_access vR (unsigned (vRB))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 7))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 65))) (add (i,(big_int_of_int 69))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 12)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 70))) (add (i,(big_int_of_int 74))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 20)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 75))) (add (i,(big_int_of_int 79))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 24))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 28)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkshss (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (clamp
- (_'nv19531,(unsigned
- ((EXTS
- (_'nv19567,(vector_subrange (vector_access vR (unsigned (vRA))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))))))),(minus ((big_int_of_int 0),(big_int_of_int 128))),(big_int_of_int 127))) (big_int_of_int 24) (big_int_of_int 31)));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 71))) (vector_subrange (clamp
- (_'nv19825,(unsigned
- ((EXTS
- (_'nv19861,(vector_subrange (vector_access vR (unsigned (vRB))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))))))),(minus ((big_int_of_int 0),(big_int_of_int 128))),(big_int_of_int 127))) (big_int_of_int 24) (big_int_of_int 31)))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkshus (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (clamp
- (_'nv20094,(unsigned
- ((EXTS
- (_'nv20104,(vector_subrange (vector_access vR (unsigned (vRA))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))))))),(big_int_of_int 0),(big_int_of_int 255))) (big_int_of_int 24) (big_int_of_int 31)));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 71))) (vector_subrange (clamp
- (_'nv20336,(unsigned
- ((EXTS
- (_'nv20346,(vector_subrange (vector_access vR (unsigned (vRB))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))))))),(big_int_of_int 0),(big_int_of_int 255))) (big_int_of_int 24) (big_int_of_int 31)))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkswss (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (clamp
- (_'nv20553,(unsigned
- ((EXTS
- (_'nv20615,(vector_subrange (vector_access vR (unsigned (vRA))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))))))),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 79))) (vector_subrange (clamp
- (_'nv20899,(unsigned
- ((EXTS
- (_'nv20961,(vector_subrange (vector_access vR (unsigned (vRB))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))))))),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkswus (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (clamp
- (_'nv21220,(unsigned
- ((EXTS
- (_'nv21256,(vector_subrange (vector_access vR (unsigned (vRA))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))))))),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 79))) (vector_subrange (clamp
- (_'nv21514,(unsigned
- ((EXTS
- (_'nv21550,(vector_subrange (vector_access vR (unsigned (vRB))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))))))),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkuhum (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 71))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkuhus (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (clamp
- (_'nv22122,(unsigned
- ((EXTZ
- (_'nv22132,(vector_subrange (vector_access vR (unsigned (vRA))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))))))),(big_int_of_int 0),(big_int_of_int 255))) (big_int_of_int 24) (big_int_of_int 31)));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 71))) (vector_subrange (clamp
- (_'nv22364,(unsigned
- ((EXTZ
- (_'nv22374,(vector_subrange (vector_access vR (unsigned (vRB))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15)))))))),(big_int_of_int 0),(big_int_of_int 255))) (big_int_of_int 24) (big_int_of_int 31)))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkuwum (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 79))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vpkuwus (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (clamp
- (_'nv22920,(unsigned
- ((EXTZ
- (_'nv22956,(vector_subrange (vector_access vR (unsigned (vRA))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))))))),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 79))) (vector_subrange (clamp
- (_'nv23214,(unsigned
- ((EXTZ
- (_'nv23250,(vector_subrange (vector_access vR (unsigned (vRB))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31)))))))),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vupkhpx (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 7))) (EXTS
- ((add ((add ((add ((multiply (_'nv23511,_'nv23510)),_'nv23483)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(multiply (_'nv23455,_'nv23454)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) i i))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (EXTZ
- ((add ((add ((add ((multiply (_'nv23641,_'nv23640)),_'nv23613)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(add ((multiply (_'nv23585,_'nv23584)),_'nv23557)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 1))) (add (i,(big_int_of_int 5)))))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 23))) (EXTZ
- ((add ((add ((add ((multiply (_'nv23827,_'nv23826)),_'nv23799)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(add ((multiply (_'nv23771,_'nv23770)),_'nv23743)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 6))) (add (i,(big_int_of_int 10)))))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 24))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (EXTZ
- ((add ((add ((add ((multiply (_'nv24013,_'nv24012)),_'nv23985)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(add ((multiply (_'nv23957,_'nv23956)),_'nv23929)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 11))) (add (i,(big_int_of_int 15)))))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vupkhsb (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (EXTS
- ((add ((add ((add ((multiply (_'nv24160,_'nv24159)),_'nv24132)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(multiply (_'nv24104,_'nv24103)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) i (add (i,(big_int_of_int 7))))))) ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vupkhsh (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (EXTS
- ((add ((add ((add ((multiply (_'nv24279,_'nv24278)),_'nv24251)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(multiply (_'nv24223,_'nv24222)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) i (add (i,(big_int_of_int 15))))))) ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vupklpx (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 7))) (EXTS
- ((add ((add ((add ((multiply (_'nv24398,_'nv24397)),_'nv24370)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(multiply (_'nv24342,_'nv24341)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 64)))))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (EXTZ
- ((add ((add ((add ((multiply (_'nv24584,_'nv24583)),_'nv24556)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(add ((multiply (_'nv24528,_'nv24527)),_'nv24500)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 65))) (add (i,(big_int_of_int 69)))))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 23))) (EXTZ
- ((add ((add ((add ((multiply (_'nv24770,_'nv24769)),_'nv24742)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(add ((multiply (_'nv24714,_'nv24713)),_'nv24686)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 70))) (add (i,(big_int_of_int 74)))))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 24))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (EXTZ
- ((add ((add ((add ((multiply (_'nv24956,_'nv24955)),_'nv24928)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(add ((multiply (_'nv24900,_'nv24899)),_'nv24872)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 75))) (add (i,(big_int_of_int 79)))))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vupklsb (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (EXTS
- ((add ((add ((add ((multiply (_'nv25103,_'nv25102)),_'nv25075)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(multiply (_'nv25047,_'nv25046)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 71))))))) ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vupklsh (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (EXTS
- ((add ((add ((add ((multiply (_'nv25250,_'nv25249)),_'nv25222)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(multiply (_'nv25194,_'nv25193)))))),(vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 79))))))) ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmrghb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 7))) (vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 7)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (vector_subrange (vector_access vR (unsigned
- (vRB))) i (add (i,(big_int_of_int 7)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmrghh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 15)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (vector_subrange (vector_access vR (unsigned
- (vRB))) i (add (i,(big_int_of_int 15)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmrghw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 31)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 32))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 63))) (vector_subrange (vector_access vR (unsigned
- (vRB))) i (add (i,(big_int_of_int 31)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmrglb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 7))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 71)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 8))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 71)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmrglh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 15))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 79)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 16))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 79)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmrglw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (multiply (i,(big_int_of_int 2))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 31))) (vector_subrange (vector_access vR (unsigned
- (vRA))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 95)))));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 32))) (add ((multiply (i,(big_int_of_int 2))),(big_int_of_int 63))) (vector_subrange (vector_access vR (unsigned
- (vRB))) (add (i,(big_int_of_int 64))) (add (i,(big_int_of_int 95)))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vspltb (vRT, uIM, vRB) ->
- begin
- let b = ref (vector_concat uIM (Vvector ([|Vzero;Vzero;Vzero|], 0, true))) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (vector_access vR (unsigned (vRB))) (unsigned
- (!b)) (add_vec_range_range (!b,(big_int_of_int 7))))) ;foreach(i + __by)) in foreach (big_int_of_int 0))
- end
- end
-| `Vsplth (vRT, uIM, vRB) ->
- begin
- let b = ref (vector_concat uIM (Vvector ([|Vzero;Vzero;Vzero;Vzero|], 0, true))) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (vector_access vR (unsigned (vRB))) (unsigned
- (!b)) (add_vec_range_range (!b,(big_int_of_int 15))))) ;foreach(i + __by)) in foreach (big_int_of_int 0))
- end
- end
-| `Vspltw (vRT, uIM, vRB) ->
- begin
- let b = ref (vector_concat uIM (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true))) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (vector_subrange (vector_access vR (unsigned (vRB))) (unsigned
- (!b)) (add_vec_range_range (!b,(big_int_of_int 31))))) ;foreach(i + __by)) in foreach (big_int_of_int 0))
- end
- end
-| `Vspltisb (vRT, sIM) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 7))) (eXTS_EXPLICIT (sIM,(big_int_of_int 8)))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vspltish (vRT, sIM) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 15))) (eXTS_EXPLICIT (sIM,(big_int_of_int 16)))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vspltisw (vRT, sIM) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (eXTS_EXPLICIT (sIM,(big_int_of_int 32)))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vperm (vRT, vRA, vRB, vRC) ->
- begin
- let temp = ref ((vector_concat (vector_access vR (unsigned (vRA))) (vector_access vR (unsigned
- (vRB)))) :
- value) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let b = ref (vector_concat (vector_subrange (vector_access vR (unsigned (vRC))) (add (i,(big_int_of_int 3))) (add (i,(big_int_of_int 7)))) (Vvector ([|Vzero;Vzero;Vzero|], 0, true))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange !temp (unsigned
- (!b)) (add_vec_range_range (!b,(big_int_of_int 7)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
- end
- end
-| `Vsel (vRT, vRA, vRB, vRC) -> ()
-| `Vsl (vRT, vRA, vRB) ->
- begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 125) (big_int_of_int 127)) in begin
- let t = ref (big_int_of_int 1) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (t :=
- ( match (bitwise_and_bit ((if to_bool((is_one (!t)))
- then Vone
- else Vzero),(eq (((vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 5))) (add (i,(big_int_of_int 7)))) :
- value),!sh)))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (if to_bool((eq (!t,(big_int_of_int 1))))
- then (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_leftshift ((vector_access vR (unsigned (vRA))),(unsigned (!sh)))) : value)
- else (get_varray vR).((unsigned (vRT))) <- (to_vec_inc_undef ((big_int_of_int 128))))
- end
- end
- end
-| `Vsldoi (vRT, vRA, vRB, sHB) ->
- (get_varray vR).((unsigned (vRT))) <-
- ((vector_subrange (vector_concat (vector_access vR (unsigned (vRA))) (vector_access vR (unsigned
- (vRB)))) (unsigned ((mult_range_vec ((big_int_of_int 8),sHB)))) (add_vec_range_range ((mult_range_vec ((big_int_of_int 8),sHB)),(big_int_of_int 127)))) :
- value)
-| `Vslo (vRT, vRA, vRB) ->
- begin
- let shb = ref (vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 121) (big_int_of_int 124)) in begin
- (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_leftshift ((vector_access vR (unsigned (vRA))),(unsigned
- ((vector_concat !shb (Vvector ([|Vzero;Vzero;Vzero|], 0, true))))))) :
- value)
- end
- end
-| `Vsr (vRT, vRA, vRB) ->
- begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 125) (big_int_of_int 127)) in begin
- let t = ref (big_int_of_int 1) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (t :=
- ( match (bitwise_and_bit ((if to_bool((is_one (!t)))
- then Vone
- else Vzero),(eq (((vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 5))) (add (i,(big_int_of_int 7)))) :
- value),!sh)))) with
- | Vzero -> (big_int_of_int 0)
- | Vone -> (big_int_of_int 1)
- ) ;foreach(i + __by)) in foreach (big_int_of_int 0));
- (if to_bool((eq (!t,(big_int_of_int 1))))
- then (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_rightshift ((vector_access vR (unsigned (vRA))),(unsigned (!sh)))) : value)
- else (get_varray vR).((unsigned (vRT))) <- (to_vec_inc_undef ((big_int_of_int 128))))
- end
- end
- end
-| `Vsro (vRT, vRA, vRB) ->
- begin
- let shb = ref (vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 121) (big_int_of_int 124)) in begin
- (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_rightshift ((vector_access vR (unsigned (vRA))),(unsigned
- ((vector_concat !shb (Vvector ([|Vzero;Vzero;Vzero|], 0, true))))))) :
- value)
- end
- end
-| `Vaddcuw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- (_'nv28481,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTZ
- (_'nv28481,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- (((bitwise_rightshift ((add_vec (!aop,!bop)),(big_int_of_int 32))) : value),(big_int_of_int 1))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vaddsbs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS (_'nv28661,(vector_subrange vRA i (add (i,(big_int_of_int 7)))))) in begin
- let bop = ref (EXTS (_'nv28661,(vector_subrange vRB i (add (i,(big_int_of_int 7)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (clamp
- (_'nv28621,(add_vec_vec_range (!aop,!bop)),(minus ((big_int_of_int 0),(big_int_of_int 128))),(big_int_of_int 127))) (big_int_of_int 24) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vaddshs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- (_'nv28870,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTS
- (_'nv28870,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (clamp
- (_'nv28804,(add_vec_vec_range (!aop,!bop)),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vaddsws (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- (_'nv29074,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTS
- (_'nv29074,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv28985,_'nv28984)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv28983)))),(add_vec_vec_range (!aop,!bop)),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vaddubm (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- (_'nv29217,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))) in begin
- let bop = ref (EXTZ
- (_'nv29217,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (chop
- (((add_vec (!aop,!bop)) : value),(big_int_of_int 8))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vadduhm (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- (_'nv29367,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTZ
- (_'nv29367,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- (((add_vec (!aop,!bop)) : value),(big_int_of_int 16))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vadduwm (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- (_'nv29517,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTZ
- (_'nv29517,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- (((add_vec (!aop,!bop)) : value),(big_int_of_int 32))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vaddubs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- (_'nv29681,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))) in begin
- let bop = ref (EXTZ
- (_'nv29681,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (clamp
- (_'nv29667,(add_vec_vec_range (!aop,!bop)),(big_int_of_int 0),(big_int_of_int 255))) (big_int_of_int 24) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vadduhs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- (_'nv29864,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTZ
- (_'nv29864,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (clamp
- (_'nv29824,(add_vec_vec_range (!aop,!bop)),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vadduws (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- (_'nv30042,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTZ
- (_'nv30042,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv29979,_'nv29978)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv29977)))),(add_vec_vec_range (!aop,!bop)),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsubcuw (vRT, vRA, vRB) ->
- begin
- let temp = ref (to_vec_inc ((big_int_of_int 32),(big_int_of_int 0))) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))) in begin
- let bop = ref (vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))) in begin
- temp :=
- ((bitwise_rightshift ((add_vec_range (((add_vec ((EXTZ ((big_int_of_int 32),!aop)),(EXTZ
- ((big_int_of_int 32),(bitwise_not (!bop)))))) :
- value),(big_int_of_int 1))),(big_int_of_int 32))) :
- value);
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (bitwise_and (!temp,(Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vone|], 0, true)))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
- end
- end
-| `Vsubsbs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))) in begin
- let bop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (clamp
- (_'nv30430,(add_vec_range_range (((add_vec (!aop,(bitwise_not (!bop)))) : value),(big_int_of_int 1))),(minus ((big_int_of_int 0),(big_int_of_int 128))),(big_int_of_int 127))) (big_int_of_int 24) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsubshs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (clamp
- (_'nv30681,(add_vec_range_range (((add_vec (!aop,(bitwise_not (!bop)))) : value),(big_int_of_int 1))),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsubsws (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv30930,_'nv30929)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv30928)))),(add_vec_range_range (((add_vec (!aop,(bitwise_not
- (!bop)))) :
- value),(big_int_of_int 1))),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsububm (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (chop
- (((add_vec_range (((add_vec (!aop,(bitwise_not (!bop)))) : value),(big_int_of_int 1))) :
- value),(big_int_of_int 8))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsubuhm (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 16))) (chop
- (((add_vec_range (((add_vec (!aop,(bitwise_not (!bop)))) : value),(big_int_of_int 1))) :
- value),(big_int_of_int 16))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsubuwm (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 64),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 64),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- (((add_vec_range (((add_vec (!aop,(bitwise_not (!bop)))) : value),(big_int_of_int 1))) :
- value),(big_int_of_int 32))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsububs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (vector_subrange (clamp
- (_'nv31884,(add_vec_range_range (((add_vec (!aop,(bitwise_not (!bop)))) : value),(big_int_of_int 1))),(big_int_of_int 0),(big_int_of_int 255))) (big_int_of_int 24) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsubuhs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (vector_subrange (clamp
- (_'nv32109,(add_vec_range_range (((add_vec (!aop,(bitwise_not (!bop)))) : value),(big_int_of_int 1))),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) (big_int_of_int 16) (big_int_of_int 31)))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsubuws (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 64),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 64),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv32332,_'nv32331)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv32330)))),(add_vec_range_range (((add_vec (!aop,(bitwise_not
- (!bop)))) :
- value),(big_int_of_int 1))),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmulesb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTS
- (_'nv32577,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))),(EXTS
- (_'nv32577,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- ((!prod : value),(big_int_of_int 16))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmulesh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTS
- (_'nv32799,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))),(EXTS
- (_'nv32799,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- ((!prod : value),(big_int_of_int 32))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmuleub (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTZ
- (_'nv33021,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))),(EXTZ
- (_'nv33021,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- ((!prod : value),(big_int_of_int 16))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmuleuh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTZ
- (_'nv33243,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))),(EXTZ
- (_'nv33243,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- ((!prod : value),(big_int_of_int 32))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmulosb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTS
- (_'nv33521,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,(big_int_of_int 8))) (add (i,(big_int_of_int 15)))))),(EXTS
- (_'nv33521,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 8))) (add (i,(big_int_of_int 15)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- ((!prod : value),(big_int_of_int 16))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmulosh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTS
- (_'nv33855,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,(big_int_of_int 16))) (add (i,(big_int_of_int 31)))))),(EXTS
- (_'nv33855,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 16))) (add (i,(big_int_of_int 31)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- ((!prod : value),(big_int_of_int 32))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmuloub (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTZ
- (_'nv34189,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,(big_int_of_int 8))) (add (i,(big_int_of_int 15)))))),(EXTZ
- (_'nv34189,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 8))) (add (i,(big_int_of_int 15)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- ((!prod : value),(big_int_of_int 16))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmulouh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTZ
- (_'nv34523,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,(big_int_of_int 16))) (add (i,(big_int_of_int 31)))))),(EXTZ
- (_'nv34523,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 16))) (add (i,(big_int_of_int 31)))))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- ((!prod : value),(big_int_of_int 32))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmhaddshs (vRT, vRA, vRB, vRC) -> ()
-| `Vmhraddshs (vRT, vRA, vRB, vRC) -> ()
-| `Vmladduhm (vRT, vRA, vRB, vRC) ->
- begin
- let prod = ref (to_vec_inc ((big_int_of_int 16),(big_int_of_int 0))) in begin
- let sum = ref (to_vec_inc ((big_int_of_int 16),(big_int_of_int 0))) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- prod :=
- ((multiply_vec ((EXTZ
- (_'nv34801,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))),(EXTZ
- (_'nv34801,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))))) :
- value);
- sum :=
- ((add_vec ((chop (!prod,(big_int_of_int 16))),(vector_subrange (vector_access vR (unsigned
- (vRC))) i (add (i,(big_int_of_int 15)))))) :
- value);
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- (!sum,(big_int_of_int 16))))
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
- end
- end
- end
-| `Vmsumubm (vRT, vRA, vRB, vRC) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTZ
- ((multiply ((big_int_of_int 2),_'nv35347)),(vector_subrange (vector_access vR (unsigned (vRC))) i (add (i,(big_int_of_int 31)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 8)) in
- let rec foreach j = if (j <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTZ
- (_'nv35347,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 7)))))),(EXTZ
- (_'nv35347,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 7)))))))) in begin
- temp := (add_vec (!temp,!prod))
- end
- end ;foreach(j + __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- ((!temp : value),(big_int_of_int 32))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmsummbm (vRT, vRA, vRB, vRC) -> ()
-| `Vmsumshm (vRT, vRA, vRB, vRC) -> ()
-| `Vmsumshs (vRT, vRA, vRB, vRC) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTS
- ((multiply ((big_int_of_int 2),_'nv35979)),(vector_subrange (vector_access vR (unsigned (vRC))) i (add (i,(big_int_of_int 31)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 16)) in
- let rec foreach j = if (j <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTS
- (_'nv35979,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 15)))))),(EXTS
- (_'nv35979,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 15)))))))) in begin
- temp := (add_vec (!temp,!prod))
- end
- end ;foreach(j + __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv36276,_'nv36275)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv36274)))),(unsigned
- (!temp)),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmsumuhm (vRT, vRA, vRB, vRC) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTZ
- ((multiply ((big_int_of_int 2),_'nv36665)),(vector_subrange (vector_access vR (unsigned (vRC))) i (add (i,(big_int_of_int 31)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 16)) in
- let rec foreach j = if (j <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTZ
- (_'nv36665,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 15)))))),(EXTZ
- (_'nv36665,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 15)))))))) in begin
- temp := (add_vec (!temp,!prod))
- end
- end ;foreach(j + __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- ((!temp : value),(big_int_of_int 32))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmsumuhs (vRT, vRA, vRB, vRC) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTZ
- ((multiply ((big_int_of_int 2),_'nv37297)),(vector_subrange (vector_access vR (unsigned (vRC))) i (add (i,(big_int_of_int 31)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 16)) in
- let rec foreach j = if (j <= __stop) then (begin
- let prod = ref (multiply_vec ((EXTZ
- (_'nv37297,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 15)))))),(EXTZ
- (_'nv37297,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 15)))))))) in begin
- temp := (add_vec (!temp,!prod))
- end
- end ;foreach(j + __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv37594,_'nv37593)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv37592)))),(unsigned
- (!temp)),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsumsws (vRT, vRA, vRB) ->
- begin
- let temp = ref (EXTS
- (_'nv37715,(vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 96) (big_int_of_int 127)))) in begin
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (temp :=
- (add_vec (!temp,(EXTS
- (_'nv37715,(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (big_int_of_int 0) (big_int_of_int 31) (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (big_int_of_int 32) (big_int_of_int 63) ((Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) :
- value));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (big_int_of_int 64) (big_int_of_int 95) ((Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) :
- value));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) (big_int_of_int 96) (big_int_of_int 127) ((clamp
- ((add ((add ((big_int_of_int 127),(big_int_of_int 1))),(multiply ((big_int_of_int -1),(big_int_of_int 96))))),(unsigned
- (!temp)),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))) :
- value))
- end
- end
-| `Vsum2sws (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 64)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTS
- (_'nv38058,(vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 32))) (add (i,(big_int_of_int 63)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 63) , (big_int_of_int 32)) in
- let rec foreach j = if (j <= __stop) then (temp :=
- (add_vec (!temp,(EXTS
- (_'nv38058,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 31)))))))) ;foreach(j +
- __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 63))) (vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (clamp
- (_'nv38244,(unsigned (!temp)),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1)))))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsum4sbs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTS
- (_'nv38480,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 8)) in
- let rec foreach j = if (j <= __stop) then (temp :=
- (add_vec (!temp,(EXTS
- (_'nv38480,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 7)))))))) ;foreach(j +
- __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv38636,_'nv38635)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv38634)))),(unsigned
- (!temp)),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsum4shs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTS
- (_'nv38898,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 16)) in
- let rec foreach j = if (j <= __stop) then (temp :=
- (add_vec (!temp,(EXTS
- (_'nv38898,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 15)))))))) ;foreach(j +
- __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv39054,_'nv39053)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv39052)))),(unsigned
- (!temp)),(minus_range_vec_range ((big_int_of_int 0),(Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)))),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsum4ubs (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let temp = ref (EXTZ
- (_'nv39316,(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (let (__stop,__by) = ((big_int_of_int 31) , (big_int_of_int 8)) in
- let rec foreach j = if (j <= __stop) then (temp :=
- (add_vec (!temp,(EXTZ
- (_'nv39316,(vector_subrange (vector_access vR (unsigned (vRA))) (add (i,j)) (add ((add (i,j)),(big_int_of_int 7)))))))) ;foreach(j +
- __by)) in foreach (big_int_of_int 0));
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (clamp
- ((add ((add ((add (_'nv39472,_'nv39471)),(big_int_of_int 1))),(multiply ((big_int_of_int -1),_'nv39470)))),(unsigned
- (!temp)),(big_int_of_int 0),(minus_vec_range_range ((Vvector ([|Vone;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)),(big_int_of_int 1))))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vavgsb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 7)))))) in begin
- let bop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 7)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (chop
- (((bitwise_rightshift ((add_vec_range (((add_vec (!aop,!bop)) : value),(big_int_of_int 1))),(big_int_of_int 1))) :
- value),(big_int_of_int 8))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vavgsh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- (((bitwise_rightshift ((add_vec_range (((add_vec (!aop,!bop)) : value),(big_int_of_int 1))),(big_int_of_int 1))) :
- value),(big_int_of_int 16))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vavgsw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTS
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- (((bitwise_rightshift ((add_vec_range (((add_vec (!aop,!bop)) : value),(big_int_of_int 1))),(big_int_of_int 1))) :
- value),(big_int_of_int 32))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vavgub (vRT, vRA, vRB) -> ()
-| `Vavguh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 15)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 15)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (chop
- (((bitwise_rightshift ((add_vec_range (((add_vec (!aop,!bop)) : value),(big_int_of_int 1))),(big_int_of_int 1))) :
- value),(big_int_of_int 16))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vavguw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let aop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRA))) i (add (i,(big_int_of_int 31)))))) in begin
- let bop = ref (EXTZ
- ((big_int_of_int 32),(vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (chop
- (((bitwise_rightshift ((add_vec_range (((add_vec (!aop,!bop)) : value),(big_int_of_int 1))),(big_int_of_int 1))) :
- value),(big_int_of_int 32))))
- end
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vmaxsb (vRT, vRA, vRB) -> ()
-| `Vmaxsh (vRT, vRA, vRB) -> ()
-| `Vmaxsw (vRT, vRA, vRB) -> ()
-| `Vmaxub (vRT, vRA, vRB) -> ()
-| `Vmaxuh (vRT, vRA, vRB) -> ()
-| `Vmaxuw (vRT, vRA, vRB) -> ()
-| `Vminsb (vRT, vRA, vRB) -> ()
-| `Vminsh (vRT, vRA, vRB) -> ()
-| `Vminsw (vRT, vRA, vRB) -> ()
-| `Vminub (vRT, vRA, vRB) -> ()
-| `Vminuh (vRT, vRA, vRB) -> ()
-| `Vminuw (vRT, vRA, vRB) -> ()
-| `Vcmpequb (vRT, vRA, vRB, rc) -> ()
-| `Vcmpequh (vRT, vRA, vRB, rc) -> ()
-| `Vcmpequw (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgtsb (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgtsh (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgtsw (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgtub (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgtuh (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgtuw (vRT, vRA, vRB, rc) -> ()
-| `Vand (vRT, vRA, vRB) ->
- (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_and ((vector_access vR (unsigned (vRA))),(vector_access vR (unsigned (vRB))))) : value)
-| `Vandc (vRT, vRA, vRB) ->
- (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_and ((vector_access vR (unsigned (vRA))),(bitwise_not
- ((vector_access vR (unsigned (vRB))))))) :
- value)
-| `Vnor (vRT, vRA, vRB) ->
- (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_not
- ((bitwise_or ((vector_access vR (unsigned (vRA))),(vector_access vR (unsigned (vRB))))))) :
- value)
-| `Vor (vRT, vRA, vRB) ->
- (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_or ((vector_access vR (unsigned (vRA))),(vector_access vR (unsigned (vRB))))) : value)
-| `Vxor (vRT, vRA, vRB) ->
- (get_varray vR).((unsigned (vRT))) <-
- ((bitwise_xor ((vector_access vR (unsigned (vRA))),(vector_access vR (unsigned (vRB))))) : value)
-| `Vrlb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 5))) (add (i,(big_int_of_int 7)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (bitwise_leftshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 7)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vrlh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 12))) (add (i,(big_int_of_int 15)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (bitwise_leftshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 15)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vrlw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 27))) (add (i,(big_int_of_int 31)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (bitwise_leftshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 31)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vslb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 5))) (add (i,(big_int_of_int 7)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (bitwise_leftshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 7)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vslh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 12))) (add (i,(big_int_of_int 15)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (bitwise_leftshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 15)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vslw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 27))) (add (i,(big_int_of_int 31)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (bitwise_leftshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 31)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsrb (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 8)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 5))) (add (i,(big_int_of_int 7)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 7))) (bitwise_rightshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 7)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsrh (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 16)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 12))) (add (i,(big_int_of_int 15)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 15))) (bitwise_rightshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 15)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsrw (vRT, vRA, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then (begin
- let sh = ref (vector_subrange (vector_access vR (unsigned (vRB))) (add (i,(big_int_of_int 27))) (add (i,(big_int_of_int 31)))) in begin
- (set_vector_subrange_bit (get_varray vR).((unsigned (vRT))) i (add (i,(big_int_of_int 31))) (bitwise_rightshift ((vector_subrange (vector_access vR (unsigned
- (vRA))) i (add (i,(big_int_of_int 31)))),(unsigned (!sh)))))
- end
- end ;foreach(i + __by)) in foreach (big_int_of_int 0))
-| `Vsrab (vRT, vRA, vRB) -> ()
-| `Vsrah (vRT, vRA, vRB) -> ()
-| `Vsraw (vRT, vRA, vRB) -> ()
-| `Vaddfp (vRT, vRA, vRB) -> ()
-| `Vsubfp (vRT, vRA, vRB) -> ()
-| `Vmaddfp (vRT, vRA, vRB, vRC) -> ()
-| `Vnmsubfp (vRT, vRA, vRB, vRC) -> ()
-| `Vmaxfp (vRT, vRA, vRB) -> ()
-| `Vminfp (vRT, vRA, vRB) -> ()
-| `Vctsxs (vRT, uIM, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (convertSPtoSXWsaturate
- (((vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))) : value),uIM))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vctuxs (vRT, uIM, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (convertSPtoUXWsaturate
- (((vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))) : value),uIM))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vcfsx (vRT, uIM, vRB) -> ()
-| `Vcfux (vRT, uIM, vRB) -> ()
-| `Vrfim (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (big_int_of_int 0) (big_int_of_int 31) (roundToSPIntFloor
- ((vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 0) (big_int_of_int 31))))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vrfin (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (big_int_of_int 0) (big_int_of_int 31) (roundToSPIntNear
- ((vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 0) (big_int_of_int 31))))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vrfip (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (big_int_of_int 0) (big_int_of_int 31) (roundToSPIntCeil
- ((vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 0) (big_int_of_int 31))))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vrfiz (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) (big_int_of_int 0) (big_int_of_int 31) (roundToSPIntTrunc
- ((vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 0) (big_int_of_int 31))))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vcmpbfp (vRT, vRA, vRB, rc) -> ()
-| `Vcmpeqfp (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgefp (vRT, vRA, vRB, rc) -> ()
-| `Vcmpgtfp (vRT, vRA, vRB, rc) -> ()
-| `Vexptefp (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (power2EstimateSP
- (((vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))) : value)))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vlogefp (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (logBase2EstimateSP
- (((vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))) : value)))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vrefp (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (reciprocalEstimateSP
- (((vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))) : value)))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Vrsqrtefp (vRT, vRB) ->
- (let (__stop,__by) = ((big_int_of_int 127) , (big_int_of_int 32)) in
- let rec foreach i = if (i <= __stop) then ((set_vector_subrange_bit (get_varray vR).((unsigned
- (vRT))) i (add (i,(big_int_of_int 31))) (reciprocalSquareRootEstimateSP
- (((vector_subrange (vector_access vR (unsigned (vRB))) i (add (i,(big_int_of_int 31)))) : value)))) ;foreach(i +
- __by)) in foreach (big_int_of_int 0))
-| `Mtvscr (vRB) ->
- (set_register vSCR (vector_subrange (vector_access vR (unsigned (vRB))) (big_int_of_int 96) (big_int_of_int 127)))
-| `Mfvscr (vRT) ->
- (get_varray vR).((unsigned (vRT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) vSCR) :
- value)
-| `Lxsdx (t, rA, rB, tX) -> ()
-| `Lxvd2x (t, rA, rB, tX) -> ()
-| `Lxvdsx (t, rA, rB, tX) -> ()
-| `Lxvw4x (t, rA, rB, tX) -> ()
-| `Stxsdx (s, rA, rB, sX) -> ()
-| `Stxvd2x (s, rA, rB, sX) -> ()
-| `Stxvw4x (s, rA, rB, sX) -> ()
-| `Xsabsdp (t, b, bX, tX) -> ()
-| `Xsadddp (t, a, b, aX, bX, tX) -> ()
-| `Xscmpodp (bF, a, b, aX, bX) -> ()
-| `Xscmpudp (bF, a, b, aX, bX) -> ()
-| `Xscpsgndp (t, a, b, aX, bX, tX) -> ()
-| `Xscvdpsp (t, b, bX, tX) -> ()
-| `Xscvdpsxds (t, b, bX, tX) -> ()
-| `Xscvdpsxws (t, b, bX, tX) -> ()
-| `Xscvdpuxds (t, b, bX, tX) -> ()
-| `Xscvdpuxws (t, b, bX, tX) -> ()
-| `Xscvspdp (t, b, bX, tX) -> ()
-| `Xscvsxddp (t, b, bX, tX) -> ()
-| `Xscvuxddp (t, b, bX, tX) -> ()
-| `Xsdivdp (t, a, b, aX, bX, tX) -> ()
-| `Xsmaddmdp (t, a, b, aX, bX, tX) -> ()
-| `Xsmaddadp (t, a, b, aX, bX, tX) -> ()
-| `Xsmaxdp (t, a, b, aX, bX, tX) -> ()
-| `Xsmindp (t, a, b, aX, bX, tX) -> ()
-| `Xsmsubmdp (t, a, b, aX, bX, tX) -> ()
-| `Xsmsubadp (t, a, b, aX, bX, tX) -> ()
-| `Xsmuldp (t, a, b, aX, bX, tX) -> ()
-| `Xsnabsdp (t, b, bX, tX) -> ()
-| `Xsnegdp (t, b, bX, tX) -> ()
-| `Xsnmaddmdp (t, a, b, aX, bX, tX) -> ()
-| `Xsnmaddadp (t, a, b, aX, bX, tX) -> ()
-| `Xsnmsubmdp (t, a, b, aX, bX, tX) -> ()
-| `Xsnmsubadp (t, a, b, aX, bX, tX) -> ()
-| `Xsrdpi (t, b, bX, tX) -> ()
-| `Xsrdpic (t, b, bX, tX) -> ()
-| `Xsrdpim (t, b, bX, tX) -> ()
-| `Xsrdpip (t, b, bX, tX) -> ()
-| `Xsrdpiz (t, b, bX, tX) -> ()
-| `Xsredp (t, b, bX, tX) -> ()
-| `Xsrsqrtedp (t, b, bX, tX) -> ()
-| `Xssqrtdp (t, b, bX, tX) -> ()
-| `Xssubdp (t, a, b, aX, bX, tX) -> ()
-| `Xstdivdp (bF, a, b, aX, bX) -> ()
-| `Xstsqrtdp (bF, b, bX) -> ()
-| `Xvabsdp (t, b, bX, tX) -> ()
-| `Xvabssp (t, b, bX, tX) -> ()
-| `Xvadddp (t, a, b, aX, bX, tX) -> ()
-| `Xvaddsp (t, a, b, aX, bX, tX) -> ()
-| `Xvcmpeqdp (t, a, b, rc, aX, bX, tX) -> ()
-| `Xvcmpeqsp (t, a, b, rc, aX, bX, tX) -> ()
-| `Xvcmpgedp (t, a, b, rc, aX, bX, tX) -> ()
-| `Xvcmpgesp (t, a, b, rc, aX, bX, tX) -> ()
-| `Xvcmpgtdp (t, a, b, rc, aX, bX, tX) -> ()
-| `Xvcmpgtsp (t, a, b, rc, aX, bX, tX) -> ()
-| `Xvcpsgndp (t, a, b, aX, bX, tX) -> ()
-| `Xvcpsgnsp (t, a, b, aX, bX, tX) -> ()
-| `Xvcvdpsp (t, b, bX, tX) -> ()
-| `Xvcvdpsxds (t, b, bX, tX) -> ()
-| `Xvcvdpsxws (t, b, bX, tX) -> ()
-| `Xvcvdpuxds (t, b, bX, tX) -> ()
-| `Xvcvdpuxws (t, b, bX, tX) -> ()
-| `Xvcvspdp (t, b, bX, tX) -> ()
-| `Xvcvspsxds (t, b, bX, tX) -> ()
-| `Xvcvspsxws (t, b, bX, tX) -> ()
-| `Xvcvspuxds (t, b, bX, tX) -> ()
-| `Xvcvspuxws (t, b, bX, tX) -> ()
-| `Xvcvsxddp (t, b, bX, tX) -> ()
-| `Xvcvsxdsp (t, b, bX, tX) -> ()
-| `Xvcvsxwdp (t, b, bX, tX) -> ()
-| `Xvcvsxwsp (t, b, bX, tX) -> ()
-| `Xvcvuxddp (t, b, bX, tX) -> ()
-| `Xvcvuxdsp (t, b, bX, tX) -> ()
-| `Xvcvuxwdp (t, b, bX, tX) -> ()
-| `Xvcvuxwsp (t, b, bX, tX) -> ()
-| `Xvdivdp (t, a, b, aX, bX, tX) -> ()
-| `Xvdivsp (t, a, b, aX, bX, tX) -> ()
-| `Xvmaddmdp (t, a, b, aX, bX, tX) -> ()
-| `Xvmaddadp (t, a, b, aX, bX, tX) -> ()
-| `Xvmaddmsp (t, a, b, aX, bX, tX) -> ()
-| `Xvmaddasp (t, a, b, aX, bX, tX) -> ()
-| `Xvmaxdp (t, a, b, aX, bX, tX) -> ()
-| `Xvmaxsp (t, a, b, aX, bX, tX) -> ()
-| `Xvmindp (t, a, b, aX, bX, tX) -> ()
-| `Xvminsp (t, a, b, aX, bX, tX) -> ()
-| `Xvmsubmdp (t, a, b, aX, bX, tX) -> ()
-| `Xvmsubadp (t, a, b, aX, bX, tX) -> ()
-| `Xvmsubmsp (t, a, b, aX, bX, tX) -> ()
-| `Xvmsubasp (t, a, b, aX, bX, tX) -> ()
-| `Xvmuldp (t, a, b, aX, bX, tX) -> ()
-| `Xvmulsp (t, a, b, aX, bX, tX) -> ()
-| `Xvnabsdp (t, b, bX, tX) -> ()
-| `Xvnabssp (t, b, bX, tX) -> ()
-| `Xvnegdp (t, b, bX, tX) -> ()
-| `Xvnegsp (t, b, bX, tX) -> ()
-| `Xvnmaddmdp (t, a, b, aX, bX, tX) -> ()
-| `Xvnmaddadp (t, a, b, aX, bX, tX) -> ()
-| `Xvnmaddmsp (t, a, b, aX, bX, tX) -> ()
-| `Xvnmaddasp (t, a, b, aX, bX, tX) -> ()
-| `Xvnmsubmdp (t, a, b, aX, bX, tX) -> ()
-| `Xvnmsubadp (t, a, b, aX, bX, tX) -> ()
-| `Xvnmsubmsp (t, a, b, aX, bX, tX) -> ()
-| `Xvnmsubasp (t, a, b, aX, bX, tX) -> ()
-| `Xvrdpi (t, b, bX, tX) -> ()
-| `Xvrdpic (t, b, bX, tX) -> ()
-| `Xvrdpim (t, b, bX, tX) -> ()
-| `Xvrdpip (t, b, bX, tX) -> ()
-| `Xvrdpiz (t, b, bX, tX) -> ()
-| `Xvredp (t, b, bX, tX) -> ()
-| `Xvresp (t, b, bX, tX) -> ()
-| `Xvrspi (t, b, bX, tX) -> ()
-| `Xvrspic (t, b, bX, tX) -> ()
-| `Xvrspim (t, b, bX, tX) -> ()
-| `Xvrspip (t, b, bX, tX) -> ()
-| `Xvrspiz (t, b, bX, tX) -> ()
-| `Xvrsqrtedp (t, b, bX, tX) -> ()
-| `Xvrsqrtesp (t, b, bX, tX) -> ()
-| `Xvsqrtdp (t, b, bX, tX) -> ()
-| `Xvsqrtsp (t, b, bX, tX) -> ()
-| `Xvsubdp (t, a, b, aX, bX, tX) -> ()
-| `Xvsubsp (t, a, b, aX, bX, tX) -> ()
-| `Xvtdivdp (bF, a, b, aX, bX) -> ()
-| `Xvtdivsp (bF, a, b, aX, bX) -> ()
-| `Xvtsqrtdp (bF, b, bX) -> ()
-| `Xvtsqrtsp (bF, b, bX) -> ()
-| `Xxland (t, a, b, aX, bX, tX) -> ()
-| `Xxlandc (t, a, b, aX, bX, tX) -> ()
-| `Xxlnor (t, a, b, aX, bX, tX) -> ()
-| `Xxlor (t, a, b, aX, bX, tX) -> ()
-| `Xxlxor (t, a, b, aX, bX, tX) -> ()
-| `Xxmrghw (t, a, b, aX, bX, tX) -> ()
-| `Xxmrglw (t, a, b, aX, bX, tX) -> ()
-| `Xxpermdi (t, a, b, dM, aX, bX, tX) -> ()
-| `Xxsel (t, a, b, c, cX, aX, bX, tX) -> ()
-| `Xxsldwi (t, a, b, sHW, aX, bX, tX) -> ()
-| `Xxspltw (t, uIM, b, bX, tX) -> ()
-| `Dlmzb (rS, rA, rB, rc) -> ()
-| `Macchw (rT, rA, rB, oE, rc) -> ()
-| `Macchws (rT, rA, rB, oE, rc) -> ()
-| `Macchwu (rT, rA, rB, oE, rc) -> ()
-| `Macchwsu (rT, rA, rB, oE, rc) -> ()
-| `Machhw (rT, rA, rB, oE, rc) -> ()
-| `Machhws (rT, rA, rB, oE, rc) -> ()
-| `Machhwu (rT, rA, rB, oE, rc) -> ()
-| `Machhwsu (rT, rA, rB, oE, rc) -> ()
-| `Maclhw (rT, rA, rB, oE, rc) -> ()
-| `Maclhws (rT, rA, rB, oE, rc) -> ()
-| `Maclhwu (rT, rA, rB, oE, rc) -> ()
-| `Maclhwsu (rT, rA, rB, oE, rc) -> ()
-| `Mulchw (rT, rA, rB, rc) -> ()
-| `Mulchwu (rT, rA, rB, rc) -> ()
-| `Mulhhw (rT, rA, rB, rc) -> ()
-| `Mulhhwu (rT, rA, rB, rc) -> ()
-| `Mullhw (rT, rA, rB, rc) -> ()
-| `Mullhwu (rT, rA, rB, rc) -> ()
-| `Nmacchw (rT, rA, rB, oE, rc) -> ()
-| `Nmacchws (rT, rA, rB, oE, rc) -> ()
-| `Nmachhw (rT, rA, rB, oE, rc) -> ()
-| `Nmachhws (rT, rA, rB, oE, rc) -> ()
-| `Nmaclhw (rT, rA, rB, oE, rc) -> ()
-| `Nmaclhws (rT, rA, rB, oE, rc) -> ()
-| `Icbi (rA, rB) -> ()
-| `Icbt (cT, rA, rB) -> ()
-| `Dcba (rA, rB) -> ()
-| `Dcbt (tH, rA, rB) -> ()
-| `Dcbtst (tH, rA, rB) -> ()
-| `Dcbz (rA, rB) -> ()
-| `Dcbst (rA, rB) -> ()
-| `Dcbf (l, rA, rB) -> ()
-| `Isync -> (i_Sync ())
-| `Lbarx (rT, rA, rB, eH) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr_reserve
- (!eA,(big_int_of_int 1)))) :
- value)
- end
- end
- end
-| `Lharx (rT, rA, rB, eH) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr_reserve
- (!eA,(big_int_of_int 2)))) :
- value)
- end
- end
- end
-| `Lwarx (rT, rA, rB, eH) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <-
- ((vector_concat (Vvector ([|Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero;Vzero|], 0, true)) (mEMr_reserve
- (!eA,(big_int_of_int 4)))) :
- value)
- end
- end
- end
-| `Stbcx (rS, rA, rB) -> ()
-| `Sthcx (rS, rA, rB) -> ()
-| `Stwcx (rS, rA, rB) -> ()
-| `Ldarx (rT, rA, rB, eH) ->
- begin
- let b = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- let eA = ref (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0))) in begin
- (if to_bool((eq_vec_range (rA,(big_int_of_int 0))))
- then b := (to_vec_inc ((big_int_of_int 64),(big_int_of_int 0)))
- else b := (vector_access gPR (unsigned (rA))));
- eA := ((add_vec (!b,(vector_access gPR (unsigned (rB))))) : value);
- (get_varray gPR).((unsigned (rT))) <- (mEMr_reserve (!eA,(big_int_of_int 8)))
- end
- end
- end
-| `Stdcx (rS, rA, rB) -> ()
-| `Sync (l) ->
- ( match l with
- | (Vvector ([|Vzero;Vzero|], _, _)) -> begin (h_Sync ()) end
- | (Vvector ([|Vzero;Vone|], _, _)) -> begin (lW_Sync ()) end
- )
-| `Eieio -> (eIEIO_Sync ())
-| `Mbar (mO) -> ()
-| `Wait (wC) -> ()
-
-
-
-let supported_instructions instr =
-begin
- ( match instr with
- | `Mbar (_) -> (None ())
- | `Sync ((Vvector ([|Vone;Vzero|], _, _))) -> (None ())
- | `Sync ((Vvector ([|Vone;Vone|], _, _))) -> (None ())
- | _ -> (Some (instr))
- )
-end
-
-
-
-let illegal_instructions_pred instr =
-begin
- ( match instr with
- | `Bcctr (bO, bI, bH, lK) -> (bitwise_not_bit ((bit_vector_access bO (big_int_of_int 2))))
- | `Lbzu (rT, rA, d) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lbzux (rT, rA, _) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lhzu (rT, rA, d) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lhzux (rT, rA, rB) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lhau (rT, rA, d) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lhaux (rT, rA, rB) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lwzu (rA, rT, d) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lwzux (rT, rA, rB) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Lwaux (rA, rT, rB) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Ldu (rT, rA, dS) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Ldux (rT, rA, rB) -> (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(eq (rA,rT))))
- | `Stbu (rS, rA, d) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stbux (rS, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Sthu (rS, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Sthux (rS, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stwu (rS, rA, d) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stwux (rS, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stdu (rS, rA, dS) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stdux (rS, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Lmw (rT, rA, d) ->
- (bitwise_or_bit ((eq_vec_range (rA,(big_int_of_int 0))),(bitwise_and_bit ((lteq_vec (rT,rA)),(lteq_vec_range (rA,(big_int_of_int 31)))))))
- | `Lswi (rT, rA, nB) ->
- let n =
- (if to_bool((bitwise_not_bit ((eq_vec_range (nB,(big_int_of_int 0))))))
- then (unsigned (nB))
- else (big_int_of_int 32)) in
- let ceil =
- (if to_bool((eq ((modulo (n,(big_int_of_int 4))),(big_int_of_int 0))))
- then (quot (n,(big_int_of_int 4)))
- else (add ((quot (n,(big_int_of_int 4))),(big_int_of_int 1)))) in
- (bitwise_and_bit ((lteq_vec (rT,rA)),(lteq_vec (rA,((minus_vec_range (((add_vec_range (rT,ceil)) :
- value),(big_int_of_int 1))) :
- value)))))
- | `Lfsu (fRT, rA, d) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Lfsux (fRT, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Lfdu (fRT, rA, d) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Lfdux (fRT, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stfsu (fRS, rA, d) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stfsux (fRS, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stfdu (fRS, d, rA) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Stfdux (fRS, rA, rB) -> (eq_vec_range (rA,(big_int_of_int 0)))
- | `Lfdp (fRTp, rA, dS) ->
- (eq_vec_range ((mod_vec_range (fRTp,(big_int_of_int 2))),(big_int_of_int 1)))
- | `Stfdp (fRSp, rA, dS) ->
- (eq_vec_range ((mod_vec_range (fRSp,(big_int_of_int 2))),(big_int_of_int 1)))
- | `Lfdpx (fRTp, rA, rB) ->
- (eq_vec_range ((mod_vec_range (fRTp,(big_int_of_int 2))),(big_int_of_int 1)))
- | `Stfdpx (fRSp, rA, rB) ->
- (eq_vec_range ((mod_vec_range (fRSp,(big_int_of_int 2))),(big_int_of_int 1)))
- | `Lq (rTp, rA, dQ, pt) ->
- (bitwise_or_bit ((eq_vec_range ((mod_vec_range (rTp,(big_int_of_int 2))),(big_int_of_int 1))),(eq (rTp,rA))))
- | `Stq (rSp, rA, rS) ->
- (eq_vec_range ((mod_vec_range (rSp,(big_int_of_int 2))),(big_int_of_int 1)))
- | `Mtspr (rS, spr) ->
- (bitwise_not_bit
- ((bitwise_or_bit ((eq_vec_range (spr,(big_int_of_int 1))),(bitwise_or_bit ((eq_vec_range (spr,(big_int_of_int 8))),(bitwise_or_bit ((eq_vec_range (spr,(big_int_of_int 9))),(bitwise_or_bit ((eq_vec_range (spr,(big_int_of_int 256))),(bitwise_or_bit ((eq_vec_range (spr,(big_int_of_int 512))),(bitwise_or_bit ((eq_vec_range (spr,(big_int_of_int 896))),(eq_vec_range (spr,(big_int_of_int 898)))))))))))))))))
- | _ -> Vzero
- )
-end
-
-
-
-let illegal_instructions instr =
-(if to_bool((illegal_instructions_pred (instr)))
-then (None ())
-else (Some (instr)))
diff --git a/src/nexp_functions b/src/nexp_functions
deleted file mode 100644
index e6ab14ba..00000000
--- a/src/nexp_functions
+++ /dev/null
@@ -1,67 +0,0 @@
-val compare_nexps : nexp -> nexp -> int
-(*usefull for sorting nexps*)
-
-val contains_const : nexp -> bool
-(*Does the given nexp recursively conain a constant*)
-
-val get_var : nexp -> nexp option
-(*extracts variable in a normalized nexp*)
-
-val get_all_nvar : nexp -> string list
-(*Gets a list (with duplicates) of all variables used in an nexp*)
-
-val get_factor : nexp -> nexp
-(*extracts a variables factor in a normalized nexp*)
-
-val increment_factor : nexp -> nexp -> nexp
-(*first nexp is multiplied by second, increased by one, expects normalized nexps*)
-
-val negate : nexp -> nexp
-(*negate normalized nexp into normalized form*)
-
-val normalize_nexp : nexp -> nexp
-(*convert nexp into a normal form*)
-
-val nexp_eq_check : nexp -> nexp -> bool
-(*structural equality*)
-
-val nexp_gt : nexp -> nexp -> triple
-(*greater than check, normalizes first, might not know*)
-
-val nexp_ge : nexp -> nexp -> triple
-(*greather than eq check, normalizes first, might not know*)
-
-
-val nexp_eq : nexp -> nexp -> bool
-(*wrapper on above that normalizes first*)
-
-val nexp_one_more_then : nexp -> nexp -> bool
-(*nexp_one_more_then n1 n2 checks if n1 is n2 + -1, n2 - 1*)
-
-val contains_nuvar_nexp : nexp -> nexp -> bool
-(*contains_nuvar n1 n2: n1 expected to be a nuvar (otherwise always false) otherwise says if n1 occurs in n2*)
-
-val contains_nuvar : nexp -> constraints -> constraints
-(*produces a list of all constraints that contain nexp, assumed to be a nuvar*)
-
-val n_subst : s_env -> nexp -> nexp
-(*replaces nvars*)
-
-val contains_var : nexp -> nexp -> bool
-(*expects nexp1 to be nvar or nuvar otherwise like contains_nuvar_nexp*)
-
-val subst_nuvar : nexp -> nexp ->nexp
-(*replace occurence of n1 (an nuvar) with n2 in n3*)
-
-val subst_nuvars : (nexp * nexp) list -> nexp -> nexp
-(*replace all occurences of the first nuvars in the list with the second nexp in the list in nexp*)
-
-val get_nuvars : nexp -> nexp list
-(*pull out all nuvars in an nexp*)
-
-val get_all_nuvars_cs : constraints -> Set.Make(NexpM).t
-(*pull out all the nuvars in a constraint set*)
-
-val equate_nuvars : 'a -> constraints -> contraints
-(*Set equal nuvars to each other in the constraint list... first parameter presently unused and has forgotten intent*)
-