summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKathy Gray2017-01-12 13:49:24 +0000
committerKathy Gray2017-01-12 13:49:24 +0000
commite1cb2b866e113920525dd9c1d7b3529cfd1ccd78 (patch)
tree64fc98c92e47eade7b9821a683b934b51ea19746 /src
parent3835187bb3c11e9981acc56092ffdbbe7131bb74 (diff)
Adding sample generated power file
Diffstat (limited to 'src')
-rw-r--r--src/gen_lib/sample_gen/power.ml9103
1 files changed, 9103 insertions, 0 deletions
diff --git a/src/gen_lib/sample_gen/power.ml b/src/gen_lib/sample_gen/power.ml
new file mode 100644
index 00000000..a9feb5c1
--- /dev/null
+++ b/src/gen_lib/sample_gen/power.ml
@@ -0,0 +1,9103 @@
+(*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)))