mirror of
https://github.com/ptitSeb/box64.git
synced 2025-05-08 07:59:18 +08:00
[CI] Add Android Tests (#1263)
* [CI] Add Android Tests * Remove a Build of Box64 that I placed and forgot to remove before * Fix some tests checking * Disable Test07 and Test17 for now * Comment set_tests_proprieties (I have forgotten) * Add mmx test and benchfloat for Android * Fix build for Clang-17 on non-Termux * Update NDK to 26b and add Termux Build/Testing * Revert to NDK 25b, something is wrong * Add -DTERMUX=1 to Termux Build * Add LD_LIBRARY_PATH for Termux Testing * Set LD_LIBRARY_PATH on QEMU_SET_ENV * Move data folder to current dir before testing on Termux * Copy Termux Data Libs for /data * Try to set QEMU_SET_ENV on GITHUB_ENV --------- Co-authored-by: Pablo Carlos <pablo@localhost.localdomain>
This commit is contained in:
parent
c70581abc9
commit
549e042e67
37
.github/workflows/release.yml
vendored
37
.github/workflows/release.yml
vendored
@ -27,7 +27,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform: [X64, OTHER_ARM, RISCV, RPI4ARM64, RPI5ARM64, RK3326, RK3399, RK3588, PHYTIUM, SD845, SD888, ADLINK, ARM64, ANDROID]
|
||||
platform: [X64, OTHER_ARM, RISCV, RPI4ARM64, RPI5ARM64, RK3326, RK3399, RK3588, PHYTIUM, SD845, SD888, ADLINK, ARM64, ANDROID, TERMUX]
|
||||
type: [Release, Trace]
|
||||
os: [ubuntu-latest]
|
||||
include:
|
||||
@ -48,16 +48,39 @@ jobs:
|
||||
sudo apt-get update
|
||||
if [[ ${{ matrix.platform }} != 'X64' && ${{ matrix.platform }} != 'OTHER_ARM' && ${{ matrix.platform }} != 'RISCV' ]]; then
|
||||
sudo apt-get -y install git cmake make python3
|
||||
if [[ ${{ matrix.platform }} == 'ANDROID' ]]; then
|
||||
if [[ ${{ matrix.platform }} == 'ANDROID' || ${{ matrix.platform }} == 'TERMUX' ]]; then
|
||||
wget https://dl.google.com/android/repository/android-ndk-r25b-linux.zip
|
||||
unzip android-ndk-r25b-linux.zip
|
||||
echo "BOX64_COMPILER=$PWD/android-ndk-r25b/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang" >> $GITHUB_ENV
|
||||
echo "BOX64_PLATFORM_MARCRO=-DANDROID=1 -DARM_DYNAREC=1 -DBAD_SIGNAL=1" >> $GITHUB_ENV
|
||||
wget https://sinalbr.dl.sourceforge.net/project/waydroid/images/system/lineage/waydroid_arm64/lineage-18.1-20240210-VANILLA-waydroid_arm64-system.zip
|
||||
unzip lineage-18.1-20240210-VANILLA-waydroid_arm64-system.zip
|
||||
sudo mount system.img /mnt
|
||||
sudo cp -rf /mnt/system /
|
||||
sudo umount /mnt
|
||||
sudo rm -rf /system/vendor
|
||||
sudo chmod 755 -R /system/*
|
||||
sudo chown -R $(whoami):$(whoami) /system/*
|
||||
sudo ln -sf /system/apex /apex
|
||||
else
|
||||
sudo apt-get -y install git gcc-aarch64-linux-gnu
|
||||
echo "BOX64_PLATFORM_MARCRO=-D${{ matrix.platform }}=1" >> $GITHUB_ENV
|
||||
echo "BOX64_COMPILER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
|
||||
fi
|
||||
if [[ ${{ matrix.platform }} == 'TERMUX' ]]; then
|
||||
sudo apt-get -y install p7zip
|
||||
wget https://mirrors.utermux.dev/termux/termux-main/pool/main/liba/libandroid-sysv-semaphore/libandroid-sysv-semaphore_0.1_aarch64.deb
|
||||
7z x libandroid-sysv-semaphore_0.1_aarch64.deb
|
||||
tar -xf data.tar.xz
|
||||
sudo cp -rf data /
|
||||
sudo chmod 755 -R /data
|
||||
sudo chown -R $(whoami):$(whoami) /data
|
||||
echo "CFLAGS=-L/data/data/com.termux/files/usr/lib" >> $GITHUB_ENV
|
||||
echo "IS_TERMUX=1" >> $GITHUB_ENV
|
||||
echo "QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib" >> $GITHUB_ENV
|
||||
else
|
||||
echo "IS_TERMUX=0" >> $GITHUB_ENV
|
||||
fi
|
||||
else
|
||||
if [[ ${{ matrix.platform }} == 'X64' ]]; then
|
||||
echo "BOX64_PLATFORM_MARCRO=-DLD80BITS=1 -DNOALIGN=1" >> $GITHUB_ENV
|
||||
@ -93,6 +116,7 @@ jobs:
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -DCMAKE_C_COMPILER=${{ env.BOX64_COMPILER }}\
|
||||
-DTERMUX=${{ env.IS_TERMUX }}\
|
||||
${{ env.BOX64_PLATFORM_MARCRO }}\
|
||||
-DCMAKE_BUILD_TYPE=${{ env.BOX64_BUILD_TYPE }}\
|
||||
-DHAVE_TRACE=${{ env.BOX64_HAVE_TRACE }}\
|
||||
@ -103,7 +127,7 @@ jobs:
|
||||
- name: "Test Box64"
|
||||
if: ${{ matrix.platform != 'TEGRAX1' }}
|
||||
run: |
|
||||
if [[ ${{ matrix.platform }} != 'X64' && ${{ matrix.platform }} != 'ANDROID' ]]; then
|
||||
if [[ ${{ matrix.platform }} != 'X64' ]]; then
|
||||
mkdir qemu8.1.0
|
||||
wget -O- -q https://archive.archlinux.org/packages/q/qemu-user-static/qemu-user-static-8.1.0-2-x86_64.pkg.tar.zst | tar -I zstd -C qemu8.1.0 -xf -
|
||||
sudo cp qemu8.1.0/usr/bin/* /usr/bin/
|
||||
@ -119,7 +143,12 @@ jobs:
|
||||
INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/ ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
elif [[ ${{ matrix.platform }} == 'ANDROID' ]]; then
|
||||
true
|
||||
INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/system/lib64 BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
INTERPRETER=qemu-aarch64-static QEMU_LD_PREFIX=/system/lib64 ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
elif [[ ${{ matrix.platform }} == 'TERMUX' ]]; then
|
||||
|
||||
INTERPRETER=qemu-aarch64-static QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib QEMU_LD_PREFIX=/system/lib64:/data/data/com.termux/files/usr/lib BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
INTERPRETER=qemu-aarch64-static QEMU_SET_ENV=LD_LIBRARY_PATH=/data/data/com.termux/files/usr/lib QEMU_LD_PREFIX=/system/lib64:/data/data/com.termux/files/usr/lib ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
else
|
||||
BOX64_DYNAREC=0 ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
ctest -j$(nproc) --rerun-failed --output-on-failure
|
||||
|
149
CMakeLists.txt
149
CMakeLists.txt
@ -991,6 +991,7 @@ set(CPACK_DEBIAN_FILE_NAME "${BOX64}-${BOX64_MAJOR}.${BOX64_MINOR}.${BOX64_REVIS
|
||||
endif()
|
||||
INCLUDE(CPack)
|
||||
|
||||
if(NOT ANDROID)
|
||||
add_test(bootSyscall ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test01 -D TEST_OUTPUT=tmpfile01.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref01.txt
|
||||
@ -1142,8 +1143,145 @@ add_test(lock ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test29 -D TEST_OUTPUT=tmpfile29.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref29.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
else()
|
||||
|
||||
add_test(bootSyscall ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test01_android -D TEST_OUTPUT=tmpfile01.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref01.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(bootSyscallC ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test02_android -D TEST_OUTPUT=tmpfile02.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref02.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(printf ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test03_android -D TEST_OUTPUT=tmpfile03.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref03.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(args ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test04_android -D TEST_ARGS2=yeah -D TEST_OUTPUT=tmpfile04.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref04.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(maths1 ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test05_android -D TEST_ARGS2=7 -D TEST_OUTPUT=tmpfile05.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref05.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(threadsStart ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test06_android -D TEST_OUTPUT=tmpfile06.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref06.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
# Box64 for Android have problems with test07 for now, then disable
|
||||
|
||||
#add_test(trig ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
# -D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test07_android -D TEST_OUTPUT=tmpfile07.txt
|
||||
# -D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref07.txt
|
||||
# -P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(pi ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test08_android -D TEST_OUTPUT=tmpfile08.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref08.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(fork ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test09_android -D TEST_OUTPUT=tmpfile09.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref09.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(fpu ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test12_android -D TEST_OUTPUT=tmpfile12.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref12_android.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(linkingIndirectNoversion ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test15_android -D TEST_OUTPUT=tmpfile15.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref15.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
# Box64 for Android now have problems with test16, then disable it for now
|
||||
|
||||
#add_test(sse_asm ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
# -D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test16_android -D TEST_OUTPUT=tmpfile16.txt
|
||||
# -D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref16.txt
|
||||
# -P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
# Box64 for Android now have problems with test17, then disable it for now
|
||||
|
||||
#set_tests_properties(sse_asm PROPERTIES ENVIRONMENT "BOX64_DYNAREC_FASTROUND=0")
|
||||
|
||||
#add_test(sse_intrinsics ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
# -D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test17_android -D TEST_OUTPUT=tmpfile17.txt
|
||||
# -D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref17_android.txt
|
||||
# -P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
#set_tests_properties(sse_intrinsics PROPERTIES ENVIRONMENT "BOX64_DYNAREC_FASTNAN=0;BOX64_DYNAREC_FASTROUND=0")
|
||||
|
||||
add_test(aes ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test18_android -D TEST_OUTPUT=tmpfile18.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref18.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
# Android don't have backtrace symbols
|
||||
|
||||
add_test(irelative_reloc ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test20_android -D TEST_OUTPUT=tmpfile20.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref20.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(longjumpInSignals ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test21_android -D TEST_OUTPUT=tmpfile21.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref21.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(x87 ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test22_android -D TEST_OUTPUT=tmpfile22.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref22_android.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
set_tests_properties(x87 PROPERTIES ENVIRONMENT "BOX64_DYNAREC_FASTROUND=0")
|
||||
|
||||
add_test(pshufb ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test23_android -D TEST_OUTPUT=tmpfile23.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref23.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(bswap ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test24_android -D TEST_OUTPUT=tmpfile24.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref24.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(x87cache ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test25_android -D TEST_OUTPUT=tmpfile25.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref25.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(feround ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test26_android -D TEST_OUTPUT=tmpfile26.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref26.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
set_tests_properties(feround PROPERTIES ENVIRONMENT "BOX64_SYNC_ROUNDING=1")
|
||||
|
||||
add_test(sse4_2 ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test27_android -D TEST_OUTPUT=tmpfile27.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref27.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(shaext ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test28_android -D TEST_OUTPUT=tmpfile28.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref28.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
|
||||
add_test(lock ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/test29_android -D TEST_OUTPUT=tmpfile29.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/ref29.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake )
|
||||
endif()
|
||||
|
||||
if(NOT ANDROID)
|
||||
file(GLOB extension_tests "${CMAKE_SOURCE_DIR}/tests/extensions/*.c")
|
||||
foreach(file ${extension_tests})
|
||||
get_filename_component(testname "${file}" NAME_WE)
|
||||
@ -1152,3 +1290,14 @@ foreach(file ${extension_tests})
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/extensions/${testname}.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake)
|
||||
endforeach()
|
||||
else()
|
||||
|
||||
file(GLOB extension_tests "${CMAKE_SOURCE_DIR}/tests/extensions/*.c")
|
||||
foreach(file ${extension_tests})
|
||||
get_filename_component(testname "${file}" NAME_WE)
|
||||
add_test(NAME "${testname}" COMMAND ${CMAKE_COMMAND} -D TEST_PROGRAM=${CMAKE_BINARY_DIR}/${BOX64}
|
||||
-D TEST_ARGS=${CMAKE_SOURCE_DIR}/tests/extensions/${testname}_android -D TEST_OUTPUT=tmpfile-${testname}.txt
|
||||
-D TEST_REFERENCE=${CMAKE_SOURCE_DIR}/tests/extensions/${testname}.txt
|
||||
-P ${CMAKE_SOURCE_DIR}/runTest.cmake)
|
||||
endforeach()
|
||||
endif()
|
@ -43,7 +43,7 @@ uintptr_t RunF30F(x64emu_t *emu, rex_t rex, uintptr_t addr)
|
||||
x64emu_t*emu = test->emu;
|
||||
#endif
|
||||
|
||||
#ifdef TERMUX
|
||||
#ifdef __clang__
|
||||
extern int isinff(float);
|
||||
extern int isnanf(float);
|
||||
#endif
|
||||
|
BIN
tests/benchfloat_android
Executable file
BIN
tests/benchfloat_android
Executable file
Binary file not shown.
BIN
tests/extensions/mmx_android
Executable file
BIN
tests/extensions/mmx_android
Executable file
Binary file not shown.
4
tests/ref12_android.txt
Normal file
4
tests/ref12_android.txt
Normal file
@ -0,0 +1,4 @@
|
||||
1000000000000 => 1000000000000.000000
|
||||
-1000000000000 => -1000000000000.000000
|
||||
(angle_t)268435456.000000 = 268435456 == 0x10000000
|
||||
go PI trucated=-1, -PI rounded=-3
|
564
tests/ref17_android.txt
Normal file
564
tests/ref17_android.txt
Normal file
@ -0,0 +1,564 @@
|
||||
ucomiss 1.000000, 2.000000 => 0x203
|
||||
ucomiss 2.000000, 1.000000 => 0x202
|
||||
ucomiss 1.000000, inf => 0x203
|
||||
ucomiss inf, 1.000000 => 0x202
|
||||
ucomiss 1.000000, -inf => 0x202
|
||||
ucomiss -inf, 1.000000 => 0x203
|
||||
ucomiss 1.000000, nan => 0x247
|
||||
ucomiss nan, 1.000000 => 0x247
|
||||
ucomiss 1.000000, 1.000000 => 0x242
|
||||
ucomiss 1.000000, 1.000000 => 0x242
|
||||
ucomiss inf, inf => 0x242
|
||||
ucomiss -inf, inf => 0x203
|
||||
ucomiss inf, -inf => 0x202
|
||||
ucomiss nan, nan => 0x247
|
||||
minss 1, 2 => 1
|
||||
minss 2, 1 => 1
|
||||
minss -inf, 2 => -inf
|
||||
minss 2, -inf => -inf
|
||||
minss inf, 2 => 2
|
||||
minss 2, inf => 2
|
||||
minss nan, 2 => 2
|
||||
minss 2, nan => nan
|
||||
minss nan, 3.40282e+38 => 3.40282e+38
|
||||
minss 3.40282e+38, nan => nan
|
||||
minss -inf, 3.40282e+38 => -inf
|
||||
minss 3.40282e+38, -inf => -inf
|
||||
minss inf, 3.40282e+38 => 3.40282e+38
|
||||
minss 3.40282e+38, inf => 3.40282e+38
|
||||
maxss 1, 2 => 2
|
||||
maxss 2, 1 => 2
|
||||
maxss -inf, 2 => 2
|
||||
maxss 2, -inf => 2
|
||||
maxss inf, 2 => inf
|
||||
maxss 2, inf => inf
|
||||
maxss nan, 2 => 2
|
||||
maxss 2, nan => nan
|
||||
maxss nan, 3.40282e+38 => 3.40282e+38
|
||||
maxss 3.40282e+38, nan => nan
|
||||
maxss -inf, 3.40282e+38 => 3.40282e+38
|
||||
maxss 3.40282e+38, -inf => 3.40282e+38
|
||||
maxss inf, 3.40282e+38 => inf
|
||||
maxss 3.40282e+38, inf => inf
|
||||
cmpss 0 1.000000, 2.000000 => 0x0
|
||||
cmpss 0 2.000000, 1.000000 => 0x0
|
||||
cmpss 0 1.000000, inf => 0x0
|
||||
cmpss 0 inf, 1.000000 => 0x0
|
||||
cmpss 0 1.000000, -inf => 0x0
|
||||
cmpss 0 -inf, 1.000000 => 0x0
|
||||
cmpss 0 1.000000, nan => 0x0
|
||||
cmpss 0 nan, 1.000000 => 0x0
|
||||
cmpss 0 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 0 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 0 inf, inf => 0xffffffff
|
||||
cmpss 0 -inf, inf => 0x0
|
||||
cmpss 0 inf, -inf => 0x0
|
||||
cmpss 0 nan, nan => 0x0
|
||||
cmpss 1 1.000000, 2.000000 => 0xffffffff
|
||||
cmpss 1 2.000000, 1.000000 => 0x0
|
||||
cmpss 1 1.000000, inf => 0xffffffff
|
||||
cmpss 1 inf, 1.000000 => 0x0
|
||||
cmpss 1 1.000000, -inf => 0x0
|
||||
cmpss 1 -inf, 1.000000 => 0xffffffff
|
||||
cmpss 1 1.000000, nan => 0x0
|
||||
cmpss 1 nan, 1.000000 => 0x0
|
||||
cmpss 1 1.000000, 1.000000 => 0x0
|
||||
cmpss 1 1.000000, 1.000000 => 0x0
|
||||
cmpss 1 inf, inf => 0x0
|
||||
cmpss 1 -inf, inf => 0xffffffff
|
||||
cmpss 1 inf, -inf => 0x0
|
||||
cmpss 1 nan, nan => 0x0
|
||||
cmpss 2 1.000000, 2.000000 => 0xffffffff
|
||||
cmpss 2 2.000000, 1.000000 => 0x0
|
||||
cmpss 2 1.000000, inf => 0xffffffff
|
||||
cmpss 2 inf, 1.000000 => 0x0
|
||||
cmpss 2 1.000000, -inf => 0x0
|
||||
cmpss 2 -inf, 1.000000 => 0xffffffff
|
||||
cmpss 2 1.000000, nan => 0x0
|
||||
cmpss 2 nan, 1.000000 => 0x0
|
||||
cmpss 2 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 2 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 2 inf, inf => 0xffffffff
|
||||
cmpss 2 -inf, inf => 0xffffffff
|
||||
cmpss 2 inf, -inf => 0x0
|
||||
cmpss 2 nan, nan => 0x0
|
||||
cmpss 3 1.000000, 2.000000 => 0x0
|
||||
cmpss 3 2.000000, 1.000000 => 0x0
|
||||
cmpss 3 1.000000, inf => 0x0
|
||||
cmpss 3 inf, 1.000000 => 0x0
|
||||
cmpss 3 1.000000, -inf => 0x0
|
||||
cmpss 3 -inf, 1.000000 => 0x0
|
||||
cmpss 3 1.000000, nan => 0xffffffff
|
||||
cmpss 3 nan, 1.000000 => 0xffffffff
|
||||
cmpss 3 1.000000, 1.000000 => 0x0
|
||||
cmpss 3 1.000000, 1.000000 => 0x0
|
||||
cmpss 3 inf, inf => 0x0
|
||||
cmpss 3 -inf, inf => 0x0
|
||||
cmpss 3 inf, -inf => 0x0
|
||||
cmpss 3 nan, nan => 0xffffffff
|
||||
cmpss 4 1.000000, 2.000000 => 0xffffffff
|
||||
cmpss 4 2.000000, 1.000000 => 0xffffffff
|
||||
cmpss 4 1.000000, inf => 0xffffffff
|
||||
cmpss 4 inf, 1.000000 => 0xffffffff
|
||||
cmpss 4 1.000000, -inf => 0xffffffff
|
||||
cmpss 4 -inf, 1.000000 => 0xffffffff
|
||||
cmpss 4 1.000000, nan => 0xffffffff
|
||||
cmpss 4 nan, 1.000000 => 0xffffffff
|
||||
cmpss 4 1.000000, 1.000000 => 0x0
|
||||
cmpss 4 1.000000, 1.000000 => 0x0
|
||||
cmpss 4 inf, inf => 0x0
|
||||
cmpss 4 -inf, inf => 0xffffffff
|
||||
cmpss 4 inf, -inf => 0xffffffff
|
||||
cmpss 4 nan, nan => 0xffffffff
|
||||
cmpss 5 1.000000, 2.000000 => 0x0
|
||||
cmpss 5 2.000000, 1.000000 => 0xffffffff
|
||||
cmpss 5 1.000000, inf => 0x0
|
||||
cmpss 5 inf, 1.000000 => 0xffffffff
|
||||
cmpss 5 1.000000, -inf => 0xffffffff
|
||||
cmpss 5 -inf, 1.000000 => 0x0
|
||||
cmpss 5 1.000000, nan => 0xffffffff
|
||||
cmpss 5 nan, 1.000000 => 0xffffffff
|
||||
cmpss 5 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 5 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 5 inf, inf => 0xffffffff
|
||||
cmpss 5 -inf, inf => 0x0
|
||||
cmpss 5 inf, -inf => 0xffffffff
|
||||
cmpss 5 nan, nan => 0xffffffff
|
||||
cmpss 6 1.000000, 2.000000 => 0x0
|
||||
cmpss 6 2.000000, 1.000000 => 0xffffffff
|
||||
cmpss 6 1.000000, inf => 0x0
|
||||
cmpss 6 inf, 1.000000 => 0xffffffff
|
||||
cmpss 6 1.000000, -inf => 0xffffffff
|
||||
cmpss 6 -inf, 1.000000 => 0x0
|
||||
cmpss 6 1.000000, nan => 0xffffffff
|
||||
cmpss 6 nan, 1.000000 => 0xffffffff
|
||||
cmpss 6 1.000000, 1.000000 => 0x0
|
||||
cmpss 6 1.000000, 1.000000 => 0x0
|
||||
cmpss 6 inf, inf => 0x0
|
||||
cmpss 6 -inf, inf => 0x0
|
||||
cmpss 6 inf, -inf => 0xffffffff
|
||||
cmpss 6 nan, nan => 0xffffffff
|
||||
cmpss 7 1.000000, 2.000000 => 0xffffffff
|
||||
cmpss 7 2.000000, 1.000000 => 0xffffffff
|
||||
cmpss 7 1.000000, inf => 0xffffffff
|
||||
cmpss 7 inf, 1.000000 => 0xffffffff
|
||||
cmpss 7 1.000000, -inf => 0xffffffff
|
||||
cmpss 7 -inf, 1.000000 => 0xffffffff
|
||||
cmpss 7 1.000000, nan => 0x0
|
||||
cmpss 7 nan, 1.000000 => 0x0
|
||||
cmpss 7 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 7 1.000000, 1.000000 => 0xffffffff
|
||||
cmpss 7 inf, inf => 0xffffffff
|
||||
cmpss 7 -inf, inf => 0xffffffff
|
||||
cmpss 7 inf, -inf => 0xffffffff
|
||||
cmpss 7 nan, nan => 0x0
|
||||
pshufb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x80 0x2 0x2 0xff 0x0 0x0 0xff 0xfe 0x81 0x0 0x3 0x72 0x32 0xff 0x80
|
||||
phaddw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x7fff 0x7fff 0x3 0x8004 0xffff 0xfffe 0x9050 0x7fff
|
||||
phaddd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x7fffffff 0x7fffffff 0x80000001 0x3
|
||||
phaddsw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x8000 0x7fff 0x3 0x8004 0xffff 0xfffe 0x9050 0x8000
|
||||
pmaddubsw(0x80ff 0x7f 0x201 0x8103 0x84fe 0x5272 0xa5 0x32c0 , 0x100 0x1505 0x8020 0xff 0x708 0x681 0xf0a 0x110 ) = 0x80 0x27b 0xff20 0xfffd 0xb8c 0xc95e 0x672 0xc32
|
||||
phsubw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x7fff 0x7fff 0xffff 0x8002 0x1 0x0 0x7050 0x7ffd
|
||||
psignb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0x0 0x80 0x7f 0x0 0x1 0xfe 0xfd 0x0 0xfe 0x84 0x8e 0x52 0xa5 0x0 0xc0 0x32
|
||||
psignw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x1 0x8000 0x8001 0x0 0x1 0xfffe 0xfffd 0x7fff
|
||||
psignd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0xffffffff 0x80000000 0x7fffffff 0x0
|
||||
pmulhrsw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x1 0x8001 0xffff 0x0 0x0 0xfffe 0x0 0x7ffe
|
||||
pblendvps(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe , 0x1 0x80000000 0x80000005 0xfffe ) = 0xffffffff 0x80000000 0x5 0x0
|
||||
ptestz(0x80000000ffffffff 0x7fffffff , 0x8000000000000001 0xfffffffe00000005 ) = 0
|
||||
ptestc(0x80000000ffffffff 0x7fffffff , 0x8000000000000001 0xfffffffe00000005 ) = 0
|
||||
ptestnzc(0x80000000ffffffff 0x7fffffff , 0x8000000000000001 0xfffffffe00000005 ) = 1
|
||||
pabsb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 ) = 0x1 0x80 0x7f 0x0 0x1 0x2 0x3 0x7f 0x2 0x7c 0x72 0x52 0x5b 0x0 0x40 0x32
|
||||
pabsw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 ) = 0x1 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x7fff
|
||||
pabsd(0xffffffff 0x80000000 0x7fffffff 0x0 ) = 0x1 0x80000000 0x7fffffff 0x0
|
||||
pmovsxbw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 ) = 0xffff 0xffff 0x0 0xff80 0xffff 0x7f 0x0 0x0
|
||||
pmovsxbd(0xffffffff 0x80000000 0x7fffffff 0x0 ) = 0xffffffff 0xffffffff 0xffffffff 0xffffffff
|
||||
pmovsxbq(0xffffffffffffffff 0x8000000000000000 ) = 0xffffffffffffffff 0xffffffffffffffff
|
||||
pmovsxwd(0xffffffff 0x80000000 0x7fffffff 0x0 ) = 0xffffffff 0xffffffff 0x0 0xffff8000
|
||||
pmovsxwq(0xffffffffffffffff 0x8000000000000000 ) = 0xffffffffffffffff 0xffffffffffffffff
|
||||
pmovsxdq(0xffffffffffffffff 0x8000000000000000 ) = 0xffffffffffffffff 0xffffffffffffffff
|
||||
pmovzxbw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 ) = 0xff 0xff 0x0 0x80 0xff 0x7f 0x0 0x0
|
||||
pmovzxbd(0xffffffff 0x80000000 0x7fffffff 0x0 ) = 0xff 0xff 0xff 0xff
|
||||
pmovzxbq(0xffffffffffffffff 0x8000000000000000 ) = 0xff 0xff
|
||||
pmovzxwd(0xffffffff 0x80000000 0x7fffffff 0x0 ) = 0xffff 0xffff 0x0 0x8000
|
||||
pmovzxwq(0xffffffffffffffff 0x8000000000000000 ) = 0xffff 0xffff
|
||||
pmovzxdq(0xffffffffffffffff 0x8000000000000000 ) = 0xffffffff 0xffffffff
|
||||
pminsd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0xffffffff 0x80000000 0x5 0xfffffffe
|
||||
pmaxsd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x1 0x80000000 0x7fffffff 0x0
|
||||
pblendw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 0) = 0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001
|
||||
pblendw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 255) = 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001
|
||||
pblendw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 170) = 0xffff 0x7fff 0x7fff 0xffff 0x1 0x9000 0x3 0x8001
|
||||
pblendw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 2) = 0xffff 0x7fff 0x7fff 0x0 0x1 0x2 0x3 0x8001
|
||||
palignr(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 0) = 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1
|
||||
palignr(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 2) = 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 0xff 0x80
|
||||
palignr(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 7) = 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 0xff 0x80 0x7f 0x0 0x1 0x2 0x3
|
||||
palignr(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 15) = 0x1 0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0
|
||||
palignr(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 16) = 0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32
|
||||
palignr(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 255) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
movmskpd(0xffffffffffffffff 0x8000000000000000 ) = 0x3
|
||||
psqrtpd(1 2 ) = 1 1.41421
|
||||
psqrtpd(0 -2 ) = 0 0xfff8000000000000
|
||||
psqrtpd(inf -inf ) = inf 0xfff8000000000000
|
||||
psqrtpd(0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
andpd(1 2 , 0 -2 ) = 0 2
|
||||
andpd(0 -2 , inf -inf ) = 0 -2
|
||||
andpd(1 2 , 0x7ff8000000000000 -0 ) = 1 0
|
||||
andpd(0 -2 , 0x7ff8000000000000 -0 ) = 0 -0
|
||||
andpd(inf -inf , 0x7ff8000000000000 -0 ) = inf -0
|
||||
andpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
andnpd(1 2 , 0 -2 ) = 0 -0
|
||||
andnpd(0 -2 , inf -inf ) = inf 1
|
||||
andnpd(1 2 , 0x7ff8000000000000 -0 ) = 3 -0
|
||||
andnpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 0
|
||||
andnpd(inf -inf , 0x7ff8000000000000 -0 ) = 1.11254e-308 0
|
||||
andnpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0 0
|
||||
orpd(1 2 , 0 -2 ) = 1 -2
|
||||
orpd(0 -2 , inf -inf ) = inf -inf
|
||||
orpd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
orpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
orpd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
orpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
xorpd(1 2 , 0 -2 ) = 1 -0
|
||||
xorpd(0 -2 , inf -inf ) = inf 1
|
||||
xorpd(1 2 , 0x7ff8000000000000 -0 ) = 3 -2
|
||||
xorpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
xorpd(inf -inf , 0x7ff8000000000000 -0 ) = 1.11254e-308 inf
|
||||
xorpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0 0
|
||||
addpd(1 2 , 0 -2 ) = 1 0
|
||||
addpd(0 -2 , inf -inf ) = inf -inf
|
||||
addpd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
addpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
addpd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
addpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
mulpd(1 2 , 0 -2 ) = 0 -4
|
||||
mulpd(0 -2 , inf -inf ) = 0xfff8000000000000 inf
|
||||
mulpd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
mulpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 0
|
||||
mulpd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 0xfff8000000000000
|
||||
mulpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 0
|
||||
subpd(1 2 , 0 -2 ) = 1 4
|
||||
subpd(0 -2 , inf -inf ) = -inf inf
|
||||
subpd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
subpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
subpd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
subpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 0
|
||||
minpd(1 2 , 0 -2 ) = 0 -2
|
||||
minpd(0 -2 , inf -inf ) = 0 -inf
|
||||
minpd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
minpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
minpd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
minpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
divpd(1 2 , 0 -2 ) = inf -1
|
||||
divpd(0 -2 , inf -inf ) = 0 0
|
||||
divpd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
divpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 inf
|
||||
divpd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 inf
|
||||
divpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 0xfff8000000000000
|
||||
maxpd(1 2 , 0 -2 ) = 1 2
|
||||
maxpd(0 -2 , inf -inf ) = inf -2
|
||||
maxpd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
maxpd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
maxpd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
maxpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -0
|
||||
punpcklbw(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x0 0x80 0x1 0x7f 0x5 0x0 0x15 0x1 0x20 0x2 0x80 0x3 0xff 0x81 0x0
|
||||
punpcklwd(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0xffff 0x8000 0x8000 0x7fff 0x7fff 0xffff 0x0 0xffff
|
||||
punpckldq(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0xffffffff 0x1 0x80000000 0x80000000
|
||||
ppacksswb(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x80ff 0x7f 0x201 0x8003 0x7f80 0xffff 0x8050 0x80fe
|
||||
pcmpgtb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0x0 0x0 0xff 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0xff 0xff 0x0 0x0 0x0 0xff
|
||||
pcmpgtw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0xffff 0x0 0xffff 0xffff 0x0 0xffff 0xffff 0x0
|
||||
pcmpgtd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x0 0x0 0xffffffff 0xffffffff
|
||||
packuswb(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x0 0xff 0x201 0x3 0xff00 0x0 0x50 0x0
|
||||
punpckhbw(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xfe 0x8 0x84 0x7 0x72 0x81 0x52 0x6 0xa5 0xa 0x0 0xf 0xc0 0x10 0x32 0x1
|
||||
punpckhwd(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x1 0x50 0x2 0x9000 0x3 0xfffe 0x8001 0x8001
|
||||
punpckhdq(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x7fffffff 0x5 0x0 0xfffffffe
|
||||
ppackssdw(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x8000ffff 0x7fff 0x80000001 0xfffe0005
|
||||
punpcklqdq(0xffffffffffffffff 0x8000000000000000 , 0x1 0x8000000000000000 ) = 0xffffffffffffffff 0x1
|
||||
punpckhqdq(0xffffffffffffffff 0x8000000000000000 , 0x1 0x8000000000000000 ) = 0x8000000000000000 0x8000000000000000
|
||||
pshufd(0xffffffff 0x80000000 0x7fffffff 0x0 0) = 0xffffffff 0xffffffff 0xffffffff 0xffffffff
|
||||
pshufd(0xffffffff 0x80000000 0x7fffffff 0x0 255) = 0x0 0x0 0x0 0x0
|
||||
pshufd(0xffffffff 0x80000000 0x7fffffff 0x0 170) = 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff
|
||||
pshufd(0xffffffff 0x80000000 0x7fffffff 0x0 2) = 0x7fffffff 0xffffffff 0xffffffff 0xffffffff
|
||||
psrlw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 0) = 0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001
|
||||
psrlw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 255) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
psrlw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 170) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
psrlw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 2) = 0x3fff 0x2000 0x1fff 0x0 0x0 0x0 0x0 0x2000
|
||||
psrld(0xffffffff 0x80000000 0x7fffffff 0x0 0) = 0xffffffff 0x80000000 0x7fffffff 0x0
|
||||
psrld(0xffffffff 0x80000000 0x7fffffff 0x0 255) = 0x0 0x0 0x0 0x0
|
||||
psrld(0xffffffff 0x80000000 0x7fffffff 0x0 170) = 0x0 0x0 0x0 0x0
|
||||
psrld(0xffffffff 0x80000000 0x7fffffff 0x0 2) = 0x3fffffff 0x20000000 0x1fffffff 0x0
|
||||
psrlq(0xffffffffffffffff 0x8000000000000000 0) = 0xffffffffffffffff 0x8000000000000000
|
||||
psrlq(0xffffffffffffffff 0x8000000000000000 255) = 0x0 0x0
|
||||
psrlq(0xffffffffffffffff 0x8000000000000000 170) = 0x0 0x0
|
||||
psrlq(0xffffffffffffffff 0x8000000000000000 2) = 0x3fffffffffffffff 0x2000000000000000
|
||||
psraw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 0) = 0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001
|
||||
psraw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 255) = 0xffff 0xffff 0x0 0x0 0x0 0x0 0x0 0xffff
|
||||
psraw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 170) = 0xffff 0xffff 0x0 0x0 0x0 0x0 0x0 0xffff
|
||||
psraw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 2) = 0xffff 0xe000 0x1fff 0x0 0x0 0x0 0x0 0xe000
|
||||
psrad(0xffffffff 0x80000000 0x7fffffff 0x0 0) = 0xffffffff 0x80000000 0x7fffffff 0x0
|
||||
psrad(0xffffffff 0x80000000 0x7fffffff 0x0 255) = 0xffffffff 0xffffffff 0x0 0x0
|
||||
psrad(0xffffffff 0x80000000 0x7fffffff 0x0 170) = 0xffffffff 0xffffffff 0x0 0x0
|
||||
psrad(0xffffffff 0x80000000 0x7fffffff 0x0 2) = 0xffffffff 0xe0000000 0x1fffffff 0x0
|
||||
psllw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 0) = 0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001
|
||||
psllw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 255) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
psllw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 170) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
psllw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 2) = 0xfffc 0x0 0xfffc 0x0 0x4 0x8 0xc 0x4
|
||||
pslld(0xffffffff 0x80000000 0x7fffffff 0x0 0) = 0xffffffff 0x80000000 0x7fffffff 0x0
|
||||
pslld(0xffffffff 0x80000000 0x7fffffff 0x0 255) = 0x0 0x0 0x0 0x0
|
||||
pslld(0xffffffff 0x80000000 0x7fffffff 0x0 170) = 0x0 0x0 0x0 0x0
|
||||
pslld(0xffffffff 0x80000000 0x7fffffff 0x0 2) = 0xfffffffc 0x0 0xfffffffc 0x0
|
||||
psllq(0xffffffffffffffff 0x8000000000000000 0) = 0xffffffffffffffff 0x8000000000000000
|
||||
psllq(0xffffffffffffffff 0x8000000000000000 255) = 0x0 0x0
|
||||
psllq(0xffffffffffffffff 0x8000000000000000 170) = 0x0 0x0
|
||||
psllq(0xffffffffffffffff 0x8000000000000000 2) = 0xfffffffffffffffc 0x0
|
||||
pcmpeqb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
pcmpeqw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xffff
|
||||
pcmpeqd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x0 0xffffffff 0x0 0x0
|
||||
haddpd(1 2 , 0 -2 ) = 3 -2
|
||||
haddpd(0 -2 , inf -inf ) = -2 0xfff8000000000000
|
||||
haddpd(1 2 , 0x7ff8000000000000 -0 ) = 3 0x7ff8000000000000
|
||||
haddpd(0 -2 , 0x7ff8000000000000 -0 ) = -2 0x7ff8000000000000
|
||||
haddpd(inf -inf , 0x7ff8000000000000 -0 ) = 0xfff8000000000000 0x7ff8000000000000
|
||||
haddpd(0x7ff8000000000000 -0 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 0x7ff8000000000000
|
||||
psrlw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
psrld(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x0 0x0 0x0 0x0
|
||||
psrlq(0xffffffffffffffff 0x8000000000000000 , 0x1 0x8000000000000000 ) = 0x7fffffffffffffff 0x4000000000000000
|
||||
paddq(0xffffffffffffffff 0x8000000000000000 , 0x1 0x8000000000000000 ) = 0x0 0x0
|
||||
pmullw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x8000 0x8000 0x8001 0x0 0x50 0x2000 0xfffa 0x1
|
||||
psubusb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x7f 0x7a 0x0 0x0 0x0 0x0 0x81 0xf6 0x7d 0x0 0x4c 0x9b 0x0 0xb0 0x31
|
||||
psubusw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x7fff 0x1 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
pminub(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0x0 0x1 0x5 0x0 0x1 0x2 0x3 0x0 0x8 0x7 0x72 0x6 0xa 0x0 0x10 0x1
|
||||
pand(0x81030201007f80ff 0x32c000a5527284fe , 0xff802015050100 0x1100f0a06810708 ) = 0x3000000050000 0x2000408
|
||||
paddusb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x81 0x84 0x15 0x21 0x82 0xff 0x81 0xff 0x8b 0xf3 0x58 0xaf 0xf 0xd0 0x33
|
||||
paddusw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0xffff 0xffff 0xffff 0xffff 0x51 0x9002 0xffff 0xffff
|
||||
pmaxub(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x80 0x7f 0x15 0x20 0x80 0xff 0x81 0xfe 0x84 0x81 0x52 0xa5 0xf 0xc0 0x32
|
||||
pandn(0x81030201007f80ff 0x32c000a5527284fe , 0xff802015050100 0x1100f0a06810708 ) = 0xfc802015000100 0x1100f0a04810300
|
||||
pavgb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0x80 0x41 0x42 0xb 0x11 0x41 0x81 0x41 0x83 0x46 0x7a 0x2c 0x58 0x8 0x68 0x1a
|
||||
psraw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0xffff 0xffff 0x0 0x0 0x0 0x0 0x0 0xffff
|
||||
psrad(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0xffffffff 0xffffffff 0x0 0x0
|
||||
pavgb(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0xc000 0x8000 0xbfff 0x8000 0x29 0x4801 0x8001 0x8001
|
||||
pmulhuw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x7fff 0x3fff 0x7ffe 0x0 0x0 0x1 0x2 0x4001
|
||||
pmulhw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x0 0xc000 0xffff 0x0 0x0 0xffff 0xffff 0x3fff
|
||||
psubsb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x80 0x7a 0xeb 0xe1 0x7f 0x4 0x81 0xf6 0x80 0x7f 0x4c 0x9b 0xf1 0xb0 0x31
|
||||
psubsw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x7fff 0x8000 0x7fff 0x1 0xffb1 0x7002 0x5 0x0
|
||||
pminsw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x8000 0x8000 0xffff 0xffff 0x1 0x9000 0xfffe 0x8001
|
||||
por(0x81030201007f80ff 0x32c000a5527284fe , 0xff802015050100 0x1100f0a06810708 ) = 0x81ff8221157f81ff 0x33d00faf56f387fe
|
||||
paddusb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x81 0x7f 0x15 0x21 0x82 0x2 0x81 0x6 0x8b 0xf3 0x58 0xaf 0xf 0xd0 0x33
|
||||
paddusw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x8000 0xffff 0x7ffe 0xffff 0x51 0x9002 0x1 0x8000
|
||||
pmaxsw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0xffff 0x7fff 0x7fff 0x0 0x50 0x2 0x3 0x8001
|
||||
pxor(0x81030201007f80ff 0x32c000a5527284fe , 0xff802015050100 0x1100f0a06810708 ) = 0x81fc8221157a81ff 0x33d00faf54f383f6
|
||||
psllw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
pslld(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x0 0x0 0x0 0x0
|
||||
psllq(0xffffffffffffffff 0x8000000000000000 , 0x1 0x8000000000000000 ) = 0xfffffffffffffffe 0x0
|
||||
pmuludq(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0xffffffff 0x0 0x7ffffffb 0x2
|
||||
pmaddwd(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x0 0xc001 0x8001 0xffff 0x2050 0xffff 0xfffb 0x3ffe
|
||||
psadbw(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0x27 0x4 0x0 0x0 0x0 0x0 0x0 0x0 0x59 0x3 0x0 0x0 0x0 0x0 0x0 0x0
|
||||
psubb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x7f 0x7a 0xeb 0xe1 0x82 0x4 0x81 0xf6 0x7d 0xf1 0x4c 0x9b 0xf1 0xb0 0x31
|
||||
psubw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x7fff 0x1 0x8000 0x1 0xffb1 0x7002 0x5 0x0
|
||||
psubd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0xfffffffe 0x0 0x7ffffffa 0x2
|
||||
psubq(0xffffffffffffffff 0x8000000000000000 , 0x1 0x8000000000000000 ) = 0xfffffffffffffffe 0x0
|
||||
paddb(0xff 0x80 0x7f 0x0 0x1 0x2 0x3 0x81 0xfe 0x84 0x72 0x52 0xa5 0x0 0xc0 0x32 , 0x0 0x1 0x5 0x15 0x20 0x80 0xff 0x0 0x8 0x7 0x81 0x6 0xa 0xf 0x10 0x1 ) = 0xff 0x81 0x84 0x15 0x21 0x82 0x2 0x81 0x6 0x8b 0xf3 0x58 0xaf 0xf 0xd0 0x33
|
||||
paddw(0xffff 0x8000 0x7fff 0x0 0x1 0x2 0x3 0x8001 , 0x8000 0x7fff 0xffff 0xffff 0x50 0x9000 0xfffe 0x8001 ) = 0x7fff 0xffff 0x7ffe 0xffff 0x51 0x9002 0x1 0x2
|
||||
paddd(0xffffffff 0x80000000 0x7fffffff 0x0 , 0x1 0x80000000 0x5 0xfffffffe ) = 0x0 0x0 0x80000004 0xfffffffe
|
||||
pmovhlps(1 2 3 -4 , 0 -2 -10 0.5 ) = -10 0.5 3 -4
|
||||
unpcklps(1 2 3 -4 , 0 -2 -10 0.5 ) = 1 0 2 -2
|
||||
unpckhps(1 2 3 -4 , 0 -2 -10 0.5 ) = 3 -10 -4 0.5
|
||||
pmovhps(1 2 3 -4 , 0 -2 -10 0.5 ) = 1 2 0 -2
|
||||
psqrtps(1 2 3 -4 ) = 1 1.41421 1.73205 -nan
|
||||
psqrtps(0 -2 -10 0.5 ) = 0 -nan -nan 0.707107
|
||||
psqrtps(inf -inf -inf 1 ) = inf -nan -nan 1
|
||||
psqrtps(nan -0 -nan inf ) = nan -0 -nan inf
|
||||
prcpps(nan -0 -nan inf ) = nan -inf -nan 0
|
||||
andps(1 2 3 -4 , 0 -2 -10 0.5 ) = 0 2 2 0
|
||||
andps(0 -2 -10 0.5 , inf -inf -inf 1 ) = 0 -2 -8 0.5
|
||||
andps(1 2 3 -4 , nan -0 -nan inf ) = 1 0 3 4
|
||||
andps(0 -2 -10 0.5 , nan -0 -nan inf ) = 0 -0 -8 0.5
|
||||
andps(inf -inf -inf 1 , nan -0 -nan inf ) = inf -0 -inf 1
|
||||
andps(nan -0 -nan inf , nan -0 -nan inf ) = nan -0 -nan inf
|
||||
andnps(1 2 3 -4 , 0 -2 -10 0.5 ) = 0 -0 -2.93874e-38 0.5
|
||||
andnps(0 -2 -10 0.5 , inf -inf -inf 1 ) = inf 1 0.25 1.17549e-38
|
||||
andnps(1 2 3 -4 , nan -0 -nan inf ) = 3 -0 -1 0.5
|
||||
andnps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan 0 0.375 4
|
||||
andnps(inf -inf -inf 1 , nan -0 -nan inf ) = 5.87747e-39 0 5.87747e-39 2
|
||||
andnps(nan -0 -nan inf , nan -0 -nan inf ) = 0 0 0 0
|
||||
orps(1 2 3 -4 , 0 -2 -10 0.5 ) = 1 -2 -14 -inf
|
||||
orps(0 -2 -10 0.5 , inf -inf -inf 1 ) = inf -inf -nan 1
|
||||
orps(1 2 3 -4 , nan -0 -nan inf ) = nan -2 -nan -inf
|
||||
orps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan -2 -nan inf
|
||||
orps(inf -inf -inf 1 , nan -0 -nan inf ) = nan -inf -nan inf
|
||||
orps(nan -0 -nan inf , nan -0 -nan inf ) = nan -0 -nan inf
|
||||
xorps(1 2 3 -4 , 0 -2 -10 0.5 ) = 1 -0 -4.11423e-38 -inf
|
||||
xorps(0 -2 -10 0.5 , inf -inf -inf 1 ) = inf 1 0.3125 1.17549e-38
|
||||
xorps(1 2 3 -4 , nan -0 -nan inf ) = 3 -2 -1 -0.5
|
||||
xorps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan 2 0.4375 4
|
||||
xorps(inf -inf -inf 1 , nan -0 -nan inf ) = 5.87747e-39 inf 5.87747e-39 2
|
||||
xorps(nan -0 -nan inf , nan -0 -nan inf ) = 0 0 0 0
|
||||
addps(1 2 3 -4 , 0 -2 -10 0.5 ) = 1 0 -7 -3.5
|
||||
addps(0 -2 -10 0.5 , inf -inf -inf 1 ) = inf -inf -inf 1.5
|
||||
addps(1 2 3 -4 , nan -0 -nan inf ) = nan 2 -nan inf
|
||||
addps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan -2 -nan inf
|
||||
addps(inf -inf -inf 1 , nan -0 -nan inf ) = nan -inf -nan inf
|
||||
addps(nan -0 -nan inf , nan -0 -nan inf ) = nan -0 -nan inf
|
||||
mulps(1 2 3 -4 , 0 -2 -10 0.5 ) = 0 -4 -30 -2
|
||||
mulps(0 -2 -10 0.5 , inf -inf -inf 1 ) = -nan inf inf 0.5
|
||||
mulps(1 2 3 -4 , nan -0 -nan inf ) = nan -0 -nan -inf
|
||||
mulps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan 0 -nan inf
|
||||
mulps(inf -inf -inf 1 , nan -0 -nan inf ) = nan -nan -nan inf
|
||||
mulps(nan -0 -nan inf , nan -0 -nan inf ) = nan 0 -nan inf
|
||||
subps(1 2 3 -4 , 0 -2 -10 0.5 ) = 1 4 13 -4.5
|
||||
subps(0 -2 -10 0.5 , inf -inf -inf 1 ) = -inf inf inf -0.5
|
||||
subps(1 2 3 -4 , nan -0 -nan inf ) = nan 2 -nan -inf
|
||||
subps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan -2 -nan -inf
|
||||
subps(inf -inf -inf 1 , nan -0 -nan inf ) = nan -inf -nan -inf
|
||||
subps(nan -0 -nan inf , nan -0 -nan inf ) = nan 0 -nan -nan
|
||||
minps(1 2 3 -4 , 0 -2 -10 0.5 ) = 0 -2 -10 -4
|
||||
minps(0 -2 -10 0.5 , inf -inf -inf 1 ) = 0 -inf -inf 0.5
|
||||
minps(1 2 3 -4 , nan -0 -nan inf ) = nan -0 -nan -4
|
||||
minps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan -2 -nan 0.5
|
||||
minps(inf -inf -inf 1 , nan -0 -nan inf ) = nan -inf -nan 1
|
||||
minps(nan -0 -nan inf , nan -0 -nan inf ) = nan -0 -nan inf
|
||||
divps(1 2 3 -4 , 0 -2 -10 0.5 ) = inf -1 -0.3 -8
|
||||
divps(0 -2 -10 0.5 , inf -inf -inf 1 ) = 0 0 0 0.5
|
||||
divps(1 2 3 -4 , nan -0 -nan inf ) = nan -inf -nan -0
|
||||
divps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan inf -nan 0
|
||||
divps(inf -inf -inf 1 , nan -0 -nan inf ) = nan inf -nan 0
|
||||
divps(nan -0 -nan inf , nan -0 -nan inf ) = nan -nan -nan -nan
|
||||
maxps(1 2 3 -4 , 0 -2 -10 0.5 ) = 1 2 3 0.5
|
||||
maxps(0 -2 -10 0.5 , inf -inf -inf 1 ) = inf -2 -10 1
|
||||
maxps(1 2 3 -4 , nan -0 -nan inf ) = nan 2 -nan inf
|
||||
maxps(0 -2 -10 0.5 , nan -0 -nan inf ) = nan -0 -nan inf
|
||||
maxps(inf -inf -inf 1 , nan -0 -nan inf ) = nan -0 -nan inf
|
||||
maxps(nan -0 -nan inf , nan -0 -nan inf ) = nan -0 -nan inf
|
||||
shufps(1 2 3 -4 , 0 -2 -10 0.5 , 0) = 1 1 0 0
|
||||
shufps(0 -2 -10 0.5 , inf -inf -inf 1 , 0) = 0 0 inf inf
|
||||
shufps(1 2 3 -4 , nan -0 -nan inf , 0) = 1 1 nan nan
|
||||
shufps(0 -2 -10 0.5 , nan -0 -nan inf , 0) = 0 0 nan nan
|
||||
shufps(inf -inf -inf 1 , nan -0 -nan inf , 0) = inf inf nan nan
|
||||
shufps(nan -0 -nan inf , nan -0 -nan inf , 0) = nan nan nan nan
|
||||
shufps(1 2 3 -4 , 0 -2 -10 0.5 , 21) = 2 2 -2 0
|
||||
shufps(0 -2 -10 0.5 , inf -inf -inf 1 , 21) = -2 -2 -inf inf
|
||||
shufps(1 2 3 -4 , nan -0 -nan inf , 21) = 2 2 -0 nan
|
||||
shufps(0 -2 -10 0.5 , nan -0 -nan inf , 21) = -2 -2 -0 nan
|
||||
shufps(inf -inf -inf 1 , nan -0 -nan inf , 21) = -inf -inf -0 nan
|
||||
shufps(nan -0 -nan inf , nan -0 -nan inf , 21) = -0 -0 -0 nan
|
||||
shufps(1 2 3 -4 , 0 -2 -10 0.5 , 255) = -4 -4 0.5 0.5
|
||||
shufps(0 -2 -10 0.5 , inf -inf -inf 1 , 255) = 0.5 0.5 1 1
|
||||
shufps(1 2 3 -4 , nan -0 -nan inf , 255) = -4 -4 inf inf
|
||||
shufps(0 -2 -10 0.5 , nan -0 -nan inf , 255) = 0.5 0.5 inf inf
|
||||
shufps(inf -inf -inf 1 , nan -0 -nan inf , 255) = 1 1 inf inf
|
||||
shufps(nan -0 -nan inf , nan -0 -nan inf , 255) = inf inf inf inf
|
||||
shufps(1 2 3 -4 , 0 -2 -10 0.5 , 2) = 3 1 0 0
|
||||
shufps(0 -2 -10 0.5 , inf -inf -inf 1 , 2) = -10 0 inf inf
|
||||
shufps(1 2 3 -4 , nan -0 -nan inf , 2) = 3 1 nan nan
|
||||
shufps(0 -2 -10 0.5 , nan -0 -nan inf , 2) = -10 0 nan nan
|
||||
shufps(inf -inf -inf 1 , nan -0 -nan inf , 2) = -inf inf nan nan
|
||||
shufps(nan -0 -nan inf , nan -0 -nan inf , 2) = -nan nan nan nan
|
||||
sqrtsd(1 2 , 1 2 ) = 1 2
|
||||
sqrtsd(1 2 , 0 -2 ) = 0 2
|
||||
sqrtsd(1 2 , inf -inf ) = inf 2
|
||||
sqrtsd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
sqrtsd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
sqrtsd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
sqrtsd(1 2 , 2 1 ) = 1.41421 2
|
||||
sqrtsd(1 2 , -2 0 ) = 0xfff8000000000000 2
|
||||
sqrtsd(1 2 , -inf inf ) = 0xfff8000000000000 2
|
||||
sqrtsd(1 2 , -0 0x7ff8000000000000 ) = -0 2
|
||||
sqrtsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
sqrtsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
addsd(1 2 , 1 2 ) = 2 2
|
||||
addsd(1 2 , 0 -2 ) = 1 2
|
||||
addsd(1 2 , inf -inf ) = inf 2
|
||||
addsd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
addsd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
addsd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
addsd(1 2 , 2 1 ) = 3 2
|
||||
addsd(1 2 , -2 0 ) = -1 2
|
||||
addsd(1 2 , -inf inf ) = -inf 2
|
||||
addsd(1 2 , -0 0x7ff8000000000000 ) = 1 2
|
||||
addsd(0 -2 , -0 0x7ff8000000000000 ) = 0 -2
|
||||
addsd(0 -2 , -0 0x7ff8000000000000 ) = 0 -2
|
||||
mulsd(1 2 , 1 2 ) = 1 2
|
||||
mulsd(1 2 , 0 -2 ) = 0 2
|
||||
mulsd(1 2 , inf -inf ) = inf 2
|
||||
mulsd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
mulsd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
mulsd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
mulsd(1 2 , 2 1 ) = 2 2
|
||||
mulsd(1 2 , -2 0 ) = -2 2
|
||||
mulsd(1 2 , -inf inf ) = -inf 2
|
||||
mulsd(1 2 , -0 0x7ff8000000000000 ) = -0 2
|
||||
mulsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
mulsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
subsd(1 2 , 1 2 ) = 0 2
|
||||
subsd(1 2 , 0 -2 ) = 1 2
|
||||
subsd(1 2 , inf -inf ) = -inf 2
|
||||
subsd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
subsd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
subsd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
subsd(1 2 , 2 1 ) = -1 2
|
||||
subsd(1 2 , -2 0 ) = 3 2
|
||||
subsd(1 2 , -inf inf ) = inf 2
|
||||
subsd(1 2 , -0 0x7ff8000000000000 ) = 1 2
|
||||
subsd(0 -2 , -0 0x7ff8000000000000 ) = 0 -2
|
||||
subsd(0 -2 , -0 0x7ff8000000000000 ) = 0 -2
|
||||
minsd(1 2 , 1 2 ) = 1 2
|
||||
minsd(1 2 , 0 -2 ) = 0 2
|
||||
minsd(1 2 , inf -inf ) = 1 2
|
||||
minsd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
minsd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
minsd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
minsd(1 2 , 2 1 ) = 1 2
|
||||
minsd(1 2 , -2 0 ) = -2 2
|
||||
minsd(1 2 , -inf inf ) = -inf 2
|
||||
minsd(1 2 , -0 0x7ff8000000000000 ) = -0 2
|
||||
minsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
minsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
divsd(1 2 , 1 2 ) = 1 2
|
||||
divsd(1 2 , 0 -2 ) = inf 2
|
||||
divsd(1 2 , inf -inf ) = 0 2
|
||||
divsd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
divsd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
divsd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
divsd(1 2 , 2 1 ) = 0.5 2
|
||||
divsd(1 2 , -2 0 ) = -0.5 2
|
||||
divsd(1 2 , -inf inf ) = -0 2
|
||||
divsd(1 2 , -0 0x7ff8000000000000 ) = -inf 2
|
||||
divsd(0 -2 , -0 0x7ff8000000000000 ) = 0xfff8000000000000 -2
|
||||
divsd(0 -2 , -0 0x7ff8000000000000 ) = 0xfff8000000000000 -2
|
||||
maxsd(1 2 , 1 2 ) = 1 2
|
||||
maxsd(1 2 , 0 -2 ) = 1 2
|
||||
maxsd(1 2 , inf -inf ) = inf 2
|
||||
maxsd(1 2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 2
|
||||
maxsd(0 -2 , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -2
|
||||
maxsd(inf -inf , 0x7ff8000000000000 -0 ) = 0x7ff8000000000000 -inf
|
||||
maxsd(1 2 , 2 1 ) = 2 2
|
||||
maxsd(1 2 , -2 0 ) = 1 2
|
||||
maxsd(1 2 , -inf inf ) = 1 2
|
||||
maxsd(1 2 , -0 0x7ff8000000000000 ) = 1 2
|
||||
maxsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
maxsd(0 -2 , -0 0x7ff8000000000000 ) = -0 -2
|
||||
cvtps2pd(1 2 3 -4 ) = 0x1 0x2 0x3 0xfffffffc
|
||||
cvtps2pd(0 -2 -10 0.5 ) = 0x0 0xfffffffe 0xfffffff6 0x0
|
||||
cvtps2pd(inf -inf -inf 1 ) = 0x80000000 0x80000000 0x80000000 0x1
|
||||
cvtps2pd(nan -0 -nan inf ) = 0x80000000 0x0 0x80000000 0x80000000
|
||||
dpps(1 2 3 -4 , 0 -2 -10 0.5 , 255) = -36 -36 -36 -36
|
||||
dpps(0 -2 -10 0.5 , inf -inf -inf 1 , 255) = -nan -nan -nan -nan
|
||||
dpps(1 2 3 -4 , nan -0 -nan inf , 255) = nan nan -nan -nan
|
||||
dpps(0 -2 -10 0.5 , nan -0 -nan inf , 255) = nan nan -nan -nan
|
||||
dpps(inf -inf -inf 1 , nan -0 -nan inf , 255) = -nan nan -nan -nan
|
||||
dpps(nan -0 -nan inf , nan -0 -nan inf , 255) = nan nan -nan -nan
|
||||
dpps(1 2 3 -4 , 0 -2 -10 0.5 , 63) = -4 -4 -4 -4
|
||||
dpps(0 -2 -10 0.5 , inf -inf -inf 1 , 63) = -nan -nan -nan -nan
|
||||
dpps(1 2 3 -4 , nan -0 -nan inf , 63) = nan nan nan nan
|
||||
dpps(0 -2 -10 0.5 , nan -0 -nan inf , 63) = nan nan nan nan
|
||||
dpps(inf -inf -inf 1 , nan -0 -nan inf , 63) = -nan nan -nan nan
|
||||
dpps(nan -0 -nan inf , nan -0 -nan inf , 63) = nan nan nan nan
|
||||
dpps(1 2 3 -4 , 0 -2 -10 0.5 , 243) = -36 -36 0 0
|
||||
dpps(0 -2 -10 0.5 , inf -inf -inf 1 , 243) = -nan -nan 0 0
|
||||
dpps(1 2 3 -4 , nan -0 -nan inf , 243) = nan nan 0 0
|
||||
dpps(0 -2 -10 0.5 , nan -0 -nan inf , 243) = nan nan 0 0
|
||||
dpps(inf -inf -inf 1 , nan -0 -nan inf , 243) = -nan nan 0 0
|
||||
dpps(nan -0 -nan inf , nan -0 -nan inf , 243) = nan nan 0 0
|
||||
dpps(1 2 3 -4 , 0 -2 -10 0.5 , 83) = -30 -30 0 0
|
||||
dpps(0 -2 -10 0.5 , inf -inf -inf 1 , 83) = -nan -nan 0 0
|
||||
dpps(1 2 3 -4 , nan -0 -nan inf , 83) = nan nan 0 0
|
||||
dpps(0 -2 -10 0.5 , nan -0 -nan inf , 83) = nan nan 0 0
|
||||
dpps(inf -inf -inf 1 , nan -0 -nan inf , 83) = nan nan 0 0
|
||||
dpps(nan -0 -nan inf , nan -0 -nan inf , 83) = nan nan 0 0
|
1224
tests/ref22_android.txt
Normal file
1224
tests/ref22_android.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
tests/test01_android
Executable file
BIN
tests/test01_android
Executable file
Binary file not shown.
BIN
tests/test02_android
Executable file
BIN
tests/test02_android
Executable file
Binary file not shown.
BIN
tests/test03_android
Executable file
BIN
tests/test03_android
Executable file
Binary file not shown.
BIN
tests/test04_android
Executable file
BIN
tests/test04_android
Executable file
Binary file not shown.
BIN
tests/test05_android
Executable file
BIN
tests/test05_android
Executable file
Binary file not shown.
BIN
tests/test06_android
Executable file
BIN
tests/test06_android
Executable file
Binary file not shown.
BIN
tests/test07_android
Executable file
BIN
tests/test07_android
Executable file
Binary file not shown.
BIN
tests/test08_android
Executable file
BIN
tests/test08_android
Executable file
Binary file not shown.
BIN
tests/test09_android
Executable file
BIN
tests/test09_android
Executable file
Binary file not shown.
BIN
tests/test10_android
Executable file
BIN
tests/test10_android
Executable file
Binary file not shown.
BIN
tests/test11_android
Executable file
BIN
tests/test11_android
Executable file
Binary file not shown.
@ -20,6 +20,18 @@ int main(int argc, char **argv)
|
||||
printf("(angle_t)%f = %u == 0x%08X\n", d, u32, u32);
|
||||
|
||||
int16_t a=0, b=0;
|
||||
|
||||
#ifdef __ANDROID__
|
||||
asm volatile (
|
||||
"fldpi \n"
|
||||
"fisttpl %0 \n"
|
||||
: "=m" (a));
|
||||
asm volatile (
|
||||
"fldpi \n"
|
||||
"fchs \n"
|
||||
"fistpl %0 \n"
|
||||
: "=m" (b));
|
||||
#else
|
||||
asm volatile (
|
||||
"fldpi \n"
|
||||
"fisttp %0 \n"
|
||||
@ -29,6 +41,8 @@ int main(int argc, char **argv)
|
||||
"fchs \n"
|
||||
"fistp %0 \n"
|
||||
: "=m" (b));
|
||||
#endif
|
||||
|
||||
printf("go PI trucated=%d, -PI rounded=%d\n", a, b);
|
||||
|
||||
return 0;
|
||||
|
BIN
tests/test12_android
Executable file
BIN
tests/test12_android
Executable file
Binary file not shown.
@ -71,8 +71,13 @@ int main(void) {
|
||||
printf("Main thread: thread_state == 1.\n");
|
||||
pthread_mutex_unlock(mutex_ptr);
|
||||
|
||||
#ifdef __ANDROID__
|
||||
if (pthread_kill(thread,0) != 0)
|
||||
goto error;
|
||||
#else
|
||||
if (pthread_cancel(thread) != 0)
|
||||
goto error;
|
||||
#endif
|
||||
|
||||
// Wait for thread to execute the cleanup function
|
||||
pthread_mutex_lock(mutex_ptr);
|
||||
|
BIN
tests/test14_android
Executable file
BIN
tests/test14_android
Executable file
Binary file not shown.
BIN
tests/test15_android
Executable file
BIN
tests/test15_android
Executable file
Binary file not shown.
BIN
tests/test16_android
Executable file
BIN
tests/test16_android
Executable file
Binary file not shown.
BIN
tests/test17_android
Executable file
BIN
tests/test17_android
Executable file
Binary file not shown.
BIN
tests/test18_android
Executable file
BIN
tests/test18_android
Executable file
Binary file not shown.
BIN
tests/test20_android
Executable file
BIN
tests/test20_android
Executable file
Binary file not shown.
BIN
tests/test21_android
Executable file
BIN
tests/test21_android
Executable file
Binary file not shown.
@ -52,6 +52,18 @@ uint64_t _fisttpw_(double a, uint8_t rd)
|
||||
{
|
||||
uint16_t ret;
|
||||
uint16_t t1, t2;
|
||||
#ifdef ANDROID
|
||||
asm volatile (
|
||||
"fldl %1\n"
|
||||
"fstcw %2\n"
|
||||
"mov %2, %%ax\n"
|
||||
"mov %4, %%ah\n"
|
||||
"mov %%ax, %3\n"
|
||||
"fldcw %3\n"
|
||||
"fisttpl %0\n"
|
||||
"fldcw %2\n"
|
||||
:"=m" (ret):"m"(a), "m"(t1), "m"(t2), "m"(rd):"cc");
|
||||
#else
|
||||
asm volatile (
|
||||
"fldl %1\n"
|
||||
"fstcw %2\n"
|
||||
@ -62,6 +74,8 @@ uint64_t _fisttpw_(double a, uint8_t rd)
|
||||
"fisttp %0\n"
|
||||
"fldcw %2\n"
|
||||
:"=m" (ret):"m"(a), "m"(t1), "m"(t2), "m"(rd):"cc");
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
uint64_t _fistpl_(double a, uint8_t rd)
|
||||
|
BIN
tests/test22_android
Executable file
BIN
tests/test22_android
Executable file
Binary file not shown.
BIN
tests/test23_android
Executable file
BIN
tests/test23_android
Executable file
Binary file not shown.
BIN
tests/test24_android
Executable file
BIN
tests/test24_android
Executable file
Binary file not shown.
BIN
tests/test25_android
Executable file
BIN
tests/test25_android
Executable file
Binary file not shown.
BIN
tests/test26_android
Executable file
BIN
tests/test26_android
Executable file
Binary file not shown.
BIN
tests/test27_android
Executable file
BIN
tests/test27_android
Executable file
Binary file not shown.
BIN
tests/test28_android
Executable file
BIN
tests/test28_android
Executable file
Binary file not shown.
BIN
tests/test29_android
Executable file
BIN
tests/test29_android
Executable file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user