aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Asmexpand.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2020-10-29 18:10:16 +0100
committerXavier Leroy <xavier.leroy@college-de-france.fr>2020-11-06 18:30:21 +0100
commitacaabc6c481cc70e5597ccb74052a7f6d330b0f1 (patch)
tree38e7b9f6a25282ffc089261a8400bd646125192a /aarch64/Asmexpand.ml
parentc3c7d3a417b37bf7268562c20a27916ae0c51adf (diff)
downloadcompcert-kvx-acaabc6c481cc70e5597ccb74052a7f6d330b0f1.tar.gz
compcert-kvx-acaabc6c481cc70e5597ccb74052a7f6d330b0f1.zip
Added implementation for fmin/fmax for aarch64.
The two built-in function map to the fmax and fmin instruction. Bug 30035
Diffstat (limited to 'aarch64/Asmexpand.ml')
-rw-r--r--aarch64/Asmexpand.ml4
1 files changed, 4 insertions, 0 deletions
diff --git a/aarch64/Asmexpand.ml b/aarch64/Asmexpand.ml
index ea2ee703..1ba754dd 100644
--- a/aarch64/Asmexpand.ml
+++ b/aarch64/Asmexpand.ml
@@ -363,6 +363,10 @@ let expand_builtin_inline name args res =
emit (Pfnmadd(D, res, a1, a2, a3))
| "__builtin_fnmsub", [BA(FR a1); BA(FR a2); BA(FR a3)], BR(FR res) ->
emit (Pfnmsub(D, res, a1, a2, a3))
+ | "__builtin_fmax", [BA (FR a1); BA (FR a2)], BR (FR res) ->
+ emit (Pfmax (D, res, a1, a2))
+ | "__builtin_fmin", [BA (FR a1); BA (FR a2)], BR (FR res) ->
+ emit (Pfmin (D, res, a1, a2))
(* Vararg *)
| "__builtin_va_start", [BA(IR a)], _ ->
expand_builtin_va_start a