mirror of https://github.com/xemu-project/xemu.git
Testing, docs and gdbstub updates:
- make -M virt test exercise -cpu max - document how binfmt_misc docker works - clean-up the devel TOC generation - clean-up check-tcg cross-compile behaviour - fix byte swap error in xmm gdbstub access - add float_convd test with reference files - more reference files for float_convs - more cleanly handle gdb crashing during check-tcg -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmJgIgsACgkQ+9DbCVqe KkRs3Qf/WnL4YV3l8jO/wEVbls/57aLPk+ak1GuvXJ+iM9gH8Qz6WZxIJIEhhHlu ZEixCewahTn8POMMRo4JAr0bRgtfBuh717GerXObiHcS3OuLsGM8rYP2Z1xqKL3L 4pR8VqhyUq/Jyl/6MPN5OZB0AdEPIdI5MuflckCeDcFaowpthLjwHao07hG/FU0s wQYS7aYTZT33V2Xm6xlePEEMq8YMPCJj00HF3Ljg4eUOmb+C+csFXMQtotsBJRCg mC/T2U0IFbrQUkkWJqVmRCPwKraQGDMn6POk298siRWE0kV4BmH8mnmN+/Jxhqgl QfFhQrsBxmPPG5TfQhEmlHfQ5EARLQ== =8q12 -----END PGP SIGNATURE----- Merge tag 'pull-fixes-for-7.1-200422-1' of https://github.com/stsquad/qemu into staging Testing, docs and gdbstub updates: - make -M virt test exercise -cpu max - document how binfmt_misc docker works - clean-up the devel TOC generation - clean-up check-tcg cross-compile behaviour - fix byte swap error in xmm gdbstub access - add float_convd test with reference files - more reference files for float_convs - more cleanly handle gdb crashing during check-tcg # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmJgIgsACgkQ+9DbCVqe # KkRs3Qf/WnL4YV3l8jO/wEVbls/57aLPk+ak1GuvXJ+iM9gH8Qz6WZxIJIEhhHlu # ZEixCewahTn8POMMRo4JAr0bRgtfBuh717GerXObiHcS3OuLsGM8rYP2Z1xqKL3L # 4pR8VqhyUq/Jyl/6MPN5OZB0AdEPIdI5MuflckCeDcFaowpthLjwHao07hG/FU0s # wQYS7aYTZT33V2Xm6xlePEEMq8YMPCJj00HF3Ljg4eUOmb+C+csFXMQtotsBJRCg # mC/T2U0IFbrQUkkWJqVmRCPwKraQGDMn6POk298siRWE0kV4BmH8mnmN+/Jxhqgl # QfFhQrsBxmPPG5TfQhEmlHfQ5EARLQ== # =8q12 # -----END PGP SIGNATURE----- # gpg: Signature made Wed 20 Apr 2022 08:08:59 AM PDT # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [undefined] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * tag 'pull-fixes-for-7.1-200422-1' of https://github.com/stsquad/qemu: (25 commits) tests/guest-debug: better handle gdb crashes target/i386: fix byte swap issue with XMM register access tests/tcg: add missing reference files for float_convs tests/tcg: add float_convd test tests/tcg: remove duplicate sha512-sse case tests/tcg: fix non-static build tests/docker: remove SKIP_DOCKER_BUILD tests/tcg: isolate from QEMU's config-host.mak tests/tcg: invoke Makefile.target directly from QEMU's makefile tests/tcg: list test targets in Makefile.prereqs tests/tcg: prepare Makefile.prereqs at configure time tests/tcg: remove CONFIG_USER_ONLY from config-target.mak tests/tcg: remove CONFIG_LINUX_USER from config-target.mak tests/tcg: add compiler test variables when using containers tests/docker: do not duplicate rules for hexagon-cross tests/docker: simplify docker-TEST@IMAGE targets tests/docker: remove unnecessary filtering of $(DOCKER_IMAGES) tests/docker: inline variable definitions or move close to use tests/docker: remove unnecessary default definitions tests/docker: remove dead variable ... Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
commit
2d20a57453
|
@ -942,6 +942,7 @@ S: Maintained
|
||||||
F: hw/arm/virt*
|
F: hw/arm/virt*
|
||||||
F: include/hw/arm/virt.h
|
F: include/hw/arm/virt.h
|
||||||
F: docs/system/arm/virt.rst
|
F: docs/system/arm/virt.rst
|
||||||
|
F: tests/avocado/machine_aarch64_virt.py
|
||||||
|
|
||||||
Xilinx Zynq
|
Xilinx Zynq
|
||||||
M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
|
||||||
|
|
|
@ -2937,7 +2937,6 @@ echo "GENISOIMAGE=$genisoimage" >> $config_host_mak
|
||||||
echo "MESON=$meson" >> $config_host_mak
|
echo "MESON=$meson" >> $config_host_mak
|
||||||
echo "NINJA=$ninja" >> $config_host_mak
|
echo "NINJA=$ninja" >> $config_host_mak
|
||||||
echo "CC=$cc" >> $config_host_mak
|
echo "CC=$cc" >> $config_host_mak
|
||||||
echo "HOST_CC=$host_cc" >> $config_host_mak
|
|
||||||
echo "AR=$ar" >> $config_host_mak
|
echo "AR=$ar" >> $config_host_mak
|
||||||
echo "AS=$as" >> $config_host_mak
|
echo "AS=$as" >> $config_host_mak
|
||||||
echo "CCAS=$ccas" >> $config_host_mak
|
echo "CCAS=$ccas" >> $config_host_mak
|
||||||
|
@ -3057,7 +3056,7 @@ done
|
||||||
(for i in $cross_cc_vars; do
|
(for i in $cross_cc_vars; do
|
||||||
export $i
|
export $i
|
||||||
done
|
done
|
||||||
export target_list source_path use_containers cpu
|
export target_list source_path use_containers cpu host_cc
|
||||||
$source_path/tests/tcg/configure.sh)
|
$source_path/tests/tcg/configure.sh)
|
||||||
|
|
||||||
# temporary config to build submodules
|
# temporary config to build submodules
|
||||||
|
|
|
@ -6,7 +6,6 @@ generated from in-code annotations to function prototypes.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:includehidden:
|
|
||||||
|
|
||||||
bitops
|
bitops
|
||||||
loads-stores
|
loads-stores
|
||||||
|
|
|
@ -6,8 +6,7 @@ into our testing infrastructure. You will need to understand some of
|
||||||
the basics if you are adding new files and targets to the build.
|
the basics if you are adding new files and targets to the build.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 3
|
||||||
:includehidden:
|
|
||||||
|
|
||||||
build-system
|
build-system
|
||||||
kconfig
|
kconfig
|
||||||
|
|
|
@ -5,7 +5,6 @@ Details about QEMU's various subsystems including how to add features to them.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:includehidden:
|
|
||||||
|
|
||||||
qom
|
qom
|
||||||
atomics
|
atomics
|
||||||
|
|
|
@ -5,7 +5,6 @@ Notes about how to interact with the community and how and where to submit patch
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:includehidden:
|
|
||||||
|
|
||||||
code-of-conduct
|
code-of-conduct
|
||||||
conflict-resolution
|
conflict-resolution
|
||||||
|
|
|
@ -7,7 +7,6 @@ are only implementing things for HW accelerated hypervisors.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
:includehidden:
|
|
||||||
|
|
||||||
tcg
|
tcg
|
||||||
decodetree
|
decodetree
|
||||||
|
|
|
@ -8,8 +8,6 @@ modifying QEMU's source code.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:includehidden:
|
|
||||||
|
|
||||||
|
|
||||||
index-process
|
index-process
|
||||||
index-build
|
index-build
|
||||||
|
|
|
@ -3,7 +3,6 @@ QTest Device Emulation Testing Framework
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:hidden:
|
|
||||||
|
|
||||||
qgraph
|
qgraph
|
||||||
|
|
||||||
|
|
|
@ -637,6 +637,44 @@ The full set of annotations can be found here:
|
||||||
|
|
||||||
https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
|
https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp
|
||||||
|
|
||||||
|
docker-binfmt-image-debian-% targets
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
It is possible to combine Debian's bootstrap scripts with a configured
|
||||||
|
``binfmt_misc`` to bootstrap a number of Debian's distros including
|
||||||
|
experimental ports not yet supported by a released OS. This can
|
||||||
|
simplify setting up a rootfs by using docker to contain the foreign
|
||||||
|
rootfs rather than manually invoking chroot.
|
||||||
|
|
||||||
|
Setting up ``binfmt_misc``
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
You can use the script ``qemu-binfmt-conf.sh`` to configure a QEMU
|
||||||
|
user binary to automatically run binaries for the foreign
|
||||||
|
architecture. While the scripts will try their best to work with
|
||||||
|
dynamically linked QEMU's a statically linked one will present less
|
||||||
|
potential complications when copying into the docker image. Modern
|
||||||
|
kernels support the ``F`` (fix binary) flag which will open the QEMU
|
||||||
|
executable on setup and avoids the need to find and re-open in the
|
||||||
|
chroot environment. This is triggered with the ``--persistent`` flag.
|
||||||
|
|
||||||
|
Example invocation
|
||||||
|
~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
For example to setup the HPPA ports builds of Debian::
|
||||||
|
|
||||||
|
make docker-binfmt-image-debian-sid-hppa \
|
||||||
|
DEB_TYPE=sid DEB_ARCH=hppa \
|
||||||
|
DEB_URL=http://ftp.ports.debian.org/debian-ports/ \
|
||||||
|
DEB_KEYRING=/usr/share/keyrings/debian-ports-archive-keyring.gpg \
|
||||||
|
EXECUTABLE=(pwd)/qemu-hppa V=1
|
||||||
|
|
||||||
|
The ``DEB_`` variables are substitutions used by
|
||||||
|
``debian-boostrap.pre`` which is called to do the initial debootstrap
|
||||||
|
of the rootfs before it is copied into the container. The second stage
|
||||||
|
is run as part of the build. The final image will be tagged as
|
||||||
|
``qemu/debian-sid-hppa``.
|
||||||
|
|
||||||
VM testing
|
VM testing
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
|
|
@ -129,8 +129,8 @@ int x86_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||||
n -= IDX_XMM_REGS;
|
n -= IDX_XMM_REGS;
|
||||||
if (n < CPU_NB_REGS32 || TARGET_LONG_BITS == 64) {
|
if (n < CPU_NB_REGS32 || TARGET_LONG_BITS == 64) {
|
||||||
return gdb_get_reg128(mem_buf,
|
return gdb_get_reg128(mem_buf,
|
||||||
env->xmm_regs[n].ZMM_Q(0),
|
env->xmm_regs[n].ZMM_Q(1),
|
||||||
env->xmm_regs[n].ZMM_Q(1));
|
env->xmm_regs[n].ZMM_Q(0));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (n) {
|
switch (n) {
|
||||||
|
|
|
@ -36,37 +36,39 @@ export SRC_PATH
|
||||||
|
|
||||||
SPEED = quick
|
SPEED = quick
|
||||||
|
|
||||||
# Build up our target list from the filtered list of ninja targets
|
-include tests/tcg/Makefile.prereqs
|
||||||
TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targets)))
|
config-host.mak: $(SRC_PATH)/tests/tcg/configure.sh
|
||||||
|
tests/tcg/Makefile.prereqs: config-host.mak
|
||||||
|
|
||||||
# Per guest TCG tests
|
# Per guest TCG tests
|
||||||
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGETS))
|
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TCG_TESTS_TARGETS))
|
||||||
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGETS))
|
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TCG_TESTS_TARGETS))
|
||||||
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGETS))
|
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TCG_TESTS_TARGETS))
|
||||||
|
|
||||||
# Probe for the Docker Builds needed for each build
|
$(foreach TARGET,$(TCG_TESTS_TARGETS), \
|
||||||
$(foreach PROBE_TARGET,$(TARGET_DIRS), \
|
$(eval $(BUILD_DIR)/tests/tcg/config-$(TARGET).mak: config-host.mak))
|
||||||
$(eval -include $(SRC_PATH)/tests/tcg/Makefile.prereqs))
|
|
||||||
|
|
||||||
$(BUILD_TCG_TARGET_RULES): build-tcg-tests-%: $(if $(CONFIG_PLUGIN),test-plugins)
|
.PHONY: $(TCG_TESTS_TARGETS:%=build-tcg-tests-%)
|
||||||
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
|
$(TCG_TESTS_TARGETS:%=build-tcg-tests-%): build-tcg-tests-%: $(BUILD_DIR)/tests/tcg/config-%.mak
|
||||||
-f $(SRC_PATH)/tests/tcg/Makefile.qemu \
|
$(call quiet-command, \
|
||||||
SRC_PATH=$(SRC_PATH) \
|
$(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) \
|
||||||
V="$(V)" TARGET="$*" guest-tests, \
|
DOCKER_SCRIPT="$(DOCKER_SCRIPT)" \
|
||||||
"BUILD", "TCG tests for $*")
|
TARGET="$*" SRC_PATH="$(SRC_PATH)", \
|
||||||
|
"BUILD","$* guest-tests")
|
||||||
|
|
||||||
$(RUN_TCG_TARGET_RULES): run-tcg-tests-%: build-tcg-tests-% all
|
.PHONY: $(TCG_TESTS_TARGETS:%=run-tcg-tests-%)
|
||||||
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
|
$(TCG_TESTS_TARGETS:%=run-tcg-tests-%): run-tcg-tests-%: build-tcg-tests-% $(if $(CONFIG_PLUGIN),test-plugins)
|
||||||
-f $(SRC_PATH)/tests/tcg/Makefile.qemu \
|
$(call quiet-command, \
|
||||||
SRC_PATH=$(SRC_PATH) SPEED="$(SPEED)" \
|
$(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) \
|
||||||
V="$(V)" TARGET="$*" run-guest-tests, \
|
TARGET="$*" SRC_PATH="$(SRC_PATH)" SPEED=$(SPEED) run, \
|
||||||
"RUN", "TCG tests for $*")
|
"RUN", "$* guest-tests")
|
||||||
|
|
||||||
$(CLEAN_TCG_TARGET_RULES): clean-tcg-tests-%:
|
.PHONY: $(TCG_TESTS_TARGETS:%=clean-tcg-tests-%)
|
||||||
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) \
|
$(TCG_TESTS_TARGETS:%=clean-tcg-tests-%): clean-tcg-tests-%:
|
||||||
-f $(SRC_PATH)/tests/tcg/Makefile.qemu \
|
$(call quiet-command, \
|
||||||
SRC_PATH=$(SRC_PATH) TARGET="$*" clean-guest-tests, \
|
$(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) \
|
||||||
"CLEAN", "TCG tests for $*")
|
TARGET="$*" SRC_PATH="$(SRC_PATH)" clean, \
|
||||||
|
"CLEAN", "$* guest-tests")
|
||||||
|
|
||||||
.PHONY: build-tcg
|
.PHONY: build-tcg
|
||||||
build-tcg: $(BUILD_TCG_TARGET_RULES)
|
build-tcg: $(BUILD_TCG_TARGET_RULES)
|
||||||
|
@ -81,6 +83,9 @@ clean-tcg: $(CLEAN_TCG_TARGET_RULES)
|
||||||
|
|
||||||
.PHONY: check-venv check-avocado check-acceptance check-acceptance-deprecated-warning
|
.PHONY: check-venv check-avocado check-acceptance check-acceptance-deprecated-warning
|
||||||
|
|
||||||
|
# Build up our target list from the filtered list of ninja targets
|
||||||
|
TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa, $(ninja-targets)))
|
||||||
|
|
||||||
TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
|
TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv
|
||||||
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
|
TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt
|
||||||
TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
|
TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results
|
||||||
|
|
|
@ -325,31 +325,6 @@ class BootLinuxConsole(LinuxKernelTest):
|
||||||
kernel_hash = '18d1c68f2e23429e266ca39ba5349ccd0aeb7180'
|
kernel_hash = '18d1c68f2e23429e266ca39ba5349ccd0aeb7180'
|
||||||
self.do_test_mips_malta32el_nanomips(kernel_url, kernel_hash)
|
self.do_test_mips_malta32el_nanomips(kernel_url, kernel_hash)
|
||||||
|
|
||||||
def test_aarch64_virt(self):
|
|
||||||
"""
|
|
||||||
:avocado: tags=arch:aarch64
|
|
||||||
:avocado: tags=machine:virt
|
|
||||||
:avocado: tags=accel:tcg
|
|
||||||
:avocado: tags=cpu:cortex-a53
|
|
||||||
"""
|
|
||||||
kernel_url = ('https://archives.fedoraproject.org/pub/archive/fedora'
|
|
||||||
'/linux/releases/29/Everything/aarch64/os/images/pxeboot'
|
|
||||||
'/vmlinuz')
|
|
||||||
kernel_hash = '8c73e469fc6ea06a58dc83a628fc695b693b8493'
|
|
||||||
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
|
|
||||||
|
|
||||||
self.vm.set_console()
|
|
||||||
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
|
|
||||||
'console=ttyAMA0')
|
|
||||||
self.require_accelerator("tcg")
|
|
||||||
self.vm.add_args('-cpu', 'cortex-a53',
|
|
||||||
'-accel', 'tcg',
|
|
||||||
'-kernel', kernel_path,
|
|
||||||
'-append', kernel_command_line)
|
|
||||||
self.vm.launch()
|
|
||||||
console_pattern = 'Kernel command line: %s' % kernel_command_line
|
|
||||||
self.wait_for_console_pattern(console_pattern)
|
|
||||||
|
|
||||||
def test_aarch64_xlnx_versal_virt(self):
|
def test_aarch64_xlnx_versal_virt(self):
|
||||||
"""
|
"""
|
||||||
:avocado: tags=arch:aarch64
|
:avocado: tags=arch:aarch64
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
# Functional test that boots a Linux kernel and checks the console
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022 Linaro Ltd.
|
||||||
|
#
|
||||||
|
# Author:
|
||||||
|
# Alex Bennée <alex.bennee@linaro.org>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
|
from avocado_qemu import QemuSystemTest
|
||||||
|
from avocado_qemu import wait_for_console_pattern
|
||||||
|
from avocado_qemu import exec_command
|
||||||
|
|
||||||
|
class Aarch64VirtMachine(QemuSystemTest):
|
||||||
|
KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
|
||||||
|
|
||||||
|
def wait_for_console_pattern(self, success_message, vm=None):
|
||||||
|
wait_for_console_pattern(self, success_message,
|
||||||
|
failure_message='Kernel panic - not syncing',
|
||||||
|
vm=vm)
|
||||||
|
|
||||||
|
def test_aarch64_virt(self):
|
||||||
|
"""
|
||||||
|
:avocado: tags=arch:aarch64
|
||||||
|
:avocado: tags=machine:virt
|
||||||
|
:avocado: tags=accel:tcg
|
||||||
|
:avocado: tags=cpu:max
|
||||||
|
"""
|
||||||
|
kernel_url = ('https://fileserver.linaro.org/s/'
|
||||||
|
'z6B2ARM7DQT3HWN/download')
|
||||||
|
|
||||||
|
kernel_hash = 'ed11daab50c151dde0e1e9c9cb8b2d9bd3215347'
|
||||||
|
kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
|
||||||
|
|
||||||
|
self.vm.set_console()
|
||||||
|
kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE +
|
||||||
|
'console=ttyAMA0')
|
||||||
|
self.require_accelerator("tcg")
|
||||||
|
self.vm.add_args('-cpu', 'max,pauth-impdef=on',
|
||||||
|
'-accel', 'tcg',
|
||||||
|
'-kernel', kernel_path,
|
||||||
|
'-append', kernel_command_line)
|
||||||
|
self.vm.launch()
|
||||||
|
self.wait_for_console_pattern('Welcome to Buildroot')
|
||||||
|
time.sleep(0.1)
|
||||||
|
exec_command(self, 'root')
|
||||||
|
time.sleep(0.1)
|
||||||
|
exec_command(self, 'cat /proc/self/maps')
|
||||||
|
time.sleep(0.1)
|
|
@ -8,33 +8,13 @@ COMMA := ,
|
||||||
|
|
||||||
HOST_ARCH = $(if $(ARCH),$(ARCH),$(shell uname -m))
|
HOST_ARCH = $(if $(ARCH),$(ARCH),$(shell uname -m))
|
||||||
|
|
||||||
# These variables can be set by the user to limit the set of docker
|
|
||||||
# images and tests to a more restricted subset
|
|
||||||
TESTS ?= %
|
|
||||||
IMAGES ?= %
|
|
||||||
|
|
||||||
DOCKER_SUFFIX := .docker
|
|
||||||
DOCKER_FILES_DIR := $(SRC_PATH)/tests/docker/dockerfiles
|
DOCKER_FILES_DIR := $(SRC_PATH)/tests/docker/dockerfiles
|
||||||
# we don't run tests on intermediate images (used as base by another image)
|
|
||||||
DOCKER_PARTIAL_IMAGES := debian10 debian11
|
|
||||||
# we don't directly build virtual images (they are used to build other images)
|
|
||||||
DOCKER_VIRTUAL_IMAGES := debian-bootstrap debian-toolchain empty
|
|
||||||
__IMAGES := $(sort $(filter-out $(DOCKER_VIRTUAL_IMAGES), $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.docker)))))
|
|
||||||
DOCKER_IMAGES := $(if $(IMAGES), $(filter $(IMAGES), $(__IMAGES)), $(__IMAGES))
|
|
||||||
DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))
|
|
||||||
# Use a global constant ccache directory to speed up repetitive builds
|
|
||||||
DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache
|
|
||||||
ifeq ($(HOST_ARCH),x86_64)
|
ifeq ($(HOST_ARCH),x86_64)
|
||||||
DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu
|
DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu
|
||||||
endif
|
endif
|
||||||
DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))
|
DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))
|
||||||
|
|
||||||
__TESTS := $(notdir $(shell \
|
|
||||||
find $(SRC_PATH)/tests/docker/ -name 'test-*' -type f))
|
|
||||||
DOCKER_TESTS := $(if $(TESTS), $(filter $(TESTS), $(__TESTS)), $(__TESTS))
|
|
||||||
|
|
||||||
ENGINE := auto
|
ENGINE := auto
|
||||||
|
|
||||||
DOCKER_SCRIPT=$(SRC_PATH)/tests/docker/docker.py --engine $(ENGINE)
|
DOCKER_SCRIPT=$(SRC_PATH)/tests/docker/docker.py --engine $(ENGINE)
|
||||||
|
|
||||||
CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
|
CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
|
||||||
|
@ -53,17 +33,7 @@ $(DOCKER_SRC_COPY):
|
||||||
|
|
||||||
docker-qemu-src: $(DOCKER_SRC_COPY)
|
docker-qemu-src: $(DOCKER_SRC_COPY)
|
||||||
|
|
||||||
docker-image: ${DOCKER_TARGETS}
|
# General rule for building docker images.
|
||||||
|
|
||||||
# General rule for building docker images. If we are a sub-make
|
|
||||||
# invoked with SKIP_DOCKER_BUILD we still check the image is up to date
|
|
||||||
# though
|
|
||||||
ifdef SKIP_DOCKER_BUILD
|
|
||||||
docker-image-%: $(DOCKER_FILES_DIR)/%.docker
|
|
||||||
$(call quiet-command, \
|
|
||||||
$(DOCKER_SCRIPT) check --quiet qemu/$* $<, \
|
|
||||||
"CHECK", "$*")
|
|
||||||
else
|
|
||||||
docker-image-%: $(DOCKER_FILES_DIR)/%.docker
|
docker-image-%: $(DOCKER_FILES_DIR)/%.docker
|
||||||
$(call quiet-command,\
|
$(call quiet-command,\
|
||||||
$(DOCKER_SCRIPT) build -t qemu/$* -f $< \
|
$(DOCKER_SCRIPT) build -t qemu/$* -f $< \
|
||||||
|
@ -99,27 +69,9 @@ docker-binfmt-image-debian-%: $(DOCKER_FILES_DIR)/debian-bootstrap.docker
|
||||||
{ echo "You will need to build $(EXECUTABLE)"; exit 1;},\
|
{ echo "You will need to build $(EXECUTABLE)"; exit 1;},\
|
||||||
"CHECK", "debian-$* exists"))
|
"CHECK", "debian-$* exists"))
|
||||||
|
|
||||||
# These are test targets
|
|
||||||
USER_TCG_TARGETS=$(patsubst %-linux-user,qemu-%,$(filter %-linux-user,$(TARGET_DIRS)))
|
|
||||||
EXEC_COPY_TESTS=$(patsubst %,docker-exec-copy-test-%, $(USER_TCG_TARGETS))
|
|
||||||
|
|
||||||
$(EXEC_COPY_TESTS): docker-exec-copy-test-%: $(DOCKER_FILES_DIR)/empty.docker
|
|
||||||
$(call quiet-command, \
|
|
||||||
$(DOCKER_SCRIPT) build -t qemu/exec-copy-test-$* -f $< \
|
|
||||||
$(if $V,,--quiet) --no-cache \
|
|
||||||
--include-executable=$* \
|
|
||||||
--skip-binfmt, \
|
|
||||||
"TEST","copy $* to container")
|
|
||||||
$(call quiet-command, \
|
|
||||||
$(DOCKER_SCRIPT) run qemu/exec-copy-test-$* \
|
|
||||||
/$* -version > tests/docker-exec-copy-test-$*.out, \
|
|
||||||
"TEST","check $* works in container")
|
|
||||||
|
|
||||||
docker-exec-copy-test: $(EXEC_COPY_TESTS)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Enforce dependencies for composite images
|
# Enforce dependencies for composite images
|
||||||
|
# we don't run tests on intermediate images (used as base by another image)
|
||||||
|
DOCKER_PARTIAL_IMAGES := debian10 debian11
|
||||||
ifeq ($(HOST_ARCH),x86_64)
|
ifeq ($(HOST_ARCH),x86_64)
|
||||||
docker-image-debian-amd64: docker-image-debian10
|
docker-image-debian-amd64: docker-image-debian10
|
||||||
DOCKER_PARTIAL_IMAGES += debian-amd64-cross
|
DOCKER_PARTIAL_IMAGES += debian-amd64-cross
|
||||||
|
@ -159,28 +111,6 @@ docker-image-debian11: NOUSER=1
|
||||||
# alpine has no adduser
|
# alpine has no adduser
|
||||||
docker-image-alpine: NOUSER=1
|
docker-image-alpine: NOUSER=1
|
||||||
|
|
||||||
#
|
|
||||||
# The build rule for hexagon-cross is special in so far for most of
|
|
||||||
# the time we don't want to build it. While dockers caching does avoid
|
|
||||||
# this most of the time sometimes we want to force the issue.
|
|
||||||
#
|
|
||||||
docker-image-debian-hexagon-cross: $(DOCKER_FILES_DIR)/debian-hexagon-cross.docker
|
|
||||||
$(if $(NOCACHE), \
|
|
||||||
$(call quiet-command, \
|
|
||||||
$(DOCKER_SCRIPT) build -t qemu/debian-hexagon-cross -f $< \
|
|
||||||
$(if $V,,--quiet) --no-cache \
|
|
||||||
--registry $(DOCKER_REGISTRY) --extra-files \
|
|
||||||
$(DOCKER_FILES_DIR)/debian-hexagon-cross.docker.d/build-toolchain.sh, \
|
|
||||||
"BUILD", "debian-hexagon-cross"), \
|
|
||||||
$(call quiet-command, \
|
|
||||||
$(DOCKER_SCRIPT) fetch $(if $V,,--quiet) \
|
|
||||||
qemu/debian-hexagon-cross $(DOCKER_REGISTRY), \
|
|
||||||
"FETCH", "debian-hexagon-cross") \
|
|
||||||
$(call quiet-command, \
|
|
||||||
$(DOCKER_SCRIPT) update $(if $V,,--quiet) \
|
|
||||||
qemu/debian-hexagon-cross --add-current-user, \
|
|
||||||
"PREPARE", "debian-hexagon-cross"))
|
|
||||||
|
|
||||||
debian-toolchain-run = \
|
debian-toolchain-run = \
|
||||||
$(if $(NOCACHE), \
|
$(if $(NOCACHE), \
|
||||||
$(call quiet-command, \
|
$(call quiet-command, \
|
||||||
|
@ -200,6 +130,10 @@ debian-toolchain-run = \
|
||||||
"PREPARE", $1))
|
"PREPARE", $1))
|
||||||
debian-toolchain = $(call debian-toolchain-run,$(patsubst docker-image-%,%,$1))
|
debian-toolchain = $(call debian-toolchain-run,$(patsubst docker-image-%,%,$1))
|
||||||
|
|
||||||
|
docker-image-debian-hexagon-cross: $(DOCKER_FILES_DIR)/debian-hexagon-cross.docker \
|
||||||
|
$(DOCKER_FILES_DIR)/debian-hexagon-cross.d/build-toolchain.sh
|
||||||
|
$(call debian-toolchain, $@)
|
||||||
|
|
||||||
docker-image-debian-microblaze-cross: $(DOCKER_FILES_DIR)/debian-toolchain.docker \
|
docker-image-debian-microblaze-cross: $(DOCKER_FILES_DIR)/debian-toolchain.docker \
|
||||||
$(DOCKER_FILES_DIR)/debian-microblaze-cross.d/build-toolchain.sh
|
$(DOCKER_FILES_DIR)/debian-microblaze-cross.d/build-toolchain.sh
|
||||||
$(call debian-toolchain, $@)
|
$(call debian-toolchain, $@)
|
||||||
|
@ -229,17 +163,20 @@ DOCKER_PARTIAL_IMAGES += debian-tricore-cross
|
||||||
DOCKER_PARTIAL_IMAGES += debian-xtensa-cross
|
DOCKER_PARTIAL_IMAGES += debian-xtensa-cross
|
||||||
DOCKER_PARTIAL_IMAGES += fedora-cris-cross
|
DOCKER_PARTIAL_IMAGES += fedora-cris-cross
|
||||||
|
|
||||||
# Rules for building linux-user powered images
|
# images that are only used to build other images
|
||||||
#
|
DOCKER_VIRTUAL_IMAGES := debian-bootstrap debian-toolchain
|
||||||
# These are slower than using native cross compiler setups but can
|
|
||||||
# work around issues with poorly working multi-arch systems and broken
|
__IMAGES := $(sort $(filter-out $(DOCKER_VIRTUAL_IMAGES), $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.docker)))))
|
||||||
# packages.
|
DOCKER_IMAGES := $(if $(IMAGES), $(filter $(IMAGES), $(__IMAGES)), $(__IMAGES))
|
||||||
|
|
||||||
|
__TESTS := $(notdir $(shell find $(SRC_PATH)/tests/docker/ -name 'test-*' -type f))
|
||||||
|
DOCKER_TESTS := $(if $(TESTS), $(filter $(TESTS), $(__TESTS)), $(__TESTS))
|
||||||
|
|
||||||
# Expand all the pre-requistes for each docker image and test combination
|
# Expand all the pre-requistes for each docker image and test combination
|
||||||
$(foreach i,$(filter-out $(DOCKER_PARTIAL_IMAGES) $(DOCKER_VIRTUAL_IMAGES),$(DOCKER_IMAGES)), \
|
$(foreach i,$(filter-out $(DOCKER_PARTIAL_IMAGES),$(DOCKER_IMAGES)), \
|
||||||
$(foreach t,$(DOCKER_TESTS), \
|
$(foreach t,$(DOCKER_TESTS), \
|
||||||
$(eval .PHONY: docker-$t@$i) \
|
$(eval .PHONY: docker-$t@$i) \
|
||||||
$(eval docker-$t@$i: docker-image-$i docker-run-$t@$i) \
|
$(eval docker-$t@$i: docker-image-$i; @$(MAKE) docker-run TEST=$t IMAGE=$i) \
|
||||||
) \
|
) \
|
||||||
$(foreach t,$(DOCKER_TESTS), \
|
$(foreach t,$(DOCKER_TESTS), \
|
||||||
$(eval docker-all-tests: docker-$t@$i) \
|
$(eval docker-all-tests: docker-$t@$i) \
|
||||||
|
@ -266,11 +203,6 @@ docker:
|
||||||
@echo
|
@echo
|
||||||
@echo 'Available container images:'
|
@echo 'Available container images:'
|
||||||
@echo ' $(DOCKER_IMAGES)'
|
@echo ' $(DOCKER_IMAGES)'
|
||||||
ifneq ($(DOCKER_USER_IMAGES),)
|
|
||||||
@echo
|
|
||||||
@echo 'Available linux-user images (docker-binfmt-image-debian-%):'
|
|
||||||
@echo ' $(DOCKER_USER_IMAGES)'
|
|
||||||
endif
|
|
||||||
@echo
|
@echo
|
||||||
@echo 'Available tests:'
|
@echo 'Available tests:'
|
||||||
@echo ' $(DOCKER_TESTS)'
|
@echo ' $(DOCKER_TESTS)'
|
||||||
|
@ -298,9 +230,12 @@ endif
|
||||||
|
|
||||||
docker-help: docker
|
docker-help: docker
|
||||||
|
|
||||||
|
# Use a global constant ccache directory to speed up repetitive builds
|
||||||
|
DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache
|
||||||
|
|
||||||
# This rule if for directly running against an arbitrary docker target.
|
# This rule if for directly running against an arbitrary docker target.
|
||||||
# It is called by the expanded docker targets (e.g. make
|
# It is called by the expanded docker targets (e.g. make
|
||||||
# docker-test-foo@bar) which will do additional verification.
|
# docker-test-foo@bar) which will also ensure the image is up to date.
|
||||||
#
|
#
|
||||||
# For example: make docker-run TEST="test-quick" IMAGE="debian:arm64" EXECUTABLE=./aarch64-linux-user/qemu-aarch64
|
# For example: make docker-run TEST="test-quick" IMAGE="debian:arm64" EXECUTABLE=./aarch64-linux-user/qemu-aarch64
|
||||||
#
|
#
|
||||||
|
@ -335,13 +270,7 @@ docker-run: docker-qemu-src
|
||||||
$(call quiet-command, rm -r $(DOCKER_SRC_COPY), \
|
$(call quiet-command, rm -r $(DOCKER_SRC_COPY), \
|
||||||
" CLEANUP $(DOCKER_SRC_COPY)")
|
" CLEANUP $(DOCKER_SRC_COPY)")
|
||||||
|
|
||||||
# Run targets:
|
docker-image: ${DOCKER_IMAGES:%=docker-image-%}
|
||||||
#
|
|
||||||
# Of the form docker-TEST-FOO@IMAGE-BAR which will then be expanded into a call to "make docker-run"
|
|
||||||
docker-run-%: CMD = $(shell echo '$@' | sed -e 's/docker-run-\([^@]*\)@\(.*\)/\1/')
|
|
||||||
docker-run-%: IMAGE = $(shell echo '$@' | sed -e 's/docker-run-\([^@]*\)@\(.*\)/\2/')
|
|
||||||
docker-run-%:
|
|
||||||
@$(MAKE) docker-run TEST=$(CMD) IMAGE=qemu/$(IMAGE)
|
|
||||||
|
|
||||||
docker-clean:
|
docker-clean:
|
||||||
$(call quiet-command, $(DOCKER_SCRIPT) clean)
|
$(call quiet-command, $(DOCKER_SCRIPT) clean)
|
||||||
|
|
|
@ -676,63 +676,6 @@ class CcCommand(SubCommand):
|
||||||
as_user=True)
|
as_user=True)
|
||||||
|
|
||||||
|
|
||||||
class CheckCommand(SubCommand):
|
|
||||||
"""Check if we need to re-build a docker image out of a dockerfile.
|
|
||||||
Arguments: <tag> <dockerfile>"""
|
|
||||||
name = "check"
|
|
||||||
|
|
||||||
def args(self, parser):
|
|
||||||
parser.add_argument("tag",
|
|
||||||
help="Image Tag")
|
|
||||||
parser.add_argument("dockerfile", default=None,
|
|
||||||
help="Dockerfile name", nargs='?')
|
|
||||||
parser.add_argument("--checktype", choices=["checksum", "age"],
|
|
||||||
default="checksum", help="check type")
|
|
||||||
parser.add_argument("--olderthan", default=60, type=int,
|
|
||||||
help="number of minutes")
|
|
||||||
|
|
||||||
def run(self, args, argv):
|
|
||||||
tag = args.tag
|
|
||||||
|
|
||||||
try:
|
|
||||||
dkr = Docker()
|
|
||||||
except subprocess.CalledProcessError:
|
|
||||||
print("Docker not set up")
|
|
||||||
return 1
|
|
||||||
|
|
||||||
info = dkr.inspect_tag(tag)
|
|
||||||
if info is None:
|
|
||||||
print("Image does not exist")
|
|
||||||
return 1
|
|
||||||
|
|
||||||
if args.checktype == "checksum":
|
|
||||||
if not args.dockerfile:
|
|
||||||
print("Need a dockerfile for tag:%s" % (tag))
|
|
||||||
return 1
|
|
||||||
|
|
||||||
dockerfile = _read_dockerfile(args.dockerfile)
|
|
||||||
|
|
||||||
if dkr.image_matches_dockerfile(tag, dockerfile):
|
|
||||||
if not args.quiet:
|
|
||||||
print("Image is up to date")
|
|
||||||
return 0
|
|
||||||
else:
|
|
||||||
print("Image needs updating")
|
|
||||||
return 1
|
|
||||||
elif args.checktype == "age":
|
|
||||||
timestr = dkr.get_image_creation_time(info).split(".")[0]
|
|
||||||
created = datetime.strptime(timestr, "%Y-%m-%dT%H:%M:%S")
|
|
||||||
past = datetime.now() - timedelta(minutes=args.olderthan)
|
|
||||||
if created < past:
|
|
||||||
print ("Image created @ %s more than %d minutes old" %
|
|
||||||
(timestr, args.olderthan))
|
|
||||||
return 1
|
|
||||||
else:
|
|
||||||
if not args.quiet:
|
|
||||||
print ("Image less than %d minutes old" % (args.olderthan))
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
global USE_ENGINE
|
global USE_ENGINE
|
||||||
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
#
|
|
||||||
# Empty Dockerfile
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM scratch
|
|
||||||
|
|
||||||
# Add everything from the context into the container
|
|
||||||
ADD . /
|
|
|
@ -92,17 +92,18 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
result = subprocess.call(gdb_cmd, shell=True, stdout=output)
|
result = subprocess.call(gdb_cmd, shell=True, stdout=output)
|
||||||
|
|
||||||
# A negative result is the result of an internal gdb failure like
|
# A result of greater than 128 indicates a fatal signal (likely a
|
||||||
# a crash. We force a return of 0 so we don't fail the test on
|
# crash due to gdb internal failure). That's a problem for GDB and
|
||||||
|
# not the test so we force a return of 0 so we don't fail the test on
|
||||||
# account of broken external tools.
|
# account of broken external tools.
|
||||||
if result < 0:
|
if result > 128:
|
||||||
print("GDB crashed? SKIPPING")
|
log(output, "GDB crashed? (%d, %d) SKIPPING" % (result, result - 128))
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
inferior.wait(2)
|
inferior.wait(2)
|
||||||
except subprocess.TimeoutExpired:
|
except subprocess.TimeoutExpired:
|
||||||
print("GDB never connected? Killed guest")
|
log(output, "GDB never connected? Killed guest")
|
||||||
inferior.kill()
|
inferior.kill()
|
||||||
|
|
||||||
exit(result)
|
exit(result)
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
# -*- Mode: makefile -*-
|
|
||||||
#
|
|
||||||
# TCG Compiler Probe
|
|
||||||
#
|
|
||||||
# This Makefile fragment is included multiple times in the main make
|
|
||||||
# script to probe for available compilers. This is used to build up a
|
|
||||||
# selection of required docker targets before we invoke a sub-make for
|
|
||||||
# each target.
|
|
||||||
|
|
||||||
DOCKER_IMAGE:=
|
|
||||||
|
|
||||||
-include $(BUILD_DIR)/tests/tcg/config-$(PROBE_TARGET).mak
|
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE),)
|
|
||||||
build-tcg-tests-$(PROBE_TARGET): docker-image-$(DOCKER_IMAGE)
|
|
||||||
endif
|
|
||||||
$(BUILD_DIR)/tests/tcg/config_$(PROBE_TARGET).mak: config-host.mak
|
|
||||||
config-host.mak: $(SRC_PATH)/tests/tcg/configure.sh
|
|
|
@ -1,121 +0,0 @@
|
||||||
# -*- Mode: makefile -*-
|
|
||||||
#
|
|
||||||
# TCG tests (per-target rules)
|
|
||||||
#
|
|
||||||
# This Makefile fragment is included from the build-tcg target, once
|
|
||||||
# for each target we build. We have two options for compiling, either
|
|
||||||
# using a configured guest compiler or calling one of our docker images
|
|
||||||
# to do it for us.
|
|
||||||
#
|
|
||||||
|
|
||||||
# The configure script fills in extra information about
|
|
||||||
# useful docker images or alternative compiler flags.
|
|
||||||
|
|
||||||
# Usage: $(call quiet-command,command and args,"NAME","args to print")
|
|
||||||
# This will run "command and args", and either:
|
|
||||||
# if V=1 just print the whole command and args
|
|
||||||
# otherwise print the 'quiet' output in the format " NAME args to print"
|
|
||||||
# NAME should be a short name of the command, 7 letters or fewer.
|
|
||||||
# If called with only a single argument, will print nothing in quiet mode.
|
|
||||||
quiet-command-run = $(if $(V),,$(if $2,printf " %-7s %s\n" $2 $3 && ))$1
|
|
||||||
quiet-@ = $(if $(V),,@)
|
|
||||||
quiet-command = $(quiet-@)$(call quiet-command-run,$1,$2,$3)
|
|
||||||
|
|
||||||
CROSS_CC_GUEST:=
|
|
||||||
CROSS_AS_GUEST:=
|
|
||||||
CROSS_LD_GUEST:=
|
|
||||||
DOCKER_IMAGE:=
|
|
||||||
|
|
||||||
-include tests/tcg/config-$(TARGET).mak
|
|
||||||
|
|
||||||
GUEST_BUILD=
|
|
||||||
TCG_MAKE=../Makefile.target
|
|
||||||
|
|
||||||
# We also need the Docker make rules to depend on
|
|
||||||
SKIP_DOCKER_BUILD=1
|
|
||||||
include $(SRC_PATH)/tests/docker/Makefile.include
|
|
||||||
|
|
||||||
# Support installed Cross Compilers
|
|
||||||
|
|
||||||
ifdef CROSS_CC_GUEST
|
|
||||||
|
|
||||||
.PHONY: cross-build-guest-tests
|
|
||||||
cross-build-guest-tests:
|
|
||||||
$(call quiet-command, \
|
|
||||||
(mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
|
|
||||||
$(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC="$(CROSS_CC_GUEST)" \
|
|
||||||
$(if $(CROSS_AS_GUEST),AS="$(CROSS_AS_GUEST)") \
|
|
||||||
$(if $(CROSS_LD_GUEST),LD="$(CROSS_LD_GUEST)") \
|
|
||||||
SRC_PATH="$(SRC_PATH)" BUILD_STATIC=$(CROSS_CC_GUEST_STATIC) \
|
|
||||||
EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
|
|
||||||
"BUILD","$(TARGET) guest-tests with $(CROSS_CC_GUEST)")
|
|
||||||
|
|
||||||
GUEST_BUILD=cross-build-guest-tests
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Support building with Docker
|
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE),)
|
|
||||||
|
|
||||||
DOCKER_COMPILE_CMD="$(DOCKER_SCRIPT) cc \
|
|
||||||
--cc $(DOCKER_CROSS_CC_GUEST) \
|
|
||||||
-i qemu/$(DOCKER_IMAGE) \
|
|
||||||
-s $(SRC_PATH) -- "
|
|
||||||
|
|
||||||
DOCKER_AS_CMD=$(if $(DOCKER_CROSS_AS_GUEST),"$(DOCKER_SCRIPT) cc \
|
|
||||||
--cc $(DOCKER_CROSS_AS_GUEST) \
|
|
||||||
-i qemu/$(DOCKER_IMAGE) \
|
|
||||||
-s $(SRC_PATH) -- ")
|
|
||||||
|
|
||||||
DOCKER_LD_CMD=$(if $(DOCKER_CROSS_LD_GUEST),"$(DOCKER_SCRIPT) cc \
|
|
||||||
--cc $(DOCKER_CROSS_LD_GUEST) \
|
|
||||||
-i qemu/$(DOCKER_IMAGE) \
|
|
||||||
-s $(SRC_PATH) -- ")
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: docker-build-guest-tests
|
|
||||||
docker-build-guest-tests: docker-image-$(DOCKER_IMAGE)
|
|
||||||
$(call quiet-command, \
|
|
||||||
(mkdir -p tests/tcg/$(TARGET) && cd tests/tcg/$(TARGET) && \
|
|
||||||
$(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" CC=$(DOCKER_COMPILE_CMD) \
|
|
||||||
$(if $(DOCKER_AS_CMD),AS=$(DOCKER_AS_CMD)) \
|
|
||||||
$(if $(DOCKER_LD_CMD),LD=$(DOCKER_LD_CMD)) \
|
|
||||||
SRC_PATH="$(SRC_PATH)" BUILD_STATIC=y \
|
|
||||||
EXTRA_CFLAGS="$(CROSS_CC_GUEST_CFLAGS)"), \
|
|
||||||
"BUILD","$(TARGET) guest-tests with docker qemu/$(DOCKER_IMAGE)")
|
|
||||||
|
|
||||||
GUEST_BUILD=docker-build-guest-tests
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Final targets
|
|
||||||
all:
|
|
||||||
@echo "Do not invoke this Makefile directly"; exit 1
|
|
||||||
|
|
||||||
.PHONY: guest-tests
|
|
||||||
|
|
||||||
ifneq ($(GUEST_BUILD),)
|
|
||||||
guest-tests: $(GUEST_BUILD)
|
|
||||||
|
|
||||||
run-guest-tests: guest-tests
|
|
||||||
$(call quiet-command, \
|
|
||||||
(cd tests/tcg/$(TARGET) && \
|
|
||||||
$(MAKE) -f $(TCG_MAKE) TARGET="$(TARGET)" \
|
|
||||||
SRC_PATH="$(SRC_PATH)" SPEED=$(SPEED) run), \
|
|
||||||
"RUN", "tests for $(TARGET_NAME)")
|
|
||||||
|
|
||||||
else
|
|
||||||
guest-tests:
|
|
||||||
$(call quiet-command, true, "BUILD", \
|
|
||||||
"$(TARGET) guest-tests SKIPPED")
|
|
||||||
|
|
||||||
run-guest-tests:
|
|
||||||
$(call quiet-command, true, "RUN", \
|
|
||||||
"tests for $(TARGET) SKIPPED")
|
|
||||||
endif
|
|
||||||
|
|
||||||
# It doesn't matter if these don't exits
|
|
||||||
.PHONY: clean-guest-tests
|
|
||||||
clean-guest-tests:
|
|
||||||
rm -rf tests/tcg/$(TARGET)
|
|
|
@ -30,11 +30,11 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
all:
|
all:
|
||||||
-include ../../../config-host.mak
|
-include ../config-host.mak
|
||||||
-include ../config-$(TARGET).mak
|
-include ../config-$(TARGET).mak
|
||||||
|
|
||||||
# Get semihosting definitions for user-mode emulation
|
# Get semihosting definitions for user-mode emulation
|
||||||
ifeq ($(CONFIG_USER_ONLY),y)
|
ifeq ($(filter %-softmmu, $(TARGET)),)
|
||||||
-include $(SRC_PATH)/configs/targets/$(TARGET).mak
|
-include $(SRC_PATH)/configs/targets/$(TARGET).mak
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ COMMA := ,
|
||||||
quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
|
quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
|
||||||
|
|
||||||
# $1 = test name, $2 = cmd, $3 = desc
|
# $1 = test name, $2 = cmd, $3 = desc
|
||||||
ifdef CONFIG_USER_ONLY
|
ifeq ($(filter %-softmmu, $(TARGET)),)
|
||||||
run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out, \
|
run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out, \
|
||||||
"TEST",$3)
|
"TEST",$3)
|
||||||
else
|
else
|
||||||
|
@ -77,7 +77,6 @@ EXTRA_TESTS=
|
||||||
|
|
||||||
# Start with a blank slate, the build targets get to add stuff first
|
# Start with a blank slate, the build targets get to add stuff first
|
||||||
CFLAGS=
|
CFLAGS=
|
||||||
QEMU_CFLAGS=
|
|
||||||
LDFLAGS=
|
LDFLAGS=
|
||||||
|
|
||||||
QEMU_OPTS=
|
QEMU_OPTS=
|
||||||
|
@ -91,7 +90,7 @@ QEMU_OPTS=
|
||||||
# 90s with --enable-tcg-interpreter
|
# 90s with --enable-tcg-interpreter
|
||||||
TIMEOUT=90
|
TIMEOUT=90
|
||||||
|
|
||||||
ifdef CONFIG_USER_ONLY
|
ifeq ($(filter %-softmmu, $(TARGET)),)
|
||||||
# The order we include is important. We include multiarch first and
|
# The order we include is important. We include multiarch first and
|
||||||
# then the target. If there are common tests shared between
|
# then the target. If there are common tests shared between
|
||||||
# sub-targets (e.g. ARM & AArch64) then it is up to
|
# sub-targets (e.g. ARM & AArch64) then it is up to
|
||||||
|
@ -153,7 +152,7 @@ extract-plugin = $(wordlist 2, 2, $(subst -with-, ,$1))
|
||||||
|
|
||||||
RUN_TESTS+=$(EXTRA_RUNS)
|
RUN_TESTS+=$(EXTRA_RUNS)
|
||||||
|
|
||||||
ifdef CONFIG_USER_ONLY
|
ifeq ($(filter %-softmmu, $(TARGET)),)
|
||||||
run-%: %
|
run-%: %
|
||||||
$(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
|
$(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
|
||||||
|
|
||||||
|
@ -187,4 +186,5 @@ gdb-%: %
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run: $(RUN_TESTS)
|
run: $(RUN_TESTS)
|
||||||
|
|
||||||
# There is no clean target, the calling make just rm's the tests build dir
|
clean:
|
||||||
|
rm -f $(TESTS) *.o
|
||||||
|
|
|
@ -64,7 +64,7 @@ run-memory-replay: memory-replay run-memory-record
|
||||||
|
|
||||||
EXTRA_RUNS+=run-memory-replay
|
EXTRA_RUNS+=run-memory-replay
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_3),)
|
ifneq ($(CROSS_CC_HAS_ARMV8_3),)
|
||||||
pauth-3: CFLAGS += -march=armv8.3-a
|
pauth-3: CFLAGS += -march=armv8.3-a
|
||||||
else
|
else
|
||||||
pauth-3:
|
pauth-3:
|
||||||
|
|
|
@ -18,7 +18,7 @@ run-fcvt: fcvt
|
||||||
$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
|
$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
|
||||||
|
|
||||||
# Pauth Tests
|
# Pauth Tests
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_3),)
|
ifneq ($(CROSS_CC_HAS_ARMV8_3),)
|
||||||
AARCH64_TESTS += pauth-1 pauth-2 pauth-4 pauth-5
|
AARCH64_TESTS += pauth-1 pauth-2 pauth-4 pauth-5
|
||||||
pauth-%: CFLAGS += -march=armv8.3-a
|
pauth-%: CFLAGS += -march=armv8.3-a
|
||||||
run-pauth-%: QEMU_OPTS += -cpu max
|
run-pauth-%: QEMU_OPTS += -cpu max
|
||||||
|
@ -27,7 +27,7 @@ endif
|
||||||
|
|
||||||
# BTI Tests
|
# BTI Tests
|
||||||
# bti-1 tests the elf notes, so we require special compiler support.
|
# bti-1 tests the elf notes, so we require special compiler support.
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_BTI),)
|
ifneq ($(CROSS_CC_HAS_ARMV8_BTI),)
|
||||||
AARCH64_TESTS += bti-1
|
AARCH64_TESTS += bti-1
|
||||||
bti-1: CFLAGS += -mbranch-protection=standard
|
bti-1: CFLAGS += -mbranch-protection=standard
|
||||||
bti-1: LDFLAGS += -nostdlib
|
bti-1: LDFLAGS += -nostdlib
|
||||||
|
@ -36,12 +36,12 @@ endif
|
||||||
AARCH64_TESTS += bti-2
|
AARCH64_TESTS += bti-2
|
||||||
|
|
||||||
# MTE Tests
|
# MTE Tests
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_ARMV8_MTE),)
|
ifneq ($(CROSS_CC_HAS_ARMV8_MTE),)
|
||||||
AARCH64_TESTS += mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7
|
AARCH64_TESTS += mte-1 mte-2 mte-3 mte-4 mte-5 mte-6 mte-7
|
||||||
mte-%: CFLAGS += -march=armv8.5-a+memtag
|
mte-%: CFLAGS += -march=armv8.5-a+memtag
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_SVE),)
|
ifneq ($(CROSS_CC_HAS_SVE),)
|
||||||
# System Registers Tests
|
# System Registers Tests
|
||||||
AARCH64_TESTS += sysregs
|
AARCH64_TESTS += sysregs
|
||||||
sysregs: CFLAGS+=-march=armv8.1-a+sve
|
sysregs: CFLAGS+=-march=armv8.1-a+sve
|
||||||
|
@ -88,7 +88,7 @@ EXTRA_RUNS += run-gdbstub-sysregs run-gdbstub-sve-ioctls
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_SVE2),)
|
ifneq ($(CROSS_CC_HAS_SVE2),)
|
||||||
AARCH64_TESTS += test-826
|
AARCH64_TESTS += test-826
|
||||||
test-826: CFLAGS+=-march=armv8.1-a+sve2
|
test-826: CFLAGS+=-march=armv8.1-a+sve2
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -0,0 +1,988 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-inf:0xff800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb600000000000000p+1:0x40490fdb) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+31:0x4f000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(inf:0x7f800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding upwards
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000200000000000000p-25:0x33000001) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe800000000000000p-25:0x337ffff4) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801c00000000000000p-15:0x387fc00e) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000e00000000000000p-14:0x38800007) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0aa00000000000000p+1:0x402df855) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb600000000000000p+1:0x40490fdb) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+31:0x4f000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(inf:0x7f800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding downwards
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-inf:0xff800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-149:0x80000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb400000000000000p+1:0x40490fda) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+30:0x4effffff) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding to zero
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb400000000000000p+1:0x40490fda) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+30:0x4effffff) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
|
@ -0,0 +1,988 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-inf:0xff800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb600000000000000p+1:0x40490fdb) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (INEXACT )
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (INEXACT )
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (INEXACT )
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (INEXACT )
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (INEXACT )
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (INEXACT )
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+31:0x4f000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (INEXACT )
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(inf:0x7f800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding upwards
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000200000000000000p-25:0x33000001) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe800000000000000p-25:0x337ffff4) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801c00000000000000p-15:0x387fc00e) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000e00000000000000p-14:0x38800007) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0aa00000000000000p+1:0x402df855) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb600000000000000p+1:0x40490fdb) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (INEXACT )
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (INEXACT )
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (INEXACT )
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (INEXACT )
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (INEXACT )
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (INEXACT )
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+31:0x4f000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (INEXACT )
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(inf:0x7f800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding downwards
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-inf:0xff800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-149:0x80000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb400000000000000p+1:0x40490fda) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (INEXACT )
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (INEXACT )
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (INEXACT )
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (INEXACT )
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (INEXACT )
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (INEXACT )
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+30:0x4effffff) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (INEXACT )
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding to zero
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: 1 (INEXACT INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (INEXACT )
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (UNDERFLOW INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (UNDERFLOW INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb400000000000000p+1:0x40490fda) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (INEXACT )
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (INEXACT )
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (INEXACT )
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (INEXACT )
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (INEXACT )
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (INEXACT )
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (INEXACT )
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+30:0x4effffff) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (INEXACT )
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (INEXACT )
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INEXACT INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: -1 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: 0 (INVALID)
|
||||||
|
to int64: 0 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
|
@ -80,6 +80,15 @@ fi
|
||||||
: ${cross_as_tricore="tricore-as"}
|
: ${cross_as_tricore="tricore-as"}
|
||||||
: ${cross_ld_tricore="tricore-ld"}
|
: ${cross_ld_tricore="tricore-ld"}
|
||||||
|
|
||||||
|
makefile=tests/tcg/Makefile.prereqs
|
||||||
|
echo "# Automatically generated by configure - do not modify" > $makefile
|
||||||
|
|
||||||
|
config_host_mak=tests/tcg/config-host.mak
|
||||||
|
echo "# Automatically generated by configure - do not modify" > $config_host_mak
|
||||||
|
echo "SRC_PATH=$source_path" >> $config_host_mak
|
||||||
|
echo "HOST_CC=$host_cc" >> $config_host_mak
|
||||||
|
|
||||||
|
tcg_tests_targets=
|
||||||
for target in $target_list; do
|
for target in $target_list; do
|
||||||
arch=${target%%-*}
|
arch=${target%%-*}
|
||||||
|
|
||||||
|
@ -223,26 +232,17 @@ for target in $target_list; do
|
||||||
|
|
||||||
echo "# Automatically generated by configure - do not modify" > $config_target_mak
|
echo "# Automatically generated by configure - do not modify" > $config_target_mak
|
||||||
echo "TARGET_NAME=$arch" >> $config_target_mak
|
echo "TARGET_NAME=$arch" >> $config_target_mak
|
||||||
echo "target=$target" >> $config_target_mak
|
|
||||||
case $target in
|
case $target in
|
||||||
*-linux-user)
|
|
||||||
echo "CONFIG_USER_ONLY=y" >> $config_target_mak
|
|
||||||
echo "CONFIG_LINUX_USER=y" >> $config_target_mak
|
|
||||||
echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
|
|
||||||
;;
|
|
||||||
*-bsd-user)
|
|
||||||
echo "CONFIG_USER_ONLY=y" >> $config_target_mak
|
|
||||||
echo "CONFIG_BSD_USER=y" >> $config_target_mak
|
|
||||||
echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
|
|
||||||
;;
|
|
||||||
*-softmmu)
|
*-softmmu)
|
||||||
echo "CONFIG_SOFTMMU=y" >> $config_target_mak
|
test -f $source_path/tests/tcg/$arch/Makefile.softmmu-target || continue
|
||||||
echo "QEMU=$PWD/qemu-system-$arch" >> $config_target_mak
|
qemu="qemu-system-$arch"
|
||||||
|
;;
|
||||||
|
*-linux-user|*-bsd-user)
|
||||||
|
qemu="qemu-$arch"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
eval "target_compiler_cflags=\${cross_cc_cflags_$arch}"
|
eval "target_compiler_cflags=\${cross_cc_cflags_$arch}"
|
||||||
echo "CROSS_CC_GUEST_CFLAGS=$target_compiler_cflags" >> $config_target_mak
|
|
||||||
|
|
||||||
got_cross_cc=no
|
got_cross_cc=no
|
||||||
|
|
||||||
|
@ -261,13 +261,12 @@ for target in $target_list; do
|
||||||
if do_compiler "$target_compiler" $target_compiler_cflags \
|
if do_compiler "$target_compiler" $target_compiler_cflags \
|
||||||
-o $TMPE $TMPC ; then
|
-o $TMPE $TMPC ; then
|
||||||
got_cross_cc=yes
|
got_cross_cc=yes
|
||||||
echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
|
echo "CC=$target_compiler" >> $config_target_mak
|
||||||
echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
got_cross_cc=yes
|
got_cross_cc=yes
|
||||||
echo "CROSS_CC_GUEST_STATIC=y" >> $config_target_mak
|
echo "BUILD_STATIC=y" >> $config_target_mak
|
||||||
echo "CROSS_CC_GUEST=$target_compiler" >> $config_target_mak
|
echo "CC=$target_compiler" >> $config_target_mak
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -278,9 +277,8 @@ for target in $target_list; do
|
||||||
if has $target_as && has $target_ld; then
|
if has $target_as && has $target_ld; then
|
||||||
case $target in
|
case $target in
|
||||||
tricore-softmmu)
|
tricore-softmmu)
|
||||||
echo "CROSS_CC_GUEST=$target_as" >> $config_target_mak
|
echo "AS=$target_as" >> $config_target_mak
|
||||||
echo "CROSS_AS_GUEST=$target_as" >> $config_target_mak
|
echo "LD=$target_ld" >> $config_target_mak
|
||||||
echo "CROSS_LD_GUEST=$target_ld" >> $config_target_mak
|
|
||||||
got_cross_cc=yes
|
got_cross_cc=yes
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -337,18 +335,42 @@ for target in $target_list; do
|
||||||
test -n "$container_image"; then
|
test -n "$container_image"; then
|
||||||
for host in $container_hosts; do
|
for host in $container_hosts; do
|
||||||
if test "$host" = "$cpu"; then
|
if test "$host" = "$cpu"; then
|
||||||
echo "DOCKER_IMAGE=$container_image" >> $config_target_mak
|
echo "build-tcg-tests-$target: docker-image-$container_image" >> $makefile
|
||||||
echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> \
|
echo "BUILD_STATIC=y" >> $config_target_mak
|
||||||
$config_target_mak
|
echo "CC=\$(DOCKER_SCRIPT) cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --" >> $config_target_mak
|
||||||
if test -n "$container_cross_as"; then
|
if test -n "$container_cross_as"; then
|
||||||
echo "DOCKER_CROSS_AS_GUEST=$container_cross_as" >> \
|
echo "AS=\$(DOCKER_SCRIPT) cc --cc $container_cross_as -i qemu/$container_image -s $source_path --" >> $config_target_mak
|
||||||
$config_target_mak
|
|
||||||
fi
|
fi
|
||||||
if test -n "$container_cross_ld"; then
|
if test -n "$container_cross_ld"; then
|
||||||
echo "DOCKER_CROSS_LD_GUEST=$container_cross_ld" >> \
|
echo "LD=\$(DOCKER_SCRIPT) cc --cc $container_cross_ld -i qemu/$container_image -s $source_path --" >> $config_target_mak
|
||||||
$config_target_mak
|
|
||||||
fi
|
fi
|
||||||
|
case $target in
|
||||||
|
aarch64-*)
|
||||||
|
echo "CROSS_CC_HAS_SVE=y" >> $config_target_mak
|
||||||
|
echo "CROSS_CC_HAS_SVE2=y" >> $config_target_mak
|
||||||
|
echo "CROSS_CC_HAS_ARMV8_3=y" >> $config_target_mak
|
||||||
|
echo "CROSS_CC_HAS_ARMV8_BTI=y" >> $config_target_mak
|
||||||
|
echo "CROSS_CC_HAS_ARMV8_MTE=y" >> $config_target_mak
|
||||||
|
;;
|
||||||
|
ppc*)
|
||||||
|
echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak
|
||||||
|
echo "CROSS_CC_HAS_POWER10=y" >> $config_target_mak
|
||||||
|
;;
|
||||||
|
i386-linux-user)
|
||||||
|
echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
got_cross_cc=yes
|
||||||
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
if test $got_cross_cc = yes; then
|
||||||
|
mkdir -p tests/tcg/$target
|
||||||
|
echo "QEMU=$PWD/$qemu" >> $config_target_mak
|
||||||
|
echo "EXTRA_CFLAGS=$target_compiler_cflags" >> $config_target_mak
|
||||||
|
echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile
|
||||||
|
tcg_tests_targets="$tcg_tests_targets $target"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
echo "TCG_TESTS_TARGETS=$tcg_tests_targets" >> $makefile
|
||||||
|
|
|
@ -30,7 +30,7 @@ hello-i386: LDFLAGS+=-nostdlib
|
||||||
# test-386 includes a couple of additional objects that need to be
|
# test-386 includes a couple of additional objects that need to be
|
||||||
# linked together, we also need a no-pie capable compiler due to the
|
# linked together, we also need a no-pie capable compiler due to the
|
||||||
# non-pic calls into 16-bit mode
|
# non-pic calls into 16-bit mode
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_I386_NOPIE),)
|
ifneq ($(CROSS_CC_HAS_I386_NOPIE),)
|
||||||
test-i386: CFLAGS += -fno-pie
|
test-i386: CFLAGS += -fno-pie
|
||||||
|
|
||||||
test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h
|
test-i386: test-i386.c test-i386-code16.S test-i386-vm86.S test-i386.h test-i386-shift.h test-i386-muldiv.h
|
||||||
|
|
|
@ -0,0 +1,988 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to single: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to single: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to single: f64(-inf:0x00fff0000000000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to single: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to single: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+1:0xc0000000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+1:0x00c000000000000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+0:0xbf800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from single: f32(-0x0.00000000000000000000p+0:0x80000000)
|
||||||
|
to single: f64(-0x0.00000000000000000000p+0:0x008000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to single: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to single: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to single: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to single: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to single: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to single: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to single: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to single: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to single: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to single: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p+31:0x4f000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+31:0x0041e0000000000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to single: f64(inf:0x007ff0000000000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to single: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding upwards
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to single: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to single: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58)
|
||||||
|
to single: f64(-0x1.1874b000000000000000p+103:0x00c661874b00000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a)
|
||||||
|
to single: f64(-0x1.c0bab400000000000000p+99:0x00c62c0bab40000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+1:0xc0000000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+1:0x00c000000000000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+0:0xbf800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from single: f32(-0x0.00000000000000000000p+0:0x80000000)
|
||||||
|
to single: f64(-0x0.00000000000000000000p+0:0x008000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000200000000000000p-25:0x33000001)
|
||||||
|
to single: f64(0x1.00000200000000000000p-25:0x003e60000020000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe800000000000000p-25:0x337ffff4)
|
||||||
|
to single: f64(0x1.ffffe800000000000000p-25:0x003e6ffffe80000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801c00000000000000p-15:0x387fc00e)
|
||||||
|
to single: f64(0x1.ff801c00000000000000p-15:0x003f0ff801c0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000e00000000000000p-14:0x38800007)
|
||||||
|
to single: f64(0x1.00000e00000000000000p-14:0x003f100000e0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to single: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-149:0x00000001)
|
||||||
|
to single: f64(0x1.00000000000000000000p-149:0x0036a0000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-149:0x00000001)
|
||||||
|
to single: f64(0x1.00000000000000000000p-149:0x0036a0000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-149:0x00000001)
|
||||||
|
to single: f64(0x1.00000000000000000000p-149:0x0036a0000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0aa00000000000000p+1:0x402df855)
|
||||||
|
to single: f64(0x1.5bf0aa00000000000000p+1:0x004005bf0aa0000000) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to single: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to single: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to single: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to single: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to single: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p+31:0x4f000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+31:0x0041e0000000000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to single: f64(inf:0x007ff0000000000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to single: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding downwards
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to single: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to single: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to single: f64(-inf:0x00fff0000000000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to single: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to single: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+1:0xc0000000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+1:0x00c000000000000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+0:0xbf800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from single: f32(-0x1.00000000000000000000p-149:0x80000001)
|
||||||
|
to single: f64(-0x1.00000000000000000000p-149:0x00b6a0000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to single: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to single: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to single: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to single: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to single: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb400000000000000p+1:0x40490fda)
|
||||||
|
to single: f64(0x1.921fb400000000000000p+1:0x00400921fb40000000) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to single: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to single: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to single: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to single: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+30:0x4effffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+30:0x0041dfffffe0000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to single: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding to zero
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to single: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to single: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to single: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58)
|
||||||
|
to single: f64(-0x1.1874b000000000000000p+103:0x00c661874b00000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a)
|
||||||
|
to single: f64(-0x1.c0bab400000000000000p+99:0x00c62c0bab40000000) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+1:0xc0000000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+1:0x00c000000000000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from single: f32(-0x1.00000000000000000000p+0:0xbf800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from single: f32(-0x0.00000000000000000000p+0:0x80000000)
|
||||||
|
to single: f64(-0x0.00000000000000000000p+0:0x008000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to single: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to single: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to single: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to single: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to single: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to single: f64(0x0.00000000000000000000p+0:00000000000000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to single: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to single: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb400000000000000p+1:0x40490fda)
|
||||||
|
to single: f64(0x1.921fb400000000000000p+1:0x00400921fb40000000) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to single: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to single: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to single: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to single: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to single: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+30:0x4effffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+30:0x0041dfffffe0000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to single: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to single: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to single: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to single: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
|
@ -0,0 +1,748 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
from single: f32(-nan:0xffe00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding upwards
|
||||||
|
from single: f32(-nan:0xffe00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding downwards
|
||||||
|
from single: f32(-nan:0xffe00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding to zero
|
||||||
|
from single: f32(-nan:0xffe00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fe00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
|
@ -10,7 +10,7 @@ MULTIARCH_SRC=$(SRC_PATH)/tests/tcg/multiarch
|
||||||
# Set search path for all sources
|
# Set search path for all sources
|
||||||
VPATH += $(MULTIARCH_SRC)
|
VPATH += $(MULTIARCH_SRC)
|
||||||
MULTIARCH_SRCS = $(notdir $(wildcard $(MULTIARCH_SRC)/*.c))
|
MULTIARCH_SRCS = $(notdir $(wildcard $(MULTIARCH_SRC)/*.c))
|
||||||
ifneq ($(CONFIG_LINUX_USER),)
|
ifeq ($(filter %-linux-user, $(TARGET)),$(TARGET))
|
||||||
VPATH += $(MULTIARCH_SRC)/linux
|
VPATH += $(MULTIARCH_SRC)/linux
|
||||||
MULTIARCH_SRCS += $(notdir $(wildcard $(MULTIARCH_SRC)/linux/*.c))
|
MULTIARCH_SRCS += $(notdir $(wildcard $(MULTIARCH_SRC)/linux/*.c))
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
* Floating Point Convert Doubles to Various
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019 Linaro
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <math.h>
|
||||||
|
#include <float.h>
|
||||||
|
#include <fenv.h>
|
||||||
|
|
||||||
|
|
||||||
|
#include "float_helpers.h"
|
||||||
|
|
||||||
|
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int flag;
|
||||||
|
char *desc;
|
||||||
|
} float_mapping;
|
||||||
|
|
||||||
|
float_mapping round_flags[] = {
|
||||||
|
{ FE_TONEAREST, "to nearest" },
|
||||||
|
#ifdef FE_UPWARD
|
||||||
|
{ FE_UPWARD, "upwards" },
|
||||||
|
#endif
|
||||||
|
#ifdef FE_DOWNWARD
|
||||||
|
{ FE_DOWNWARD, "downwards" },
|
||||||
|
#endif
|
||||||
|
#ifdef FE_TOWARDZERO
|
||||||
|
{ FE_TOWARDZERO, "to zero" }
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
static void print_input(double input)
|
||||||
|
{
|
||||||
|
char *in_fmt = fmt_f64(input);
|
||||||
|
printf("from double: %s\n", in_fmt);
|
||||||
|
free(in_fmt);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void convert_double_to_single(double input)
|
||||||
|
{
|
||||||
|
float output;
|
||||||
|
char *out_fmt, *flag_fmt;
|
||||||
|
|
||||||
|
feclearexcept(FE_ALL_EXCEPT);
|
||||||
|
|
||||||
|
output = input;
|
||||||
|
|
||||||
|
flag_fmt = fmt_flags();
|
||||||
|
out_fmt = fmt_f32(output);
|
||||||
|
printf(" to single: %s (%s)\n", out_fmt, flag_fmt);
|
||||||
|
free(out_fmt);
|
||||||
|
free(flag_fmt);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define xstr(a) str(a)
|
||||||
|
#define str(a) #a
|
||||||
|
|
||||||
|
#define CONVERT_DOUBLE_TO_INT(TYPE, FMT) \
|
||||||
|
static void convert_double_to_ ## TYPE(double input) \
|
||||||
|
{ \
|
||||||
|
TYPE ## _t output; \
|
||||||
|
char *flag_fmt; \
|
||||||
|
const char to[] = "to " xstr(TYPE); \
|
||||||
|
feclearexcept(FE_ALL_EXCEPT); \
|
||||||
|
output = input; \
|
||||||
|
flag_fmt = fmt_flags(); \
|
||||||
|
printf("%11s: %" FMT " (%s)\n", to, output, flag_fmt); \
|
||||||
|
free(flag_fmt); \
|
||||||
|
}
|
||||||
|
|
||||||
|
CONVERT_DOUBLE_TO_INT( int32, PRId32)
|
||||||
|
CONVERT_DOUBLE_TO_INT(uint32, PRId32)
|
||||||
|
CONVERT_DOUBLE_TO_INT( int64, PRId64)
|
||||||
|
CONVERT_DOUBLE_TO_INT(uint64, PRId64)
|
||||||
|
|
||||||
|
int main(int argc, char *argv[argc])
|
||||||
|
{
|
||||||
|
int i, j, nums;
|
||||||
|
|
||||||
|
nums = get_num_f64();
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(round_flags); ++i) {
|
||||||
|
if (fesetround(round_flags[i].flag) != 0) {
|
||||||
|
printf("### Rounding %s skipped\n", round_flags[i].desc);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
printf("### Rounding %s\n", round_flags[i].desc);
|
||||||
|
for (j = 0; j < nums; j++) {
|
||||||
|
double input = get_f64(j);
|
||||||
|
print_input(input);
|
||||||
|
convert_double_to_single(input);
|
||||||
|
convert_double_to_int32(input);
|
||||||
|
convert_double_to_int64(input);
|
||||||
|
convert_double_to_uint32(input);
|
||||||
|
convert_double_to_uint64(input);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -5,14 +5,14 @@
|
||||||
VPATH += $(SRC_PATH)/tests/tcg/ppc64
|
VPATH += $(SRC_PATH)/tests/tcg/ppc64
|
||||||
VPATH += $(SRC_PATH)/tests/tcg/ppc64le
|
VPATH += $(SRC_PATH)/tests/tcg/ppc64le
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER8_VECTOR),)
|
ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
|
||||||
PPC64_TESTS=bcdsub non_signalling_xscv
|
PPC64_TESTS=bcdsub non_signalling_xscv
|
||||||
endif
|
endif
|
||||||
$(PPC64_TESTS): CFLAGS += -mpower8-vector
|
$(PPC64_TESTS): CFLAGS += -mpower8-vector
|
||||||
|
|
||||||
PPC64_TESTS += mtfsf
|
PPC64_TESTS += mtfsf
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
|
ifneq ($(CROSS_CC_HAS_POWER10),)
|
||||||
PPC64_TESTS += byte_reverse sha512-vector
|
PPC64_TESTS += byte_reverse sha512-vector
|
||||||
endif
|
endif
|
||||||
byte_reverse: CFLAGS += -mcpu=power10
|
byte_reverse: CFLAGS += -mcpu=power10
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
|
|
||||||
VPATH += $(SRC_PATH)/tests/tcg/ppc64le
|
VPATH += $(SRC_PATH)/tests/tcg/ppc64le
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER8_VECTOR),)
|
ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
|
||||||
PPC64LE_TESTS=bcdsub non_signalling_xscv
|
PPC64LE_TESTS=bcdsub non_signalling_xscv
|
||||||
endif
|
endif
|
||||||
$(PPC64LE_TESTS): CFLAGS += -mpower8-vector
|
$(PPC64LE_TESTS): CFLAGS += -mpower8-vector
|
||||||
|
|
||||||
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
|
ifneq ($(CROSS_CC_HAS_POWER10),)
|
||||||
PPC64LE_TESTS += byte_reverse sha512-vector
|
PPC64LE_TESTS += byte_reverse sha512-vector
|
||||||
endif
|
endif
|
||||||
byte_reverse: CFLAGS += -mcpu=power10
|
byte_reverse: CFLAGS += -mcpu=power10
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
include $(SRC_PATH)/tests/tcg/i386/Makefile.target
|
include $(SRC_PATH)/tests/tcg/i386/Makefile.target
|
||||||
|
|
||||||
ifneq ($(CONFIG_LINUX_USER),)
|
ifeq ($(filter %-linux-user, $(TARGET)),$(TARGET))
|
||||||
X86_64_TESTS += vsyscall
|
X86_64_TESTS += vsyscall
|
||||||
TESTS=$(MULTIARCH_TESTS) $(X86_64_TESTS) test-x86_64
|
TESTS=$(MULTIARCH_TESTS) $(X86_64_TESTS) test-x86_64
|
||||||
else
|
else
|
||||||
|
@ -22,10 +22,3 @@ test-x86_64: test-i386.c test-i386.h test-i386-shift.h test-i386-muldiv.h
|
||||||
|
|
||||||
vsyscall: $(SRC_PATH)/tests/tcg/x86_64/vsyscall.c
|
vsyscall: $(SRC_PATH)/tests/tcg/x86_64/vsyscall.c
|
||||||
$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
|
$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)
|
||||||
|
|
||||||
# TCG does not yet support all SSE (SIGILL on pshufb)
|
|
||||||
# sha512-sse: CFLAGS=-march=core2 -O3
|
|
||||||
# sha512-sse: sha512.c
|
|
||||||
# $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
|
|
||||||
|
|
||||||
TESTS+=sha512-sse
|
|
||||||
|
|
|
@ -0,0 +1,988 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-inf:0xff800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb600000000000000p+1:0x40490fdb) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+31:0x4f000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(inf:0x7f800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding upwards
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000200000000000000p-25:0x33000001) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe800000000000000p-25:0x337ffff4) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801c00000000000000p-15:0x387fc00e) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000e00000000000000p-14:0x38800007) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x1.00000000000000000000p-149:0x00000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0aa00000000000000p+1:0x402df855) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb600000000000000p+1:0x40490fdb) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+31:0x4f000000) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(inf:0x7f800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding downwards
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-inf:0xff800000) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-149:0x80000001) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb400000000000000p+1:0x40490fda) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+30:0x4effffff) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding to zero
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-nan:0x00fff8000000000000)
|
||||||
|
to single: f32(-nan:0xffc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-inf:0x00fff0000000000000)
|
||||||
|
to single: f32(-inf:0xff800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffffffffff0000000p+1023:0x00ffefffffffffffff)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000)
|
||||||
|
to single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.1874b135ff6540000000p+103:0x00c661874b135ff654)
|
||||||
|
to single: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.c0bab523323b90000000p+99:0x00c62c0bab523323b9)
|
||||||
|
to single: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) (INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+1:0x00c000000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+1:0xc0000000) (OK)
|
||||||
|
to int32: -2 (OK)
|
||||||
|
to int64: -2 (OK)
|
||||||
|
to uint32: -2 (OK)
|
||||||
|
to uint64: -2 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p+0:0x00bff0000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p+0:0xbf800000) (OK)
|
||||||
|
to int32: -1 (OK)
|
||||||
|
to int64: -1 (OK)
|
||||||
|
to uint32: -1 (OK)
|
||||||
|
to uint64: -1 (OK)
|
||||||
|
from double: f64(-0x1.00000000000000000000p-1022:0x008010000000000000)
|
||||||
|
to single: f32(-0x0.00000000000000000000p+0:0x80000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000)
|
||||||
|
to single: f32(-0x1.00000000000000000000p-126:0x80800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.00000000000000000000p+0:00000000000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p-126:0x003810000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p-126:0x00800000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000001c5f680000000p-25:0x003e600000001c5f68)
|
||||||
|
to single: f32(0x1.00000000000000000000p-25:0x33000000) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ffffe6cb2fa820000000p-25:0x003e6ffffe6cb2fa82)
|
||||||
|
to single: f32(0x1.ffffe600000000000000p-25:0x337ffff3) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.ff801a9af58a10000000p-15:0x003f0ff801a9af58a1)
|
||||||
|
to single: f32(0x1.ff801a00000000000000p-15:0x387fc00d) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000c06a1ef50000000p-14:0x003f100000c06a1ef5)
|
||||||
|
to single: f32(0x1.00000c00000000000000p-14:0x38800006) (INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000)
|
||||||
|
to single: f32(0x1.00400000000000000000p+0:0x3f802000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p-1022:0x000010000000000000)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.9ea82a22876800000000p-1022:0x000009ea82a2287680)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x0.ab98fba8432100000000p-1022:0x00000ab98fba843210)
|
||||||
|
to single: f32(0x0.00000000000000000000p+0:0000000000) (UNDERFLOW INEXACT )
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+0:0x3f800000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from double: f64(0x1.00000000000000000000p+1:0x004000000000000000)
|
||||||
|
to single: f32(0x1.00000000000000000000p+1:0x40000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from double: f64(0x1.5bf0a8b1457690000000p+1:0x004005bf0a8b145769)
|
||||||
|
to single: f32(0x1.5bf0a800000000000000p+1:0x402df854) (INEXACT )
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from double: f64(0x1.921fb54442d180000000p+1:0x00400921fb54442d18)
|
||||||
|
to single: f32(0x1.921fb400000000000000p+1:0x40490fda) (INEXACT )
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000)
|
||||||
|
to single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+15:0x477fe000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000)
|
||||||
|
to single: f32(0x1.ffc20000000000000000p+15:0x477fe100) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000)
|
||||||
|
to single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000)
|
||||||
|
to single: f32(0x1.ffc00000000000000000p+16:0x47ffe000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000)
|
||||||
|
to single: f32(0x1.ffc10000000000000000p+16:0x47ffe080) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from double: f64(0x1.fffffffc000000000000p+30:0x0041dfffffffc00000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+30:0x4effffff) (INEXACT )
|
||||||
|
to int32: 2147483647 (OK)
|
||||||
|
to int64: 2147483647 (OK)
|
||||||
|
to uint32: 2147483647 (OK)
|
||||||
|
to uint64: 2147483647 (OK)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(0x1.fffffffffffff0000000p+1023:0x007fefffffffffffff)
|
||||||
|
to single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) (OVERFLOW INEXACT )
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from double: f64(inf:0x007ff0000000000000)
|
||||||
|
to single: f32(inf:0x7f800000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff8000000000000)
|
||||||
|
to single: f32(nan:0x7fc00000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff0000000000001)
|
||||||
|
to single: f32(nan:0x7fc00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from double: f64(nan:0x007ff4000000000000)
|
||||||
|
to single: f32(nan:0x7fe00000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
|
@ -0,0 +1,748 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding upwards
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding downwards
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
### Rounding to zero
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-nan:0xffc00000)
|
||||||
|
to double: f64(-nan:0x00fff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-inf:0xff800000)
|
||||||
|
to double: f64(-inf:0x00fff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
to double: f64(-0x1.00000000000000000000p-126:0x00b810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
to double: f64(0x0.00000000000000000000p+0:00000000000000000000) (OK)
|
||||||
|
to int32: 0 (OK)
|
||||||
|
to int64: 0 (OK)
|
||||||
|
to uint32: 0 (OK)
|
||||||
|
to uint64: 0 (OK)
|
||||||
|
from single: f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-126:0x003810000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p-25:0x003e60000000000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
|
to int32: 0 (INEXACT )
|
||||||
|
to int64: 0 (INEXACT )
|
||||||
|
to uint32: 0 (INEXACT )
|
||||||
|
to uint64: 0 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+0:0x003ff0000000000000) (OK)
|
||||||
|
to int32: 1 (OK)
|
||||||
|
to int64: 1 (OK)
|
||||||
|
to uint32: 1 (OK)
|
||||||
|
to uint64: 1 (OK)
|
||||||
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
|
to int32: 1 (INEXACT )
|
||||||
|
to int64: 1 (INEXACT )
|
||||||
|
to uint32: 1 (INEXACT )
|
||||||
|
to uint64: 1 (INEXACT )
|
||||||
|
from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
to double: f64(0x1.00000000000000000000p+1:0x004000000000000000) (OK)
|
||||||
|
to int32: 2 (OK)
|
||||||
|
to int64: 2 (OK)
|
||||||
|
to uint32: 2 (OK)
|
||||||
|
to uint64: 2 (OK)
|
||||||
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
|
to int32: 2 (INEXACT )
|
||||||
|
to int64: 2 (INEXACT )
|
||||||
|
to uint32: 2 (INEXACT )
|
||||||
|
to uint64: 2 (INEXACT )
|
||||||
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
|
to int32: 3 (INEXACT )
|
||||||
|
to int64: 3 (INEXACT )
|
||||||
|
to uint32: 3 (INEXACT )
|
||||||
|
to uint64: 3 (INEXACT )
|
||||||
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
|
to int32: 65503 (OK)
|
||||||
|
to int64: 65503 (OK)
|
||||||
|
to uint32: 65503 (OK)
|
||||||
|
to uint64: 65503 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
|
to int32: 65504 (OK)
|
||||||
|
to int64: 65504 (OK)
|
||||||
|
to uint32: 65504 (OK)
|
||||||
|
to uint64: 65504 (OK)
|
||||||
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
|
to int32: 65505 (OK)
|
||||||
|
to int64: 65505 (OK)
|
||||||
|
to uint32: 65505 (OK)
|
||||||
|
to uint64: 65505 (OK)
|
||||||
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
|
to int32: 131007 (OK)
|
||||||
|
to int64: 131007 (OK)
|
||||||
|
to uint32: 131007 (OK)
|
||||||
|
to uint64: 131007 (OK)
|
||||||
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
|
to int32: 131008 (OK)
|
||||||
|
to int64: 131008 (OK)
|
||||||
|
to uint32: 131008 (OK)
|
||||||
|
to uint64: 131008 (OK)
|
||||||
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
|
to int32: 131009 (OK)
|
||||||
|
to int64: 131009 (OK)
|
||||||
|
to uint32: 131009 (OK)
|
||||||
|
to uint64: 131009 (OK)
|
||||||
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INEXACT INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fc00000)
|
||||||
|
to double: f64(nan:0x007ff8000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ffc000000000000) (INVALID)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: -9223372036854775808 (INVALID)
|
Loading…
Reference in New Issue