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

40 lines
1.4 KiB
ArmAsm

test_vlogefp128_1:
# log2(x) estimate for x = [1.0, 2.0, 4.0, 8.0] = [0.0, 1.0, 2.0, 3.0]
#_ REGISTER_IN v4 [3F800000, 40000000, 40800000, 41000000]
vlogefp128 v5, v4
blr
#_ REGISTER_OUT v4 [3F800000, 40000000, 40800000, 41000000]
#_ REGISTER_OUT v5 [00000000, 3F800000, 40000000, 40400000]
test_vlogefp128_2:
# log2(x) estimate for fractions: [0.5, 0.25, 0.125, 0.0625] = [-1.0, -2.0, -3.0, -4.0]
#_ REGISTER_IN v4 [3F000000, 3E800000, 3E000000, 3D800000]
vlogefp128 v5, v4
blr
#_ REGISTER_OUT v4 [3F000000, 3E800000, 3E000000, 3D800000]
#_ REGISTER_OUT v5 [BF800000, C0000000, C0400000, C0800000]
test_vlogefp128_3:
# log2(x) estimate for larger values
#_ REGISTER_IN v4 [41800000, 42000000, 42800000, 43000000]
vlogefp128 v5, v4
blr
#_ REGISTER_OUT v4 [41800000, 42000000, 42800000, 43000000]
#_ REGISTER_OUT v5 [40800000, 40A00000, 40C00000, 40E00000]
test_vlogefp128_4:
# log2(1.0) = 0.0 (should always be zero)
#_ REGISTER_IN v4 [3F800000, 3F800000, 3F800000, 3F800000]
vlogefp128 v5, v4
blr
#_ REGISTER_OUT v4 [3F800000, 3F800000, 3F800000, 3F800000]
#_ REGISTER_OUT v5 [00000000, 00000000, 00000000, 00000000]
test_vlogefp128_5:
# log2(x) for values slightly above 1.0
#_ REGISTER_IN v4 [3FB504F3, 3FC00000, 3FD744FD, 3FECCCCD]
vlogefp128 v5, v4
blr
#_ REGISTER_OUT v4 [3FB504F3, 3FC00000, 3FD744FD, 3FECCCCD]
#_ REGISTER_OUT v5 [3EFFFFFF, 3F15C01A, 3F400000, 3F6334DB]