Files
Xenia-Canary/src/xenia/cpu/ppc/testing/instr_vrfim128.s
2026-02-13 14:49:49 +09:00

40 lines
1.5 KiB
ArmAsm

test_vrfim128_1:
# Floor positive numbers: [1.5, 2.25, 3.25, 4.5] -> [1.0, 2.0, 3.0, 4.0]
#_ REGISTER_IN v4 [3FC00000, 40100000, 40500000, 40900000]
vrfim128 v5, v4
blr
#_ REGISTER_OUT v4 [3FC00000, 40100000, 40500000, 40900000]
#_ REGISTER_OUT v5 [3F800000, 40000000, 40400000, 40800000]
test_vrfim128_2:
# Floor negative numbers: [-1.5, -2.25, -3.25, -4.5] -> [-2.0, -3.0, -4.0, -5.0]
#_ REGISTER_IN v4 [BFC00000, C0100000, C0500000, C0900000]
vrfim128 v5, v4
blr
#_ REGISTER_OUT v4 [BFC00000, C0100000, C0500000, C0900000]
#_ REGISTER_OUT v5 [C0000000, C0400000, C0800000, C0A00000]
test_vrfim128_3:
# Floor integers (no change): [1.0, 2.0, 3.0, 4.0]
#_ REGISTER_IN v4 [3F800000, 40000000, 40400000, 40800000]
vrfim128 v5, v4
blr
#_ REGISTER_OUT v4 [3F800000, 40000000, 40400000, 40800000]
#_ REGISTER_OUT v5 [3F800000, 40000000, 40400000, 40800000]
test_vrfim128_4:
# Floor zeros and small values: [0.0, -0.0, 0.5, -0.5] -> [0.0, -0.0, 0.0, -1.0]
#_ REGISTER_IN v4 [00000000, 80000000, 3F000000, BF000000]
vrfim128 v5, v4
blr
#_ REGISTER_OUT v4 [00000000, 80000000, 3F000000, BF000000]
#_ REGISTER_OUT v5 [00000000, 80000000, 00000000, BF800000]
test_vrfim128_5:
# Floor fractional values: [0.75, 0.9, 1.0, 1.1] -> [0.0, 0.0, 1.0, 1.0]
#_ REGISTER_IN v4 [3F400000, 3F666666, 3F800000, 3F8CCCCD]
vrfim128 v5, v4
blr
#_ REGISTER_OUT v4 [3F400000, 3F666666, 3F800000, 3F8CCCCD]
#_ REGISTER_OUT v5 [00000000, 00000000, 3F800000, 3F800000]