aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/OpWeights.ml
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64/OpWeights.ml')
-rw-r--r--aarch64/OpWeights.ml9
1 files changed, 5 insertions, 4 deletions
diff --git a/aarch64/OpWeights.ml b/aarch64/OpWeights.ml
index 01a1a553..1b48bc0f 100644
--- a/aarch64/OpWeights.ml
+++ b/aarch64/OpWeights.ml
@@ -108,14 +108,12 @@ let latency_of_op (op : operation) (nargs : int) =
| Oaddf (* r [rd = r1 + r2] *)
| Osubf (* r [rd = r1 - r2] *)
| Omulf (* r [rd = r1 * r2] *)
- | Odivf (* r [rd = r1 / r2] *)
(* 32-bit floating-point arithmetic *)
| Onegfs (* r [rd = - r1] *)
| Oabsfs (* r [rd = abs(r1)] *)
| Oaddfs (* r [rd = r1 + r2] *)
| Osubfs (* r [rd = r1 - r2] *)
| Omulfs (* r [rd = r1 * r2] *)
- | Odivfs (* r [rd = r1 / r2] *)
| Osingleoffloat (* r [rd] is [r1] truncated to single-precision float *)
| Ofloatofsingle (* r [rd] is [r1] extended to double-precision float *)
(* Conversions between int and float *)
@@ -136,6 +134,8 @@ let latency_of_op (op : operation) (nargs : int) =
| Osingleoflong (* r [rd = float32_of_signed_long(r1)] *)
| Osingleoflongu (* r [rd = float32_of_unsigned_int(r1)] *)
-> 6
+ | Odivf -> 50 (* r [rd = r1 / r2] *)
+ | Odivfs -> 20
(* Boolean tests *)
| Ocmp cmp | Osel (cmp, _) ->
(match cmp with
@@ -255,7 +255,7 @@ let resources_of_op (op : operation) (nargs : int) =
| Oaddf (* r [rd = r1 + r2] *)
| Osubf (* r [rd = r1 - r2] *)
| Omulf (* r [rd = r1 * r2] *)
- | Odivf (* r [rd = r1 / r2] *)
+ | Odivf
(* 32-bit floating-point arithmetic *)
| Onegfs (* r [rd = - r1] *)
| Oabsfs (* r [rd = abs(r1)] *)
@@ -301,7 +301,8 @@ let resources_of_op (op : operation) (nargs : int) =
let non_pipelined_resources_of_op (op : operation) (nargs : int) =
match op with
| Odiv | Odivu -> [| 29 |]
- | Odivl | Odivlu -> [| 50 |]
+ | Odivfs -> [| 20 |]
+ | Odivl | Odivlu | Odivf -> [| 50 |]
| _ -> [| -1 |];;
let resources_of_cond (cmp : condition) (nargs : int) =