summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/monomorphise.ml8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/monomorphise.ml b/src/monomorphise.ml
index d52f12dc..5168d16a 100644
--- a/src/monomorphise.ml
+++ b/src/monomorphise.ml
@@ -2818,6 +2818,14 @@ let rec rewrite_app env typ (id,args) =
try_cast_to_typ
(mk_exp (E_app (mk_id "place_slice", [vector1; start1; len1; len2])))
+ (* ones @ zeros *)
+ | [E_aux (E_app (ones1, [len1]), _);
+ E_aux (E_app (zeros2, [len2]), _)]
+ when is_ones ones1 && is_zeros zeros2 &&
+ not (is_constant len1 && is_constant len2) ->
+ try_cast_to_typ
+ (mk_exp (E_app (mk_id "slice_mask", [len2; len1])))
+
(* variable-range @ variable-range *)
| [E_aux (E_app (subrange1,
[vector1; start1; end1]),_);