8000 Arm64: remove rosetta check by gretay-js · Pull Request #4178 · oxcaml/oxcaml · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Arm64: remove rosetta check #4178

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 44 additions & 47 deletions oxcaml/tests/simd/amd64/sse_other_ops.ml
Original file line number Diff line number Diff line change
Expand Up @@ -39,55 +39,53 @@ module Float32x4 = struct
else eq_float32x4 ~result ~expect)

let () =
Test_helpers.run_if_not_under_rosetta2 ~f:(fun () ->
Float32.check_floats (fun f0 f1 ->
(failmsg
:= fun () ->
Printf.printf "%f | %f\n%!" (Int32.float_of_bits f0)
(Int32.float_of_bits f1));
let fv0 = Float32.to_float32x4 f0 f0 f1 f1 in
let fv1 = Float32.to_float32x4 f1 f1 f0 f0 in
let result = addsub fv0 fv1 in
let expect =
Float32.to_float32x4 (Float32.sub f0 f1) (Float32.add f0 f1)
(Float32.sub f1 f0) (Float32.add f1 f0)
in
eq_float32x4 ~result ~expect);
Float32.check_floats (fun f0 f1 ->
(failmsg
:= fun () ->
Printf.printf "%f | %f\n%!" (Int32.float_of_bits f0)
(Int32.float_of_bits f1));
let fv0 = Float32.to_float32x4 f0 f1 f0 f1 in
let fv1 = Float32.to_float32x4 f1 f0 f1 f0 in
let result = hsub fv0 fv1 in
let expect =
Float32.to_float32x4 (Float32.sub f0 f1) (Float32.sub f0 f1)
(Float32.sub f1 f0) (Float32.sub f1 f0)
in
eq_float32x4 ~result ~expect))
Float32.check_floats (fun f0 f1 ->
(failmsg
:= fun () ->
Printf.printf "%f | %f\n%!" (Int32.float_of_bits f0)
(Int32.float_of_bits f1));
let fv0 = Float32.to_float32x4 f0 f0 f1 f1 in
let fv1 = Float32.to_float32x4 f1 f1 f0 f0 in
let result = addsub fv0 fv1 in
let expect =
Float32.to_float32x4 (Float32.sub f0 f1) (Float32.add f0 f1)
(Float32.sub f1 f0) (Float32.add f1 f0)
in
eq_float32x4 ~result ~expect);
Float32.check_floats (fun f0 f1 ->
(failmsg
:= fun () ->
Printf.printf "%f | %f\n%!" (Int32.float_of_bits f0)
(Int32.float_of_bits f1));
let fv0 = Float32.to_float32x4 f0 f1 f0 f1 in
let fv1 = Float32.to_float32x4 f1 f0 f1 f0 in
let result = hsub fv0 fv1 in
let expect =
Float32.to_float32x4 (Float32.sub f0 f1) (Float32.sub f0 f1)
(Float32.sub f1 f0) (Float32.sub f1 f0)
in
eq_float32x4 ~result ~expect)
end

module Float64x2 = struct
include Builtins.Float64x2
include Builtins.Sse_other_builtins.Float64x2

let () =
Test_helpers.run_if_not_under_rosetta2 ~f:(fun () ->
Float64.check_floats (fun f0 f1 ->
(failmsg := fun () -> Printf.printf "%f | %f\n%!" f0 f1);
let fv0 = to_float64x2 f0 f0 in
let fv1 = to_float64x2 f1 f1 in
let result = addsub fv0 fv1 in
let expect = to_float64x2 (f0 -. f1) (f0 +. f1) in
eq_float64x2 ~result ~expect);
Float64.check_floats (fun f0 f1 ->
(failmsg := fun () -> Printf.printf "%f | %f\n%!" f0 f1);
let fv0 = to_float64x2 f0 f1 in
let fv1 = to_float64x2 f1 f0 in
let result = hsub fv0 fv1 in
let expect = to_float64x2 (f0 -. f1) (f1 -. f0) in
eq_float64x2 ~result ~expect))
Float64.check_floats (fun f0 f1 ->
(failmsg := fun () -> Printf.printf "%f | %f\n%!" f0 f1);
let fv0 = to_float64x2 f0 f0 in
let fv1 = to_float64x2 f1 f1 in
let result = addsub fv0 fv1 in
let expect = to_float64x2 (f0 -. f1) (f0 +. f1) in
eq_float64x2 ~result ~expect);
Float64.check_floats (fun f0 f1 ->
(failmsg := fun () -> Printf.printf "%f | %f\n%!" f0 f1);
let fv0 = to_float64x2 f0 f1 in
let fv1 = to_float64x2 f1 f0 in
let result = hsub fv0 fv1 in
let expect = to_float64x2 (f0 -. f1) (f1 -. f0) in
eq_float64x2 ~result ~expect)

let () =
Float64.check_floats (fun f0 f1 ->
Expand Down Expand Up @@ -127,11 +125,10 @@ module Int64 = struct
let eq' x y = if x <> y then Printf.printf "%016Lx <> %016Lx\n" x y

let () =
Test_helpers.run_if_not_under_rosetta2 ~f:(fun () ->
eq' (bit_deposit 3L 4L) 0x4L;
eq' (bit_deposit 235L 522L) 0xAL;
eq' (bit_extract 3L 4L) 0x0L;
eq' (bit_extract 235L 522L) 0x3L)
eq' (bit_deposit 3L 4L) 0x4L;
eq' (bit_deposit 235L 522L) 0xAL;
eq' (bit_extract 3L 4L) 0x0L;
eq' (bit_extract 235L 522L) 0x3L
end

module Int64x2 = struct
Expand Down
7 changes: 0 additions & 7 deletions oxcaml/tests/simd/dune
Original file line number Diff line number Diff line change
@@ -1,14 +1,7 @@
; Helpers

(library
(name simd_test_helpers)
(wrapped false)
(modules test_helpers))

;; CR-someday mslater: with layout polymorphism, the tests could be
;; functorized instead concatenating files.


(rule
(targets utils_u.ml)
(deps unbox_types.ml utils.ml)
Expand Down
Loading
Loading
0