diff options
| -rw-r--r-- | .github/workflows/release.yml | 37 | ||||
| -rw-r--r-- | CMakeLists.txt | 149 | ||||
| -rw-r--r-- | src/emu/x64runf30f.c | 2 | ||||
| -rwxr-xr-x | tests/benchfloat_android | bin | 0 -> 15248 bytes | |||
| -rwxr-xr-x | tests/extensions/mmx_android | bin | 0 -> 58384 bytes | |||
| -rw-r--r-- | tests/ref12_android.txt | 4 | ||||
| -rw-r--r-- | tests/ref17_android.txt | 564 | ||||
| -rw-r--r-- | tests/ref22_android.txt | 1224 | ||||
| -rwxr-xr-x | tests/test01_android | bin | 0 -> 5024 bytes | |||
| -rwxr-xr-x | tests/test02_android | bin | 0 -> 5144 bytes | |||
| -rwxr-xr-x | tests/test03_android | bin | 0 -> 5088 bytes | |||
| -rwxr-xr-x | tests/test04_android | bin | 0 -> 5120 bytes | |||
| -rwxr-xr-x | tests/test05_android | bin | 0 -> 6432 bytes | |||
| -rwxr-xr-x | tests/test06_android | bin | 0 -> 6720 bytes | |||
| -rwxr-xr-x | tests/test07_android | bin | 0 -> 5352 bytes | |||
| -rwxr-xr-x | tests/test08_android | bin | 0 -> 5408 bytes | |||
| -rwxr-xr-x | tests/test09_android | bin | 0 -> 5472 bytes | |||
| -rwxr-xr-x | tests/test10_android | bin | 0 -> 119224 bytes | |||
| -rwxr-xr-x | tests/test11_android | bin | 0 -> 12216 bytes | |||
| -rw-r--r-- | tests/test12.c | 14 | ||||
| -rwxr-xr-x | tests/test12_android | bin | 0 -> 5376 bytes | |||
| -rw-r--r-- | tests/test14.c | 5 | ||||
| -rwxr-xr-x | tests/test14_android | bin | 0 -> 8464 bytes | |||
| -rwxr-xr-x | tests/test15_android | bin | 0 -> 5480 bytes | |||
| -rwxr-xr-x | tests/test16_android | bin | 0 -> 16088 bytes | |||
| -rwxr-xr-x | tests/test17_android | bin | 0 -> 94024 bytes | |||
| -rwxr-xr-x | tests/test18_android | bin | 0 -> 7936 bytes | |||
| -rwxr-xr-x | tests/test20_android | bin | 0 -> 5592 bytes | |||
| -rwxr-xr-x | tests/test21_android | bin | 0 -> 5808 bytes | |||
| -rw-r--r-- | tests/test22.c | 14 | ||||
| -rwxr-xr-x | tests/test22_android | bin | 0 -> 8216 bytes | |||
| -rwxr-xr-x | tests/test23_android | bin | 0 -> 5264 bytes | |||
| -rwxr-xr-x | tests/test24_android | bin | 0 -> 5472 bytes | |||
| -rwxr-xr-x | tests/test25_android | bin | 0 -> 5552 bytes | |||
| -rwxr-xr-x | tests/test26_android | bin | 0 -> 22664 bytes | |||
| -rwxr-xr-x | tests/test27_android | bin | 0 -> 270584 bytes | |||
| -rwxr-xr-x | tests/test28_android | bin | 0 -> 15272 bytes | |||
| -rwxr-xr-x | tests/test29_android | bin | 0 -> 5464 bytes |
38 files changed, 2008 insertions, 5 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 06360998..bb532570 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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 diff --git a/CMakeLists.txt b/CMakeLists.txt index a4ba222b..3e357c50 100644 --- a/CMakeLists.txt +++ b/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() \ No newline at end of file diff --git a/src/emu/x64runf30f.c b/src/emu/x64runf30f.c index 9f56441d..4c79bf8f 100644 --- a/src/emu/x64runf30f.c +++ b/src/emu/x64runf30f.c @@ -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 diff --git a/tests/benchfloat_android b/tests/benchfloat_android new file mode 100755 index 00000000..97a12ac4 --- /dev/null +++ b/tests/benchfloat_android Binary files differdiff --git a/tests/extensions/mmx_android b/tests/extensions/mmx_android new file mode 100755 index 00000000..80857cc5 --- /dev/null +++ b/tests/extensions/mmx_android Binary files differdiff --git a/tests/ref12_android.txt b/tests/ref12_android.txt new file mode 100644 index 00000000..0dbc7165 --- /dev/null +++ b/tests/ref12_android.txt @@ -0,0 +1,4 @@ +1000000000000 => 1000000000000.000000 +-1000000000000 => -1000000000000.000000 +(angle_t)268435456.000000 = 268435456 == 0x10000000 +go PI trucated=-1, -PI rounded=-3 diff --git a/tests/ref17_android.txt b/tests/ref17_android.txt new file mode 100644 index 00000000..6972890c --- /dev/null +++ b/tests/ref17_android.txt @@ -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 diff --git a/tests/ref22_android.txt b/tests/ref22_android.txt new file mode 100644 index 00000000..50c6d0c7 --- /dev/null +++ b/tests/ref22_android.txt @@ -0,0 +1,1224 @@ +FUCOMI 0x0 0x4082c00000000000 --C +FUCOMPP 0x0 0x4082c00000000000 --C +Rounding 0 + FRNDINT 0x0 => 0x0 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FISTP 0x0 => word: 0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x0 => long: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x0 => quad: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTTP 0x0 => word: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x0 => long: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x0 => quad: 0 + FISTTP 0x4082c00000000000 => quad: 258 +Rounding 1 + FRNDINT 0x0 => 0x0 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FISTP 0x0 => word: 0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x0 => long: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x0 => quad: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTTP 0x0 => word: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x0 => long: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x0 => quad: 0 + FISTTP 0x4082c00000000000 => quad: 258 +Rounding 2 + FRNDINT 0x0 => 0x0 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FISTP 0x0 => word: 0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x0 => long: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x0 => quad: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTTP 0x0 => word: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x0 => long: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x0 => quad: 0 + FISTTP 0x4082c00000000000 => quad: 258 +FUCOMI 0x4082c00000000000 0x0 --- +FUCOMPP 0x4082c00000000000 0x0 --- +Rounding 0 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FRNDINT 0x0 => 0x0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x0 => word: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x0 => long: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTP 0x0 => quad: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x0 => word: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x0 => long: 0 + FISTTP 0x4082c00000000000 => quad: 258 + FISTTP 0x0 => quad: 0 +Rounding 1 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FRNDINT 0x0 => 0x0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x0 => word: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x0 => long: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTP 0x0 => quad: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x0 => word: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x0 => long: 0 + FISTTP 0x4082c00000000000 => quad: 258 + FISTTP 0x0 => quad: 0 +Rounding 2 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FRNDINT 0x0 => 0x0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x0 => word: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x0 => long: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTP 0x0 => quad: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x0 => word: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x0 => long: 0 + FISTTP 0x4082c00000000000 => quad: 258 + FISTTP 0x0 => quad: 0 +FUCOMI 0x8000000000000000 0x4082c00000000000 --C +FUCOMPP 0x8000000000000000 0x4082c00000000000 --C +Rounding 0 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x4082c00000000000 => quad: 258 +Rounding 1 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x4082c00000000000 => quad: 258 +Rounding 2 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x4082c00000000000 => quad: 258 +FUCOMI 0x4082c00000000000 0x8000000000000000 --- +FUCOMPP 0x4082c00000000000 0x8000000000000000 --- +Rounding 0 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x4082c00000000000 => quad: 258 + FISTTP 0x8000000000000000 => quad: 0 +Rounding 1 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x4082c00000000000 => quad: 258 + FISTTP 0x8000000000000000 => quad: 0 +Rounding 2 + FRNDINT 0x4082c00000000000 => 0x4082c00000000000 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x4082c00000000000 => word: 258 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x4082c00000000000 => long: 258 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x4082c00000000000 => quad: 258 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x4082c00000000000 => word: 258 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x4082c00000000000 => long: 258 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x4082c00000000000 => quad: 258 + FISTTP 0x8000000000000000 => quad: 0 +FUCOMI 0x8000000000000000 0x0 Z-- +FUCOMPP 0x8000000000000000 0x0 Z-- +Rounding 0 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x0 => 0x0 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x0 => word: 0 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x0 => long: 0 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x0 => quad: 0 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x0 => quad: 0 +Rounding 1 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x0 => 0x0 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x0 => word: 0 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x0 => long: 0 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x0 => quad: 0 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x0 => quad: 0 +Rounding 2 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x0 => 0x0 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x0 => word: 0 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x0 => long: 0 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x0 => quad: 0 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x0 => quad: 0 +FUCOMI 0x0 0x8000000000000000 Z-- +FUCOMPP 0x0 0x8000000000000000 Z-- +Rounding 0 + FRNDINT 0x0 => 0x0 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x0 => word: 0 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x0 => long: 0 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x0 => quad: 0 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x0 => quad: 0 + FISTTP 0x8000000000000000 => quad: 0 +Rounding 1 + FRNDINT 0x0 => 0x0 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x0 => word: 0 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x0 => long: 0 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x0 => quad: 0 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x0 => quad: 0 + FISTTP 0x8000000000000000 => quad: 0 +Rounding 2 + FRNDINT 0x0 => 0x0 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x0 => word: 0 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x0 => long: 0 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x0 => quad: 0 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x0 => quad: 0 + FISTTP 0x8000000000000000 => quad: 0 +FUCOMI 0x40dfffc000000000 0x40e0002000000000 --C +FUCOMPP 0x40dfffc000000000 0x40e0002000000000 --C +Rounding 0 + FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000 + FRNDINT 0x40e0002000000000 => 0x40e0002000000000 + FISTP 0x40dfffc000000000 => word: 7fff + FISTP 0x40e0002000000000 => word: 8001 + FISTP 0x40dfffc000000000 => long: 7fff + FISTP 0x40e0002000000000 => long: 8001 + FISTP 0x40dfffc000000000 => quad: 7fff + FISTP 0x40e0002000000000 => quad: 8001 + FISTTP 0x40dfffc000000000 => word: 7fff + FISTTP 0x40e0002000000000 => word: 8001 + FISTTP 0x40dfffc000000000 => long: 7fff + FISTTP 0x40e0002000000000 => long: 8001 + FISTTP 0x40dfffc000000000 => quad: 7fff + FISTTP 0x40e0002000000000 => quad: 8001 +Rounding 1 + FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000 + FRNDINT 0x40e0002000000000 => 0x40e0002000000000 + FISTP 0x40dfffc000000000 => word: 7fff + FISTP 0x40e0002000000000 => word: 8001 + FISTP 0x40dfffc000000000 => long: 7fff + FISTP 0x40e0002000000000 => long: 8001 + FISTP 0x40dfffc000000000 => quad: 7fff + FISTP 0x40e0002000000000 => quad: 8001 + FISTTP 0x40dfffc000000000 => word: 7fff + FISTTP 0x40e0002000000000 => word: 8001 + FISTTP 0x40dfffc000000000 => long: 7fff + FISTTP 0x40e0002000000000 => long: 8001 + FISTTP 0x40dfffc000000000 => quad: 7fff + FISTTP 0x40e0002000000000 => quad: 8001 +Rounding 2 + FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000 + FRNDINT 0x40e0002000000000 => 0x40e0002000000000 + FISTP 0x40dfffc000000000 => word: 7fff + FISTP 0x40e0002000000000 => word: 8001 + FISTP 0x40dfffc000000000 => long: 7fff + FISTP 0x40e0002000000000 => long: 8001 + FISTP 0x40dfffc000000000 => quad: 7fff + FISTP 0x40e0002000000000 => quad: 8001 + FISTTP 0x40dfffc000000000 => word: 7fff + FISTTP 0x40e0002000000000 => word: 8001 + FISTTP 0x40dfffc000000000 => long: 7fff + FISTTP 0x40e0002000000000 => long: 8001 + FISTTP 0x40dfffc000000000 => quad: 7fff + FISTTP 0x40e0002000000000 => quad: 8001 +FUCOMI 0x40e0002000000000 0x40dfffc000000000 --- +FUCOMPP 0x40e0002000000000 0x40dfffc000000000 --- +Rounding 0 + FRNDINT 0x40e0002000000000 => 0x40e0002000000000 + FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000 + FISTP 0x40e0002000000000 => word: 8001 + FISTP 0x40dfffc000000000 => word: 7fff + FISTP 0x40e0002000000000 => long: 8001 + FISTP 0x40dfffc000000000 => long: 7fff + FISTP 0x40e0002000000000 => quad: 8001 + FISTP 0x40dfffc000000000 => quad: 7fff + FISTTP 0x40e0002000000000 => word: 8001 + FISTTP 0x40dfffc000000000 => word: 7fff + FISTTP 0x40e0002000000000 => long: 8001 + FISTTP 0x40dfffc000000000 => long: 7fff + FISTTP 0x40e0002000000000 => quad: 8001 + FISTTP 0x40dfffc000000000 => quad: 7fff +Rounding 1 + FRNDINT 0x40e0002000000000 => 0x40e0002000000000 + FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000 + FISTP 0x40e0002000000000 => word: 8001 + FISTP 0x40dfffc000000000 => word: 7fff + FISTP 0x40e0002000000000 => long: 8001 + FISTP 0x40dfffc000000000 => long: 7fff + FISTP 0x40e0002000000000 => quad: 8001 + FISTP 0x40dfffc000000000 => quad: 7fff + FISTTP 0x40e0002000000000 => word: 8001 + FISTTP 0x40dfffc000000000 => word: 7fff + FISTTP 0x40e0002000000000 => long: 8001 + FISTTP 0x40dfffc000000000 => long: 7fff + FISTTP 0x40e0002000000000 => quad: 8001 + FISTTP 0x40dfffc000000000 => quad: 7fff +Rounding 2 + FRNDINT 0x40e0002000000000 => 0x40e0002000000000 + FRNDINT 0x40dfffc000000000 => 0x40dfffc000000000 + FISTP 0x40e0002000000000 => word: 8001 + FISTP 0x40dfffc000000000 => word: 7fff + FISTP 0x40e0002000000000 => long: 8001 + FISTP 0x40dfffc000000000 => long: 7fff + FISTP 0x40e0002000000000 => quad: 8001 + FISTP 0x40dfffc000000000 => quad: 7fff + FISTTP 0x40e0002000000000 => word: 8001 + FISTTP 0x40dfffc000000000 => word: 7fff + FISTTP 0x40e0002000000000 => long: 8001 + FISTTP 0x40dfffc000000000 => long: 7fff + FISTTP 0x40e0002000000000 => quad: 8001 + FISTTP 0x40dfffc000000000 => quad: 7fff +FUCOMI 0xc0e0002000000000 0xc0dfffc000000000 --C +FUCOMPP 0xc0e0002000000000 0xc0dfffc000000000 --C +Rounding 0 + FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000 + FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000 + FISTP 0xc0e0002000000000 => word: 7fff + FISTP 0xc0dfffc000000000 => word: 8001 + FISTP 0xc0e0002000000000 => long: ffff7fff + FISTP 0xc0dfffc000000000 => long: ffff8001 + FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTTP 0xc0e0002000000000 => word: 7fff + FISTTP 0xc0dfffc000000000 => word: 8001 + FISTTP 0xc0e0002000000000 => long: ffff7fff + FISTTP 0xc0dfffc000000000 => long: ffff8001 + FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001 +Rounding 1 + FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000 + FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000 + FISTP 0xc0e0002000000000 => word: 7fff + FISTP 0xc0dfffc000000000 => word: 8001 + FISTP 0xc0e0002000000000 => long: ffff7fff + FISTP 0xc0dfffc000000000 => long: ffff8001 + FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTTP 0xc0e0002000000000 => word: 7fff + FISTTP 0xc0dfffc000000000 => word: 8001 + FISTTP 0xc0e0002000000000 => long: ffff7fff + FISTTP 0xc0dfffc000000000 => long: ffff8001 + FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001 +Rounding 2 + FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000 + FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000 + FISTP 0xc0e0002000000000 => word: 7fff + FISTP 0xc0dfffc000000000 => word: 8001 + FISTP 0xc0e0002000000000 => long: ffff7fff + FISTP 0xc0dfffc000000000 => long: ffff8001 + FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTTP 0xc0e0002000000000 => word: 7fff + FISTTP 0xc0dfffc000000000 => word: 8001 + FISTTP 0xc0e0002000000000 => long: ffff7fff + FISTTP 0xc0dfffc000000000 => long: ffff8001 + FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001 +FUCOMI 0xc0dfffc000000000 0xc0e0002000000000 --- +FUCOMPP 0xc0dfffc000000000 0xc0e0002000000000 --- +Rounding 0 + FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000 + FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000 + FISTP 0xc0dfffc000000000 => word: 8001 + FISTP 0xc0e0002000000000 => word: 7fff + FISTP 0xc0dfffc000000000 => long: ffff8001 + FISTP 0xc0e0002000000000 => long: ffff7fff + FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTTP 0xc0dfffc000000000 => word: 8001 + FISTTP 0xc0e0002000000000 => word: 7fff + FISTTP 0xc0dfffc000000000 => long: ffff8001 + FISTTP 0xc0e0002000000000 => long: ffff7fff + FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff +Rounding 1 + FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000 + FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000 + FISTP 0xc0dfffc000000000 => word: 8001 + FISTP 0xc0e0002000000000 => word: 7fff + FISTP 0xc0dfffc000000000 => long: ffff8001 + FISTP 0xc0e0002000000000 => long: ffff7fff + FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTTP 0xc0dfffc000000000 => word: 8001 + FISTTP 0xc0e0002000000000 => word: 7fff + FISTTP 0xc0dfffc000000000 => long: ffff8001 + FISTTP 0xc0e0002000000000 => long: ffff7fff + FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff +Rounding 2 + FRNDINT 0xc0dfffc000000000 => 0xc0dfffc000000000 + FRNDINT 0xc0e0002000000000 => 0xc0e0002000000000 + FISTP 0xc0dfffc000000000 => word: 8001 + FISTP 0xc0e0002000000000 => word: 7fff + FISTP 0xc0dfffc000000000 => long: ffff8001 + FISTP 0xc0e0002000000000 => long: ffff7fff + FISTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTP 0xc0e0002000000000 => quad: ffffffffffff7fff + FISTTP 0xc0dfffc000000000 => word: 8001 + FISTTP 0xc0e0002000000000 => word: 7fff + FISTTP 0xc0dfffc000000000 => long: ffff8001 + FISTTP 0xc0e0002000000000 => long: ffff7fff + FISTTP 0xc0dfffc000000000 => quad: ffffffffffff8001 + FISTTP 0xc0e0002000000000 => quad: ffffffffffff7fff +FUCOMI 0x8000000000000000 0x3ff0000000000000 --C +FUCOMPP 0x8000000000000000 0x3ff0000000000000 --C +Rounding 0 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => quad: 1 +Rounding 1 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => quad: 1 +Rounding 2 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x8000000000000000 => quad: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x8000000000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => quad: 1 +FUCOMI 0x3ff0000000000000 0x8000000000000000 --- +FUCOMPP 0x3ff0000000000000 0x8000000000000000 --- +Rounding 0 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x8000000000000000 => quad: 0 +Rounding 1 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x8000000000000000 => quad: 0 +Rounding 2 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x8000000000000000 => 0x8000000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x8000000000000000 => word: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x8000000000000000 => long: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x8000000000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x8000000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x8000000000000000 => long: 0 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x8000000000000000 => quad: 0 +FUCOMI 0x3ff0000000000000 0x3fe89d9000000000 --- +FUCOMPP 0x3ff0000000000000 0x3fe89d9000000000 --- +Rounding 0 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x3fe89d9000000000 => word: 1 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x3fe89d9000000000 => long: 1 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x3fe89d9000000000 => quad: 1 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x3fe89d9000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x3fe89d9000000000 => long: 0 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x3fe89d9000000000 => quad: 0 +Rounding 1 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x3fe89d9000000000 => 0x0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x3fe89d9000000000 => word: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x3fe89d9000000000 => long: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x3fe89d9000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x3fe89d9000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x3fe89d9000000000 => long: 0 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x3fe89d9000000000 => quad: 0 +Rounding 2 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x3fe89d9000000000 => word: 1 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x3fe89d9000000000 => long: 1 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x3fe89d9000000000 => quad: 1 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x3fe89d9000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x3fe89d9000000000 => long: 0 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x3fe89d9000000000 => quad: 0 +FUCOMI 0x3fe89d9000000000 0x3ff0000000000000 --C +FUCOMPP 0x3fe89d9000000000 0x3ff0000000000000 --C +Rounding 0 + FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x3fe89d9000000000 => word: 1 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x3fe89d9000000000 => long: 1 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x3fe89d9000000000 => quad: 1 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x3fe89d9000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x3fe89d9000000000 => long: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x3fe89d9000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => quad: 1 +Rounding 1 + FRNDINT 0x3fe89d9000000000 => 0x0 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x3fe89d9000000000 => word: 0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x3fe89d9000000000 => long: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x3fe89d9000000000 => quad: 0 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x3fe89d9000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x3fe89d9000000000 => long: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x3fe89d9000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => quad: 1 +Rounding 2 + FRNDINT 0x3fe89d9000000000 => 0x3ff0000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x3fe89d9000000000 => word: 1 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x3fe89d9000000000 => long: 1 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x3fe89d9000000000 => quad: 1 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x3fe89d9000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x3fe89d9000000000 => long: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x3fe89d9000000000 => quad: 0 + FISTTP 0x3ff0000000000000 => quad: 1 +FUCOMI 0x3ff0000000000000 0x7ff0000000000000 --C +FUCOMPP 0x3ff0000000000000 0x7ff0000000000000 --C +Rounding 0 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 +Rounding 1 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 +Rounding 2 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0x3ff0000000000000 => quad: 1 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 +FUCOMI 0x7ff0000000000000 0x3ff0000000000000 --- +FUCOMPP 0x7ff0000000000000 0x3ff0000000000000 --- +Rounding 0 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0x3ff0000000000000 => quad: 1 +Rounding 1 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0x3ff0000000000000 => quad: 1 +Rounding 2 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FRNDINT 0x3ff0000000000000 => 0x3ff0000000000000 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0x3ff0000000000000 => word: 1 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0x3ff0000000000000 => long: 1 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTP 0x3ff0000000000000 => quad: 1 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0x3ff0000000000000 => word: 1 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0x3ff0000000000000 => long: 1 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0x3ff0000000000000 => quad: 1 +FUCOMI 0xfff0000000000000 0x7ff0000000000000 --C +FUCOMPP 0xfff0000000000000 0x7ff0000000000000 --C +Rounding 0 + FRNDINT 0xfff0000000000000 => 0xfff0000000000000 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FISTP 0xfff0000000000000 => word: 0 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0xfff0000000000000 => long: 80000000 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0xfff0000000000000 => quad: 8000000000000000 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0xfff0000000000000 => word: 0 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0xfff0000000000000 => long: 80000000 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0xfff0000000000000 => quad: 8000000000000000 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 +Rounding 1 + FRNDINT 0xfff0000000000000 => 0xfff0000000000000 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FISTP 0xfff0000000000000 => word: 0 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0xfff0000000000000 => long: 80000000 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0xfff0000000000000 => quad: 8000000000000000 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0xfff0000000000000 => word: 0 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0xfff0000000000000 => long: 80000000 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0xfff0000000000000 => quad: 8000000000000000 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 +Rounding 2 + FRNDINT 0xfff0000000000000 => 0xfff0000000000000 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FISTP 0xfff0000000000000 => word: 0 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0xfff0000000000000 => long: 80000000 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0xfff0000000000000 => quad: 8000000000000000 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0xfff0000000000000 => word: 0 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0xfff0000000000000 => long: 80000000 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0xfff0000000000000 => quad: 8000000000000000 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 +FUCOMI 0x7ff0000000000000 0xfff0000000000000 --- +FUCOMPP 0x7ff0000000000000 0xfff0000000000000 --- +Rounding 0 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FRNDINT 0xfff0000000000000 => 0xfff0000000000000 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0xfff0000000000000 => word: 0 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0xfff0000000000000 => long: 80000000 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTP 0xfff0000000000000 => quad: 8000000000000000 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0xfff0000000000000 => word: 0 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0xfff0000000000000 => long: 80000000 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0xfff0000000000000 => quad: 8000000000000000 +Rounding 1 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FRNDINT 0xfff0000000000000 => 0xfff0000000000000 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0xfff0000000000000 => word: 0 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0xfff0000000000000 => long: 80000000 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTP 0xfff0000000000000 => quad: 8000000000000000 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0xfff0000000000000 => word: 0 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0xfff0000000000000 => long: 80000000 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0xfff0000000000000 => quad: 8000000000000000 +Rounding 2 + FRNDINT 0x7ff0000000000000 => 0x7ff0000000000000 + FRNDINT 0xfff0000000000000 => 0xfff0000000000000 + FISTP 0x7ff0000000000000 => word: 0 + FISTP 0xfff0000000000000 => word: 0 + FISTP 0x7ff0000000000000 => long: 80000000 + FISTP 0xfff0000000000000 => long: 80000000 + FISTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTP 0xfff0000000000000 => quad: 8000000000000000 + FISTTP 0x7ff0000000000000 => word: 0 + FISTTP 0xfff0000000000000 => word: 0 + FISTTP 0x7ff0000000000000 => long: 80000000 + FISTTP 0xfff0000000000000 => long: 80000000 + FISTTP 0x7ff0000000000000 => quad: 8000000000000000 + FISTTP 0xfff0000000000000 => quad: 8000000000000000 +FUCOMI 0x3ff0002ca0000000 0xaeff000025000000 --- +FUCOMPP 0x3ff0002ca0000000 0xaeff000025000000 --- +Rounding 0 + FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000 + FRNDINT 0xaeff000025000000 => 0x8000000000000000 + FISTP 0x3ff0002ca0000000 => word: 1 + FISTP 0xaeff000025000000 => word: 0 + FISTP 0x3ff0002ca0000000 => long: 1 + FISTP 0xaeff000025000000 => long: 0 + FISTP 0x3ff0002ca0000000 => quad: 1 + FISTP 0xaeff000025000000 => quad: 0 + FISTTP 0x3ff0002ca0000000 => word: 1 + FISTTP 0xaeff000025000000 => word: 0 + FISTTP 0x3ff0002ca0000000 => long: 1 + FISTTP 0xaeff000025000000 => long: 0 + FISTTP 0x3ff0002ca0000000 => quad: 1 + FISTTP 0xaeff000025000000 => quad: 0 +Rounding 1 + FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000 + FRNDINT 0xaeff000025000000 => 0xbff0000000000000 + FISTP 0x3ff0002ca0000000 => word: 1 + FISTP 0xaeff000025000000 => word: ffff + FISTP 0x3ff0002ca0000000 => long: 1 + FISTP 0xaeff000025000000 => long: ffffffff + FISTP 0x3ff0002ca0000000 => quad: 1 + FISTP 0xaeff000025000000 => quad: ffffffffffffffff + FISTTP 0x3ff0002ca0000000 => word: 1 + FISTTP 0xaeff000025000000 => word: 0 + FISTTP 0x3ff0002ca0000000 => long: 1 + FISTTP 0xaeff000025000000 => long: 0 + FISTTP 0x3ff0002ca0000000 => quad: 1 + FISTTP 0xaeff000025000000 => quad: 0 +Rounding 2 + FRNDINT 0x3ff0002ca0000000 => 0x4000000000000000 + FRNDINT 0xaeff000025000000 => 0x8000000000000000 + FISTP 0x3ff0002ca0000000 => word: 2 + FISTP 0xaeff000025000000 => word: 0 + FISTP 0x3ff0002ca0000000 => long: 2 + FISTP 0xaeff000025000000 => long: 0 + FISTP 0x3ff0002ca0000000 => quad: 2 + FISTP 0xaeff000025000000 => quad: 0 + FISTTP 0x3ff0002ca0000000 => word: 1 + FISTTP 0xaeff000025000000 => word: 0 + FISTTP 0x3ff0002ca0000000 => long: 1 + FISTTP 0xaeff000025000000 => long: 0 + FISTTP 0x3ff0002ca0000000 => quad: 1 + FISTTP 0xaeff000025000000 => quad: 0 +FUCOMI 0xaeff000025000000 0x3ff0002ca0000000 --C +FUCOMPP 0xaeff000025000000 0x3ff0002ca0000000 --C +Rounding 0 + FRNDINT 0xaeff000025000000 => 0x8000000000000000 + FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000 + FISTP 0xaeff000025000000 => word: 0 + FISTP 0x3ff0002ca0000000 => word: 1 + FISTP 0xaeff000025000000 => long: 0 + FISTP 0x3ff0002ca0000000 => long: 1 + FISTP 0xaeff000025000000 => quad: 0 + FISTP 0x3ff0002ca0000000 => quad: 1 + FISTTP 0xaeff000025000000 => word: 0 + FISTTP 0x3ff0002ca0000000 => word: 1 + FISTTP 0xaeff000025000000 => long: 0 + FISTTP 0x3ff0002ca0000000 => long: 1 + FISTTP 0xaeff000025000000 => quad: 0 + FISTTP 0x3ff0002ca0000000 => quad: 1 +Rounding 1 + FRNDINT 0xaeff000025000000 => 0xbff0000000000000 + FRNDINT 0x3ff0002ca0000000 => 0x3ff0000000000000 + FISTP 0xaeff000025000000 => word: ffff + FISTP 0x3ff0002ca0000000 => word: 1 + FISTP 0xaeff000025000000 => long: ffffffff + FISTP 0x3ff0002ca0000000 => long: 1 + FISTP 0xaeff000025000000 => quad: ffffffffffffffff + FISTP 0x3ff0002ca0000000 => quad: 1 + FISTTP 0xaeff000025000000 => word: 0 + FISTTP 0x3ff0002ca0000000 => word: 1 + FISTTP 0xaeff000025000000 => long: 0 + FISTTP 0x3ff0002ca0000000 => long: 1 + FISTTP 0xaeff000025000000 => quad: 0 + FISTTP 0x3ff0002ca0000000 => quad: 1 +Rounding 2 + FRNDINT 0xaeff000025000000 => 0x8000000000000000 + FRNDINT 0x3ff0002ca0000000 => 0x4000000000000000 + FISTP 0xaeff000025000000 => word: 0 + FISTP 0x3ff0002ca0000000 => word: 2 + FISTP 0xaeff000025000000 => long: 0 + FISTP 0x3ff0002ca0000000 => long: 2 + FISTP 0xaeff000025000000 => quad: 0 + FISTP 0x3ff0002ca0000000 => quad: 2 + FISTTP 0xaeff000025000000 => word: 0 + FISTTP 0x3ff0002ca0000000 => word: 1 + FISTTP 0xaeff000025000000 => long: 0 + FISTTP 0x3ff0002ca0000000 => long: 1 + FISTTP 0xaeff000025000000 => quad: 0 + FISTTP 0x3ff0002ca0000000 => quad: 1 +FUCOMI 0x3ff0000050000000 0xc082c00000000000 --- +FUCOMPP 0x3ff0000050000000 0xc082c00000000000 --- +Rounding 0 + FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000 + FRNDINT 0xc082c00000000000 => 0xc082c00000000000 + FISTP 0x3ff0000050000000 => word: 1 + FISTP 0xc082c00000000000 => word: fda8 + FISTP 0x3ff0000050000000 => long: 1 + FISTP 0xc082c00000000000 => long: fffffda8 + FISTP 0x3ff0000050000000 => quad: 1 + FISTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTTP 0x3ff0000050000000 => word: 1 + FISTTP 0xc082c00000000000 => word: fda8 + FISTTP 0x3ff0000050000000 => long: 1 + FISTTP 0xc082c00000000000 => long: fffffda8 + FISTTP 0x3ff0000050000000 => quad: 1 + FISTTP 0xc082c00000000000 => quad: fffffffffffffda8 +Rounding 1 + FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000 + FRNDINT 0xc082c00000000000 => 0xc082c00000000000 + FISTP 0x3ff0000050000000 => word: 1 + FISTP 0xc082c00000000000 => word: fda8 + FISTP 0x3ff0000050000000 => long: 1 + FISTP 0xc082c00000000000 => long: fffffda8 + FISTP 0x3ff0000050000000 => quad: 1 + FISTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTTP 0x3ff0000050000000 => word: 1 + FISTTP 0xc082c00000000000 => word: fda8 + FISTTP 0x3ff0000050000000 => long: 1 + FISTTP 0xc082c00000000000 => long: fffffda8 + FISTTP 0x3ff0000050000000 => quad: 1 + FISTTP 0xc082c00000000000 => quad: fffffffffffffda8 +Rounding 2 + FRNDINT 0x3ff0000050000000 => 0x4000000000000000 + FRNDINT 0xc082c00000000000 => 0xc082c00000000000 + FISTP 0x3ff0000050000000 => word: 2 + FISTP 0xc082c00000000000 => word: fda8 + FISTP 0x3ff0000050000000 => long: 2 + FISTP 0xc082c00000000000 => long: fffffda8 + FISTP 0x3ff0000050000000 => quad: 2 + FISTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTTP 0x3ff0000050000000 => word: 1 + FISTTP 0xc082c00000000000 => word: fda8 + FISTTP 0x3ff0000050000000 => long: 1 + FISTTP 0xc082c00000000000 => long: fffffda8 + FISTTP 0x3ff0000050000000 => quad: 1 + FISTTP 0xc082c00000000000 => quad: fffffffffffffda8 +FUCOMI 0xc082c00000000000 0x3ff0000050000000 --C +FUCOMPP 0xc082c00000000000 0x3ff0000050000000 --C +Rounding 0 + FRNDINT 0xc082c00000000000 => 0xc082c00000000000 + FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000 + FISTP 0xc082c00000000000 => word: fda8 + FISTP 0x3ff0000050000000 => word: 1 + FISTP 0xc082c00000000000 => long: fffffda8 + FISTP 0x3ff0000050000000 => long: 1 + FISTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTP 0x3ff0000050000000 => quad: 1 + FISTTP 0xc082c00000000000 => word: fda8 + FISTTP 0x3ff0000050000000 => word: 1 + FISTTP 0xc082c00000000000 => long: fffffda8 + FISTTP 0x3ff0000050000000 => long: 1 + FISTTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTTP 0x3ff0000050000000 => quad: 1 +Rounding 1 + FRNDINT 0xc082c00000000000 => 0xc082c00000000000 + FRNDINT 0x3ff0000050000000 => 0x3ff0000000000000 + FISTP 0xc082c00000000000 => word: fda8 + FISTP 0x3ff0000050000000 => word: 1 + FISTP 0xc082c00000000000 => long: fffffda8 + FISTP 0x3ff0000050000000 => long: 1 + FISTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTP 0x3ff0000050000000 => quad: 1 + FISTTP 0xc082c00000000000 => word: fda8 + FISTTP 0x3ff0000050000000 => word: 1 + FISTTP 0xc082c00000000000 => long: fffffda8 + FISTTP 0x3ff0000050000000 => long: 1 + FISTTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTTP 0x3ff0000050000000 => quad: 1 +Rounding 2 + FRNDINT 0xc082c00000000000 => 0xc082c00000000000 + FRNDINT 0x3ff0000050000000 => 0x4000000000000000 + FISTP 0xc082c00000000000 => word: fda8 + FISTP 0x3ff0000050000000 => word: 2 + FISTP 0xc082c00000000000 => long: fffffda8 + FISTP 0x3ff0000050000000 => long: 2 + FISTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTP 0x3ff0000050000000 => quad: 2 + FISTTP 0xc082c00000000000 => word: fda8 + FISTTP 0x3ff0000050000000 => word: 1 + FISTTP 0xc082c00000000000 => long: fffffda8 + FISTTP 0x3ff0000050000000 => long: 1 + FISTTP 0xc082c00000000000 => quad: fffffffffffffda8 + FISTTP 0x3ff0000050000000 => quad: 1 +FUCOMI 0x0 0x7ff8000000000001 ZPC +FUCOMPP 0x0 0x7ff8000000000001 ZPC +Rounding 0 + FRNDINT 0x0 => 0x0 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x0 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x0 => long: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x0 => quad: 0 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x0 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x0 => quad: 0 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +Rounding 1 + FRNDINT 0x0 => 0x0 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x0 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x0 => long: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x0 => quad: 0 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x0 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x0 => quad: 0 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +Rounding 2 + FRNDINT 0x0 => 0x0 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x0 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x0 => long: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x0 => quad: 0 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x0 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x0 => long: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x0 => quad: 0 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +FUCOMI 0x7ff8000000000001 0x0 ZPC +FUCOMPP 0x7ff8000000000001 0x0 ZPC +Rounding 0 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x0 => 0x0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x0 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x0 => long: 0 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x0 => quad: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x0 => long: 0 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x0 => quad: 0 +Rounding 1 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x0 => 0x0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x0 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x0 => long: 0 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x0 => quad: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x0 => long: 0 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x0 => quad: 0 +Rounding 2 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x0 => 0x0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x0 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x0 => long: 0 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x0 => quad: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x0 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x0 => long: 0 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x0 => quad: 0 +FUCOMI 0x7ff8000000000001 0x7ff8000000000001 ZPC +FUCOMPP 0x7ff8000000000001 0x7ff8000000000001 ZPC +Rounding 0 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +Rounding 1 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +Rounding 2 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +FUCOMI 0x7ff8000000000001 0x7ff8000000000001 ZPC +FUCOMPP 0x7ff8000000000001 0x7ff8000000000001 ZPC +Rounding 0 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +Rounding 1 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 +Rounding 2 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FRNDINT 0x7ff8000000000001 => 0x7ff8000000000001 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => word: 0 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => long: 80000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => word: 0 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => long: 80000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + FISTTP 0x7ff8000000000001 => quad: 8000000000000000 + +Done diff --git a/tests/test01_android b/tests/test01_android new file mode 100755 index 00000000..cdb53c98 --- /dev/null +++ b/tests/test01_android Binary files differdiff --git a/tests/test02_android b/tests/test02_android new file mode 100755 index 00000000..17967187 --- /dev/null +++ b/tests/test02_android Binary files differdiff --git a/tests/test03_android b/tests/test03_android new file mode 100755 index 00000000..2fafadc8 --- /dev/null +++ b/tests/test03_android Binary files differdiff --git a/tests/test04_android b/tests/test04_android new file mode 100755 index 00000000..e978457f --- /dev/null +++ b/tests/test04_android Binary files differdiff --git a/tests/test05_android b/tests/test05_android new file mode 100755 index 00000000..475a2d13 --- /dev/null +++ b/tests/test05_android Binary files differdiff --git a/tests/test06_android b/tests/test06_android new file mode 100755 index 00000000..33393969 --- /dev/null +++ b/tests/test06_android Binary files differdiff --git a/tests/test07_android b/tests/test07_android new file mode 100755 index 00000000..f7ffd39a --- /dev/null +++ b/tests/test07_android Binary files differdiff --git a/tests/test08_android b/tests/test08_android new file mode 100755 index 00000000..36740420 --- /dev/null +++ b/tests/test08_android Binary files differdiff --git a/tests/test09_android b/tests/test09_android new file mode 100755 index 00000000..abb0abb4 --- /dev/null +++ b/tests/test09_android Binary files differdiff --git a/tests/test10_android b/tests/test10_android new file mode 100755 index 00000000..dde36349 --- /dev/null +++ b/tests/test10_android Binary files differdiff --git a/tests/test11_android b/tests/test11_android new file mode 100755 index 00000000..5395e31d --- /dev/null +++ b/tests/test11_android Binary files differdiff --git a/tests/test12.c b/tests/test12.c index 4892a10d..abb94c06 100644 --- a/tests/test12.c +++ b/tests/test12.c @@ -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; diff --git a/tests/test12_android b/tests/test12_android new file mode 100755 index 00000000..8593a43d --- /dev/null +++ b/tests/test12_android Binary files differdiff --git a/tests/test14.c b/tests/test14.c index 65702be3..0f16a265 100644 --- a/tests/test14.c +++ b/tests/test14.c @@ -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); diff --git a/tests/test14_android b/tests/test14_android new file mode 100755 index 00000000..2a2e7490 --- /dev/null +++ b/tests/test14_android Binary files differdiff --git a/tests/test15_android b/tests/test15_android new file mode 100755 index 00000000..3f0cf2f8 --- /dev/null +++ b/tests/test15_android Binary files differdiff --git a/tests/test16_android b/tests/test16_android new file mode 100755 index 00000000..f3ae8574 --- /dev/null +++ b/tests/test16_android Binary files differdiff --git a/tests/test17_android b/tests/test17_android new file mode 100755 index 00000000..de6fe82b --- /dev/null +++ b/tests/test17_android Binary files differdiff --git a/tests/test18_android b/tests/test18_android new file mode 100755 index 00000000..008759dd --- /dev/null +++ b/tests/test18_android Binary files differdiff --git a/tests/test20_android b/tests/test20_android new file mode 100755 index 00000000..5cf23577 --- /dev/null +++ b/tests/test20_android Binary files differdiff --git a/tests/test21_android b/tests/test21_android new file mode 100755 index 00000000..90e127ff --- /dev/null +++ b/tests/test21_android Binary files differdiff --git a/tests/test22.c b/tests/test22.c index da0d05fa..f0c1040e 100644 --- a/tests/test22.c +++ b/tests/test22.c @@ -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) diff --git a/tests/test22_android b/tests/test22_android new file mode 100755 index 00000000..bf35b335 --- /dev/null +++ b/tests/test22_android Binary files differdiff --git a/tests/test23_android b/tests/test23_android new file mode 100755 index 00000000..54283766 --- /dev/null +++ b/tests/test23_android Binary files differdiff --git a/tests/test24_android b/tests/test24_android new file mode 100755 index 00000000..1a047cc1 --- /dev/null +++ b/tests/test24_android Binary files differdiff --git a/tests/test25_android b/tests/test25_android new file mode 100755 index 00000000..09b69429 --- /dev/null +++ b/tests/test25_android Binary files differdiff --git a/tests/test26_android b/tests/test26_android new file mode 100755 index 00000000..31b41000 --- /dev/null +++ b/tests/test26_android Binary files differdiff --git a/tests/test27_android b/tests/test27_android new file mode 100755 index 00000000..6a5c56de --- /dev/null +++ b/tests/test27_android Binary files differdiff --git a/tests/test28_android b/tests/test28_android new file mode 100755 index 00000000..14c58a32 --- /dev/null +++ b/tests/test28_android Binary files differdiff --git a/tests/test29_android b/tests/test29_android new file mode 100755 index 00000000..35a060ef --- /dev/null +++ b/tests/test29_android Binary files differ |