mirror of https://gitee.com/openkylin/qemu.git
Various testing and other misc updates:
- fix compiler warnings with ui and sdl - update QXL/spice dependancy - skip I/O tests on Alpine - update fedora image to latest version - integrate lcitool and regenerate docker images - favour CONFIG_LINUX_USER over CONFIG_LINUX - add libfuse3 dependencies to docker images - add dtb-kaslr-seed control knob to virt machine - fix build breakage from HMP update - update docs for C standard and suffix usage - add more logging for debugging user hole finding - expand reserve for brk() for static 64 bit programs - fix bug with linux-user hole calculation - avoid affecting flags when printing results in float tests - add float reference files for ppc64 - update FreeBSD to 12.3 - add bison dependancy to tricore images -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmHm7y4ACgkQ+9DbCVqe KkSsDwgAgWiOUtnPxNnZ3PuLQpIDCGSotjshCXo9PhPu/SWedvMfTftPU+g3wxbl +A2GZcNnVPaOrJo7hfDtOtir9UJUFTmyv8KtPhUYmtxxiv3HWM1RvgrBQnMEvo5A GFAq6jSFclH4HTSxz4FHbEl0TM3feQbSfbMWI6Q1Q+aPm8hWSzhClIqBCwsJJdm8 hi76BE9o94BtvA6Qv2CoPvGsOzpV0X0VXaljf1W927BzJu+b0wEGwIm61+eovNsh DS2kDZk+PpiYeRN/oC40Z6ozR/Lf/jZ/87AnN3gV/yLDwa5cafA+GtmcKMx1IJIc BVm0bJo+KzHfYiVjYTJhsU7C2W71PA== =uBQq -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stsquad/tags/pull-for-7.0-180122-2' into staging Various testing and other misc updates: - fix compiler warnings with ui and sdl - update QXL/spice dependancy - skip I/O tests on Alpine - update fedora image to latest version - integrate lcitool and regenerate docker images - favour CONFIG_LINUX_USER over CONFIG_LINUX - add libfuse3 dependencies to docker images - add dtb-kaslr-seed control knob to virt machine - fix build breakage from HMP update - update docs for C standard and suffix usage - add more logging for debugging user hole finding - expand reserve for brk() for static 64 bit programs - fix bug with linux-user hole calculation - avoid affecting flags when printing results in float tests - add float reference files for ppc64 - update FreeBSD to 12.3 - add bison dependancy to tricore images # gpg: Signature made Tue 18 Jan 2022 16:47:42 GMT # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full] # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-for-7.0-180122-2: (31 commits) docker: include bison in debian-tricore-cross FreeBSD: Upgrade to 12.3 release test/tcg/ppc64le: Add float reference files tests/tcg/multiarch: Read fp flags before printf linux-user: don't adjust base of found hole linux-user/elfload: add extra logging for hole finding linux-user: expand reserved brk space for 64bit guests docs/devel: more documentation on the use of suffixes docs/devel: update C standard to C11 monitor: move x-query-profile into accel/tcg to fix build hw/arm: add control knob to disable kaslr_seed via DTB tests/docker: add libfuse3 development headers tests/tcg: use CONFIG_LINUX_USER, not CONFIG_LINUX tests/docker: auto-generate alpine.docker with lcitool tests/docker: fully expand the alpine package list tests/docker: fix sorting of alpine image package lists tests/docker: updates to alpine package list .gitlab-ci.d/cirrus: auto-generate variables with lcitool tests/docker: remove ubuntu.docker container tests/docker: auto-generate opensuse-leap.docker with lcitool ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
3d228a741a
|
@ -24,7 +24,7 @@ check-system-alpine:
|
||||||
artifacts: true
|
artifacts: true
|
||||||
variables:
|
variables:
|
||||||
IMAGE: alpine
|
IMAGE: alpine
|
||||||
MAKE_CHECK_ARGS: check
|
MAKE_CHECK_ARGS: check-unit check-qtest
|
||||||
|
|
||||||
avocado-system-alpine:
|
avocado-system-alpine:
|
||||||
extends: .avocado_test_job_template
|
extends: .avocado_test_job_template
|
||||||
|
|
|
@ -52,14 +52,11 @@ x64-freebsd-12-build:
|
||||||
NAME: freebsd-12
|
NAME: freebsd-12
|
||||||
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
|
CIRRUS_VM_INSTANCE_TYPE: freebsd_instance
|
||||||
CIRRUS_VM_IMAGE_SELECTOR: image_family
|
CIRRUS_VM_IMAGE_SELECTOR: image_family
|
||||||
CIRRUS_VM_IMAGE_NAME: freebsd-12-2
|
CIRRUS_VM_IMAGE_NAME: freebsd-12-3
|
||||||
CIRRUS_VM_CPUS: 8
|
CIRRUS_VM_CPUS: 8
|
||||||
CIRRUS_VM_RAM: 8G
|
CIRRUS_VM_RAM: 8G
|
||||||
UPDATE_COMMAND: pkg update
|
UPDATE_COMMAND: pkg update
|
||||||
INSTALL_COMMAND: pkg install -y
|
INSTALL_COMMAND: pkg install -y
|
||||||
# TODO: Enable gnutls again once FreeBSD's libtasn1 got fixed
|
|
||||||
# See: https://gitlab.com/gnutls/libtasn1/-/merge_requests/71
|
|
||||||
CONFIGURE_ARGS: --disable-gnutls
|
|
||||||
TEST_TARGETS: check
|
TEST_TARGETS: check
|
||||||
|
|
||||||
x64-freebsd-13-build:
|
x64-freebsd-13-build:
|
||||||
|
|
|
@ -2,12 +2,15 @@
|
||||||
#
|
#
|
||||||
# $ lcitool variables freebsd-12 qemu
|
# $ lcitool variables freebsd-12 qemu
|
||||||
#
|
#
|
||||||
# https://gitlab.com/libvirt/libvirt-ci/-/commit/c7e275ab27ac0dcd09da290817b9adeea1fd1eb1
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
PACKAGING_COMMAND='pkg'
|
|
||||||
CCACHE='/usr/local/bin/ccache'
|
CCACHE='/usr/local/bin/ccache'
|
||||||
|
CPAN_PKGS=''
|
||||||
|
CROSS_PKGS=''
|
||||||
MAKE='/usr/local/bin/gmake'
|
MAKE='/usr/local/bin/gmake'
|
||||||
NINJA='/usr/local/bin/ninja'
|
NINJA='/usr/local/bin/ninja'
|
||||||
PYTHON='/usr/local/bin/python3'
|
PACKAGING_COMMAND='pkg'
|
||||||
PIP3='/usr/local/bin/pip-3.8'
|
PIP3='/usr/local/bin/pip-3.8'
|
||||||
PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage ctags curl cyrus-sasl dbus diffutils gettext git glib gmake gnutls gsed gtk3 libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 libxml2 llvm lttng-ust lzo2 meson ncurses nettle ninja opencv p5-Test-Harness perl5 pixman pkgconf png py38-numpy py38-pillow py38-pip py38-sphinx py38-sphinx_rtd_theme py38-virtualenv py38-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage ctags curl cyrus-sasl dbus diffutils dtc gettext git glib gmake gnutls gsed gtk3 libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 libxml2 llvm lttng-ust lzo2 meson ncurses nettle ninja opencv p5-Test-Harness perl5 pixman pkgconf png py38-numpy py38-pillow py38-pip py38-sphinx py38-sphinx_rtd_theme py38-virtualenv py38-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
||||||
|
PYPI_PKGS=''
|
||||||
|
PYTHON='/usr/local/bin/python3'
|
||||||
|
|
|
@ -2,12 +2,15 @@
|
||||||
#
|
#
|
||||||
# $ lcitool variables freebsd-13 qemu
|
# $ lcitool variables freebsd-13 qemu
|
||||||
#
|
#
|
||||||
# https://gitlab.com/libvirt/libvirt-ci/-/commit/c7e275ab27ac0dcd09da290817b9adeea1fd1eb1
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
PACKAGING_COMMAND='pkg'
|
|
||||||
CCACHE='/usr/local/bin/ccache'
|
CCACHE='/usr/local/bin/ccache'
|
||||||
|
CPAN_PKGS=''
|
||||||
|
CROSS_PKGS=''
|
||||||
MAKE='/usr/local/bin/gmake'
|
MAKE='/usr/local/bin/gmake'
|
||||||
NINJA='/usr/local/bin/ninja'
|
NINJA='/usr/local/bin/ninja'
|
||||||
PYTHON='/usr/local/bin/python3'
|
PACKAGING_COMMAND='pkg'
|
||||||
PIP3='/usr/local/bin/pip-3.8'
|
PIP3='/usr/local/bin/pip-3.8'
|
||||||
PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage ctags curl cyrus-sasl dbus diffutils gettext git glib gmake gnutls gsed gtk3 libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 libxml2 llvm lttng-ust lzo2 meson ncurses nettle ninja opencv p5-Test-Harness perl5 pixman pkgconf png py38-numpy py38-pillow py38-pip py38-sphinx py38-sphinx_rtd_theme py38-virtualenv py38-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
PKGS='alsa-lib bash bzip2 ca_root_nss capstone4 ccache cdrkit-genisoimage ctags curl cyrus-sasl dbus diffutils dtc gettext git glib gmake gnutls gsed gtk3 libepoxy libffi libgcrypt libjpeg-turbo libnfs libspice-server libssh libtasn1 libxml2 llvm lttng-ust lzo2 meson ncurses nettle ninja opencv p5-Test-Harness perl5 pixman pkgconf png py38-numpy py38-pillow py38-pip py38-sphinx py38-sphinx_rtd_theme py38-virtualenv py38-yaml python3 rpm2cpio sdl2 sdl2_image snappy spice-protocol tesseract texinfo usbredir virglrenderer vte3 zstd'
|
||||||
|
PYPI_PKGS=''
|
||||||
|
PYTHON='/usr/local/bin/python3'
|
||||||
|
|
|
@ -2,14 +2,15 @@
|
||||||
#
|
#
|
||||||
# $ lcitool variables macos-11 qemu
|
# $ lcitool variables macos-11 qemu
|
||||||
#
|
#
|
||||||
# https://gitlab.com/libvirt/libvirt-ci/-/commit/c7e275ab27ac0dcd09da290817b9adeea1fd1eb1
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
PACKAGING_COMMAND='brew'
|
|
||||||
CCACHE='/usr/local/bin/ccache'
|
CCACHE='/usr/local/bin/ccache'
|
||||||
|
CPAN_PKGS='Test::Harness'
|
||||||
|
CROSS_PKGS=''
|
||||||
MAKE='/usr/local/bin/gmake'
|
MAKE='/usr/local/bin/gmake'
|
||||||
NINJA='/usr/local/bin/ninja'
|
NINJA='/usr/local/bin/ninja'
|
||||||
PYTHON='/usr/local/bin/python3'
|
PACKAGING_COMMAND='brew'
|
||||||
PIP3='/usr/local/bin/pip3'
|
PIP3='/usr/local/bin/pip3'
|
||||||
PKGS='bash bc bzip2 capstone ccache cpanminus ctags curl dbus diffutils gcovr gettext git glib gnu-sed gnutls gtk+3 jemalloc jpeg-turbo libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb libxml2 llvm lzo make meson ncurses nettle ninja perl pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy sparse spice-protocol tesseract texinfo usbredir vde vte3 zlib zstd'
|
PKGS='bash bc bzip2 capstone ccache cpanminus ctags curl dbus diffutils dtc gcovr gettext git glib gnu-sed gnutls gtk+3 jemalloc jpeg-turbo libepoxy libffi libgcrypt libiscsi libnfs libpng libslirp libssh libtasn1 libusb libxml2 llvm lzo make meson ncurses nettle ninja perl pixman pkg-config python3 rpm2cpio sdl2 sdl2_image snappy sparse spice-protocol tesseract texinfo usbredir vde vte3 zlib zstd'
|
||||||
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme virtualenv'
|
PYPI_PKGS='PyYAML numpy pillow sphinx sphinx-rtd-theme virtualenv'
|
||||||
CPAN_PKGS='Test::Harness'
|
PYTHON='/usr/local/bin/python3'
|
||||||
|
|
|
@ -29,11 +29,6 @@ amd64-ubuntu2004-container:
|
||||||
variables:
|
variables:
|
||||||
NAME: ubuntu2004
|
NAME: ubuntu2004
|
||||||
|
|
||||||
amd64-ubuntu-container:
|
|
||||||
extends: .container_job_template
|
|
||||||
variables:
|
|
||||||
NAME: ubuntu
|
|
||||||
|
|
||||||
amd64-opensuse-leap-container:
|
amd64-opensuse-leap-container:
|
||||||
extends: .container_job_template
|
extends: .container_job_template
|
||||||
variables:
|
variables:
|
||||||
|
|
|
@ -64,3 +64,6 @@
|
||||||
[submodule "roms/vbootrom"]
|
[submodule "roms/vbootrom"]
|
||||||
path = roms/vbootrom
|
path = roms/vbootrom
|
||||||
url = https://gitlab.com/qemu-project/vbootrom.git
|
url = https://gitlab.com/qemu-project/vbootrom.git
|
||||||
|
[submodule "tests/lcitool/libvirt-ci"]
|
||||||
|
path = tests/lcitool/libvirt-ci
|
||||||
|
url = http://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -285,6 +285,7 @@ cscope:
|
||||||
# Needed by "meson install"
|
# Needed by "meson install"
|
||||||
export DESTDIR
|
export DESTDIR
|
||||||
|
|
||||||
|
include $(SRC_PATH)/tests/lcitool/Makefile.include
|
||||||
include $(SRC_PATH)/tests/docker/Makefile.include
|
include $(SRC_PATH)/tests/docker/Makefile.include
|
||||||
include $(SRC_PATH)/tests/vm/Makefile.include
|
include $(SRC_PATH)/tests/vm/Makefile.include
|
||||||
|
|
||||||
|
@ -314,6 +315,7 @@ endif
|
||||||
@echo 'Test targets:'
|
@echo 'Test targets:'
|
||||||
$(call print-help,check,Run all tests (check-help for details))
|
$(call print-help,check,Run all tests (check-help for details))
|
||||||
$(call print-help,bench,Run all benchmarks)
|
$(call print-help,bench,Run all benchmarks)
|
||||||
|
$(call print-help,lcitool-help,Help about targets for managing build environment manifests)
|
||||||
$(call print-help,docker-help,Help about targets running tests inside containers)
|
$(call print-help,docker-help,Help about targets running tests inside containers)
|
||||||
$(call print-help,vm-help,Help about targets running tests inside VM)
|
$(call print-help,vm-help,Help about targets running tests inside VM)
|
||||||
@echo ''
|
@echo ''
|
||||||
|
|
|
@ -1090,4 +1090,35 @@ HumanReadableText *qmp_x_query_opcount(Error **errp)
|
||||||
return human_readable_text_from_str(buf);
|
return human_readable_text_from_str(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_PROFILER
|
||||||
|
|
||||||
|
int64_t dev_time;
|
||||||
|
|
||||||
|
HumanReadableText *qmp_x_query_profile(Error **errp)
|
||||||
|
{
|
||||||
|
g_autoptr(GString) buf = g_string_new("");
|
||||||
|
static int64_t last_cpu_exec_time;
|
||||||
|
int64_t cpu_exec_time;
|
||||||
|
int64_t delta;
|
||||||
|
|
||||||
|
cpu_exec_time = tcg_cpu_exec_time();
|
||||||
|
delta = cpu_exec_time - last_cpu_exec_time;
|
||||||
|
|
||||||
|
g_string_append_printf(buf, "async time %" PRId64 " (%0.3f)\n",
|
||||||
|
dev_time, dev_time / (double)NANOSECONDS_PER_SECOND);
|
||||||
|
g_string_append_printf(buf, "qemu time %" PRId64 " (%0.3f)\n",
|
||||||
|
delta, delta / (double)NANOSECONDS_PER_SECOND);
|
||||||
|
last_cpu_exec_time = cpu_exec_time;
|
||||||
|
dev_time = 0;
|
||||||
|
|
||||||
|
return human_readable_text_from_str(buf);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
HumanReadableText *qmp_x_query_profile(Error **errp)
|
||||||
|
{
|
||||||
|
error_setg(errp, "Internal profiler not compiled");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !CONFIG_USER_ONLY */
|
#endif /* !CONFIG_USER_ONLY */
|
||||||
|
|
|
@ -151,6 +151,12 @@ If there are two versions of a function to be called with or without a
|
||||||
lock held, the function that expects the lock to be already held
|
lock held, the function that expects the lock to be already held
|
||||||
usually uses the suffix ``_locked``.
|
usually uses the suffix ``_locked``.
|
||||||
|
|
||||||
|
If a function is a shim designed to deal with compatibility
|
||||||
|
workarounds we use the suffix ``_compat``. These are generally not
|
||||||
|
called directly and aliased to the plain function name via the
|
||||||
|
pre-processor. Another common suffix is ``_impl``; it is used for the
|
||||||
|
concrete implementation of a function that will not be called
|
||||||
|
directly, but rather through a macro or an inline function.
|
||||||
|
|
||||||
Block structure
|
Block structure
|
||||||
===============
|
===============
|
||||||
|
@ -483,11 +489,11 @@ of arguments.
|
||||||
C standard, implementation defined and undefined behaviors
|
C standard, implementation defined and undefined behaviors
|
||||||
==========================================================
|
==========================================================
|
||||||
|
|
||||||
C code in QEMU should be written to the C99 language specification. A copy
|
C code in QEMU should be written to the C11 language specification. A
|
||||||
of the final version of the C99 standard with corrigenda TC1, TC2, and TC3
|
copy of the final version of the C11 standard formatted as a draft,
|
||||||
included, formatted as a draft, can be downloaded from:
|
can be downloaded from:
|
||||||
|
|
||||||
`<http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf>`_
|
`<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf>`_
|
||||||
|
|
||||||
The C language specification defines regions of undefined behavior and
|
The C language specification defines regions of undefined behavior and
|
||||||
implementation defined behavior (to give compiler authors enough leeway to
|
implementation defined behavior (to give compiler authors enough leeway to
|
||||||
|
|
|
@ -382,14 +382,112 @@ Along with many other images, the ``centos8`` image is defined in a Dockerfile
|
||||||
in ``tests/docker/dockerfiles/``, called ``centos8.docker``. ``make docker-help``
|
in ``tests/docker/dockerfiles/``, called ``centos8.docker``. ``make docker-help``
|
||||||
command will list all the available images.
|
command will list all the available images.
|
||||||
|
|
||||||
To add a new image, simply create a new ``.docker`` file under the
|
|
||||||
``tests/docker/dockerfiles/`` directory.
|
|
||||||
|
|
||||||
A ``.pre`` script can be added beside the ``.docker`` file, which will be
|
A ``.pre`` script can be added beside the ``.docker`` file, which will be
|
||||||
executed before building the image under the build context directory. This is
|
executed before building the image under the build context directory. This is
|
||||||
mainly used to do necessary host side setup. One such setup is ``binfmt_misc``,
|
mainly used to do necessary host side setup. One such setup is ``binfmt_misc``,
|
||||||
for example, to make qemu-user powered cross build containers work.
|
for example, to make qemu-user powered cross build containers work.
|
||||||
|
|
||||||
|
Most of the existing Dockerfiles were written by hand, simply by creating a
|
||||||
|
a new ``.docker`` file under the ``tests/docker/dockerfiles/`` directory.
|
||||||
|
This has led to an inconsistent set of packages being present across the
|
||||||
|
different containers.
|
||||||
|
|
||||||
|
Thus going forward, QEMU is aiming to automatically generate the Dockerfiles
|
||||||
|
using the ``lcitool`` program provided by the ``libvirt-ci`` project:
|
||||||
|
|
||||||
|
https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
|
In that project, there is a ``mappings.yml`` file defining the distro native
|
||||||
|
package names for a wide variety of third party projects. This is processed
|
||||||
|
in combination with a project defined list of build pre-requisites to determine
|
||||||
|
the list of native packages to install on each distribution. This can be used
|
||||||
|
to generate dockerfiles, VM package lists and Cirrus CI variables needed to
|
||||||
|
setup build environments across OS distributions with a consistent set of
|
||||||
|
packages present.
|
||||||
|
|
||||||
|
When preparing a patch series that adds a new build pre-requisite to QEMU,
|
||||||
|
updates to various lcitool data files may be required.
|
||||||
|
|
||||||
|
|
||||||
|
Adding new build pre-requisites
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
In the simple case where the pre-requisite is already known to ``libvirt-ci``
|
||||||
|
the following steps are needed
|
||||||
|
|
||||||
|
* Edit ``tests/lcitool/projects/qemu.yml`` and add the pre-requisite
|
||||||
|
|
||||||
|
* Run ``make lcitool-refresh`` to re-generate all relevant build environment
|
||||||
|
manifests
|
||||||
|
|
||||||
|
In some cases ``libvirt-ci`` will not know about the build pre-requisite and
|
||||||
|
thus some extra preparation steps will be required first
|
||||||
|
|
||||||
|
* Fork the ``libvirt-ci`` project on gitlab
|
||||||
|
|
||||||
|
* Edit the ``mappings.yml`` change to add an entry for the new build
|
||||||
|
prerequisite, listing its native package name on as many OS distros
|
||||||
|
as practical.
|
||||||
|
|
||||||
|
* Commit the ``mappings.yml`` change and submit a merge request to
|
||||||
|
the ``libvirt-ci`` project, noting in the description that this
|
||||||
|
is a new build pre-requisite desired for use with QEMU
|
||||||
|
|
||||||
|
* CI pipeline will run to validate that the changes to ``mappings.yml``
|
||||||
|
are correct, by attempting to install the newly listed package on
|
||||||
|
all OS distributions supported by ``libvirt-ci``.
|
||||||
|
|
||||||
|
* Once the merge request is accepted, go back to QEMU and update
|
||||||
|
the ``libvirt-ci`` submodule to point to a commit that contains
|
||||||
|
the ``mappings.yml`` update.
|
||||||
|
|
||||||
|
|
||||||
|
Adding new OS distros
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
In some cases ``libvirt-ci`` will not know about the OS distro that is
|
||||||
|
desired to be tested. Before adding a new OS distro, discuss the proposed
|
||||||
|
addition:
|
||||||
|
|
||||||
|
* Send a mail to qemu-devel, copying people listed in the
|
||||||
|
MAINTAINERS file for ``Build and test automation``.
|
||||||
|
|
||||||
|
There are limited CI compute resources available to QEMU, so the
|
||||||
|
cost/benefit tradeoff of adding new OS distros needs to be considered.
|
||||||
|
|
||||||
|
* File an issue at https://gitlab.com/libvirt/libvirt-ci/-/issues
|
||||||
|
pointing to the qemu-devel mail thread in the archives.
|
||||||
|
|
||||||
|
This alerts other people who might be interested in the work
|
||||||
|
to avoid duplication, as well as to get feedback from libvirt-ci
|
||||||
|
maintainers on any tips to ease the addition
|
||||||
|
|
||||||
|
Assuming there is agreement to add a new OS distro then
|
||||||
|
|
||||||
|
* Fork the ``libvirt-ci`` project on gitlab
|
||||||
|
|
||||||
|
* Add metadata under ``guests/lcitool/lcitool/ansible/group_vars/``
|
||||||
|
for the new OS distro. There might be code changes required if
|
||||||
|
the OS distro uses a package format not currently known. The
|
||||||
|
``libvirt-ci`` maintainers can advise on this when the issue
|
||||||
|
is file.
|
||||||
|
|
||||||
|
* Edit the ``mappings.yml`` change to update all the existing package
|
||||||
|
entries, providing details of the new OS distro
|
||||||
|
|
||||||
|
* Commit the ``mappings.yml`` change and submit a merge request to
|
||||||
|
the ``libvirt-ci`` project, noting in the description that this
|
||||||
|
is a new build pre-requisite desired for use with QEMU
|
||||||
|
|
||||||
|
* CI pipeline will run to validate that the changes to ``mappings.yml``
|
||||||
|
are correct, by attempting to install the newly listed package on
|
||||||
|
all OS distributions supported by ``libvirt-ci``.
|
||||||
|
|
||||||
|
* Once the merge request is accepted, go back to QEMU and update
|
||||||
|
the ``libvirt-ci`` submodule to point to a commit that contains
|
||||||
|
the ``mappings.yml`` update.
|
||||||
|
|
||||||
|
|
||||||
Tests
|
Tests
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
|
|
|
@ -121,6 +121,14 @@ ras
|
||||||
Set ``on``/``off`` to enable/disable reporting host memory errors to a guest
|
Set ``on``/``off`` to enable/disable reporting host memory errors to a guest
|
||||||
using ACPI and guest external abort exceptions. The default is off.
|
using ACPI and guest external abort exceptions. The default is off.
|
||||||
|
|
||||||
|
dtb-kaslr-seed
|
||||||
|
Set ``on``/``off`` to pass a random seed via the guest dtb
|
||||||
|
kaslr-seed node (in both "/chosen" and /secure-chosen) to use
|
||||||
|
for features like address space randomisation. The default is
|
||||||
|
``on``. You will want to disable it if your trusted boot chain will
|
||||||
|
verify the DTB it is passed. It would be the responsibility of the
|
||||||
|
firmware to come up with a seed and pass it on if it wants to.
|
||||||
|
|
||||||
Linux guest kernel configuration
|
Linux guest kernel configuration
|
||||||
""""""""""""""""""""""""""""""""
|
""""""""""""""""""""""""""""""""
|
||||||
|
|
||||||
|
|
|
@ -358,6 +358,7 @@ SRST
|
||||||
Show host USB devices.
|
Show host USB devices.
|
||||||
ERST
|
ERST
|
||||||
|
|
||||||
|
#if defined(CONFIG_TCG)
|
||||||
{
|
{
|
||||||
.name = "profile",
|
.name = "profile",
|
||||||
.args_type = "",
|
.args_type = "",
|
||||||
|
@ -365,6 +366,7 @@ ERST
|
||||||
.help = "show profiling information",
|
.help = "show profiling information",
|
||||||
.cmd_info_hrt = qmp_x_query_profile,
|
.cmd_info_hrt = qmp_x_query_profile,
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
|
|
||||||
SRST
|
SRST
|
||||||
``info profile``
|
``info profile``
|
||||||
|
|
|
@ -247,11 +247,15 @@ static void create_fdt(VirtMachineState *vms)
|
||||||
|
|
||||||
/* /chosen must exist for load_dtb to fill in necessary properties later */
|
/* /chosen must exist for load_dtb to fill in necessary properties later */
|
||||||
qemu_fdt_add_subnode(fdt, "/chosen");
|
qemu_fdt_add_subnode(fdt, "/chosen");
|
||||||
create_kaslr_seed(ms, "/chosen");
|
if (vms->dtb_kaslr_seed) {
|
||||||
|
create_kaslr_seed(ms, "/chosen");
|
||||||
|
}
|
||||||
|
|
||||||
if (vms->secure) {
|
if (vms->secure) {
|
||||||
qemu_fdt_add_subnode(fdt, "/secure-chosen");
|
qemu_fdt_add_subnode(fdt, "/secure-chosen");
|
||||||
create_kaslr_seed(ms, "/secure-chosen");
|
if (vms->dtb_kaslr_seed) {
|
||||||
|
create_kaslr_seed(ms, "/secure-chosen");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clock node, for the benefit of the UART. The kernel device tree
|
/* Clock node, for the benefit of the UART. The kernel device tree
|
||||||
|
@ -2235,6 +2239,20 @@ static void virt_set_its(Object *obj, bool value, Error **errp)
|
||||||
vms->its = value;
|
vms->its = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool virt_get_dtb_kaslr_seed(Object *obj, Error **errp)
|
||||||
|
{
|
||||||
|
VirtMachineState *vms = VIRT_MACHINE(obj);
|
||||||
|
|
||||||
|
return vms->dtb_kaslr_seed;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void virt_set_dtb_kaslr_seed(Object *obj, bool value, Error **errp)
|
||||||
|
{
|
||||||
|
VirtMachineState *vms = VIRT_MACHINE(obj);
|
||||||
|
|
||||||
|
vms->dtb_kaslr_seed = value;
|
||||||
|
}
|
||||||
|
|
||||||
static char *virt_get_oem_id(Object *obj, Error **errp)
|
static char *virt_get_oem_id(Object *obj, Error **errp)
|
||||||
{
|
{
|
||||||
VirtMachineState *vms = VIRT_MACHINE(obj);
|
VirtMachineState *vms = VIRT_MACHINE(obj);
|
||||||
|
@ -2764,6 +2782,13 @@ static void virt_machine_class_init(ObjectClass *oc, void *data)
|
||||||
"Set on/off to enable/disable "
|
"Set on/off to enable/disable "
|
||||||
"ITS instantiation");
|
"ITS instantiation");
|
||||||
|
|
||||||
|
object_class_property_add_bool(oc, "dtb-kaslr-seed",
|
||||||
|
virt_get_dtb_kaslr_seed,
|
||||||
|
virt_set_dtb_kaslr_seed);
|
||||||
|
object_class_property_set_description(oc, "dtb-kaslr-seed",
|
||||||
|
"Set off to disable passing of kaslr-seed "
|
||||||
|
"dtb node to guest");
|
||||||
|
|
||||||
object_class_property_add_str(oc, "x-oem-id",
|
object_class_property_add_str(oc, "x-oem-id",
|
||||||
virt_get_oem_id,
|
virt_get_oem_id,
|
||||||
virt_set_oem_id);
|
virt_set_oem_id);
|
||||||
|
@ -2828,6 +2853,9 @@ static void virt_instance_init(Object *obj)
|
||||||
/* MTE is disabled by default. */
|
/* MTE is disabled by default. */
|
||||||
vms->mte = false;
|
vms->mte = false;
|
||||||
|
|
||||||
|
/* Supply a kaslr-seed by default */
|
||||||
|
vms->dtb_kaslr_seed = true;
|
||||||
|
|
||||||
vms->irqmap = a15irqmap;
|
vms->irqmap = a15irqmap;
|
||||||
|
|
||||||
virt_flash_create(vms);
|
virt_flash_create(vms);
|
||||||
|
|
|
@ -517,13 +517,20 @@ static int qxl_track_command(PCIQXLDevice *qxl, struct QXLCommandExt *ext)
|
||||||
|
|
||||||
/* spice display interface callbacks */
|
/* spice display interface callbacks */
|
||||||
|
|
||||||
static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
|
static void interface_attached_worker(QXLInstance *sin)
|
||||||
{
|
{
|
||||||
PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
|
PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
|
||||||
|
|
||||||
trace_qxl_interface_attach_worker(qxl->id);
|
trace_qxl_interface_attach_worker(qxl->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !(SPICE_HAS_ATTACHED_WORKER)
|
||||||
|
static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
|
||||||
|
{
|
||||||
|
interface_attached_worker(sin);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void interface_set_compression_level(QXLInstance *sin, int level)
|
static void interface_set_compression_level(QXLInstance *sin, int level)
|
||||||
{
|
{
|
||||||
PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
|
PCIQXLDevice *qxl = container_of(sin, PCIQXLDevice, ssd.qxl);
|
||||||
|
@ -1131,7 +1138,12 @@ static const QXLInterface qxl_interface = {
|
||||||
.base.major_version = SPICE_INTERFACE_QXL_MAJOR,
|
.base.major_version = SPICE_INTERFACE_QXL_MAJOR,
|
||||||
.base.minor_version = SPICE_INTERFACE_QXL_MINOR,
|
.base.minor_version = SPICE_INTERFACE_QXL_MINOR,
|
||||||
|
|
||||||
|
#if SPICE_HAS_ATTACHED_WORKER
|
||||||
|
.attached_worker = interface_attached_worker,
|
||||||
|
#else
|
||||||
.attache_worker = interface_attach_worker,
|
.attache_worker = interface_attach_worker,
|
||||||
|
#endif
|
||||||
|
|
||||||
.set_compression_level = interface_set_compression_level,
|
.set_compression_level = interface_set_compression_level,
|
||||||
#if SPICE_NEEDS_SET_MM_TIME
|
#if SPICE_NEEDS_SET_MM_TIME
|
||||||
.set_mm_time = interface_set_mm_time,
|
.set_mm_time = interface_set_mm_time,
|
||||||
|
|
|
@ -46,9 +46,9 @@
|
||||||
* int g_foo(const char *wibble)
|
* int g_foo(const char *wibble)
|
||||||
*
|
*
|
||||||
* We must define a static inline function with the same signature that does
|
* We must define a static inline function with the same signature that does
|
||||||
* what we need, but with a "_qemu" suffix e.g.
|
* what we need, but with a "_compat" suffix e.g.
|
||||||
*
|
*
|
||||||
* static inline void g_foo_qemu(const char *wibble)
|
* static inline void g_foo_compat(const char *wibble)
|
||||||
* {
|
* {
|
||||||
* #if GLIB_CHECK_VERSION(X, Y, 0)
|
* #if GLIB_CHECK_VERSION(X, Y, 0)
|
||||||
* g_foo(wibble)
|
* g_foo(wibble)
|
||||||
|
@ -61,7 +61,7 @@
|
||||||
* ensuring this wrapper function impl doesn't trigger the compiler warning
|
* ensuring this wrapper function impl doesn't trigger the compiler warning
|
||||||
* about using too new glib APIs. Finally we can do
|
* about using too new glib APIs. Finally we can do
|
||||||
*
|
*
|
||||||
* #define g_foo(a) g_foo_qemu(a)
|
* #define g_foo(a) g_foo_compat(a)
|
||||||
*
|
*
|
||||||
* So now the code elsewhere in QEMU, which *does* have the
|
* So now the code elsewhere in QEMU, which *does* have the
|
||||||
* -Wdeprecated-declarations warning active, can call g_foo(...) as normal,
|
* -Wdeprecated-declarations warning active, can call g_foo(...) as normal,
|
||||||
|
|
|
@ -148,6 +148,7 @@ struct VirtMachineState {
|
||||||
bool virt;
|
bool virt;
|
||||||
bool ras;
|
bool ras;
|
||||||
bool mte;
|
bool mte;
|
||||||
|
bool dtb_kaslr_seed;
|
||||||
OnOffAuto acpi;
|
OnOffAuto acpi;
|
||||||
VirtGICType gic_version;
|
VirtGICType gic_version;
|
||||||
VirtIOMMUType iommu;
|
VirtIOMMUType iommu;
|
||||||
|
|
|
@ -40,6 +40,12 @@ int qemu_spice_migrate_info(const char *hostname, int port, int tls_port,
|
||||||
#define SPICE_NEEDS_SET_MM_TIME 0
|
#define SPICE_NEEDS_SET_MM_TIME 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(SPICE_SERVER_VERSION) && (SPICE_SERVER_VERSION >= 0x000f00)
|
||||||
|
#define SPICE_HAS_ATTACHED_WORKER 1
|
||||||
|
#else
|
||||||
|
#define SPICE_HAS_ATTACHED_WORKER 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#else /* CONFIG_SPICE */
|
#else /* CONFIG_SPICE */
|
||||||
|
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
|
|
|
@ -5,7 +5,18 @@
|
||||||
#undef WIN32_LEAN_AND_MEAN
|
#undef WIN32_LEAN_AND_MEAN
|
||||||
|
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
|
|
||||||
|
/* with Alpine / muslc SDL headers pull in directfb headers
|
||||||
|
* which in turn trigger warning about redundant decls for
|
||||||
|
* direct_waitqueue_deinit.
|
||||||
|
*/
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
||||||
|
|
||||||
#include <SDL_syswm.h>
|
#include <SDL_syswm.h>
|
||||||
|
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
#ifdef CONFIG_SDL_IMAGE
|
#ifdef CONFIG_SDL_IMAGE
|
||||||
# include <SDL_image.h>
|
# include <SDL_image.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2267,6 +2267,9 @@ static void pgb_have_guest_base(const char *image_name, abi_ulong guest_loaddr,
|
||||||
if (test != addr) {
|
if (test != addr) {
|
||||||
pgb_fail_in_use(image_name);
|
pgb_fail_in_use(image_name);
|
||||||
}
|
}
|
||||||
|
qemu_log_mask(CPU_LOG_PAGE,
|
||||||
|
"%s: base @ %p for " TARGET_ABI_FMT_ld " bytes\n",
|
||||||
|
__func__, addr, guest_hiaddr - guest_loaddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2309,6 +2312,9 @@ static uintptr_t pgd_find_hole_fallback(uintptr_t guest_size, uintptr_t brk,
|
||||||
if (mmap_start != MAP_FAILED) {
|
if (mmap_start != MAP_FAILED) {
|
||||||
munmap(mmap_start, guest_size);
|
munmap(mmap_start, guest_size);
|
||||||
if (mmap_start == (void *) align_start) {
|
if (mmap_start == (void *) align_start) {
|
||||||
|
qemu_log_mask(CPU_LOG_PAGE,
|
||||||
|
"%s: base @ %p for %" PRIdPTR" bytes\n",
|
||||||
|
__func__, mmap_start + offset, guest_size);
|
||||||
return (uintptr_t) mmap_start + offset;
|
return (uintptr_t) mmap_start + offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2333,8 +2339,7 @@ static uintptr_t pgb_find_hole(uintptr_t guest_loaddr, uintptr_t guest_size,
|
||||||
brk = (uintptr_t)sbrk(0);
|
brk = (uintptr_t)sbrk(0);
|
||||||
|
|
||||||
if (!maps) {
|
if (!maps) {
|
||||||
ret = pgd_find_hole_fallback(guest_size, brk, align, offset);
|
return pgd_find_hole_fallback(guest_size, brk, align, offset);
|
||||||
return ret == -1 ? -1 : ret - guest_loaddr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The first hole is before the first map entry. */
|
/* The first hole is before the first map entry. */
|
||||||
|
@ -2374,7 +2379,7 @@ static uintptr_t pgb_find_hole(uintptr_t guest_loaddr, uintptr_t guest_size,
|
||||||
|
|
||||||
/* Record the lowest successful match. */
|
/* Record the lowest successful match. */
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
ret = align_start - guest_loaddr;
|
ret = align_start;
|
||||||
}
|
}
|
||||||
/* If this hole contains the identity map, select it. */
|
/* If this hole contains the identity map, select it. */
|
||||||
if (align_start <= guest_loaddr &&
|
if (align_start <= guest_loaddr &&
|
||||||
|
@ -2388,6 +2393,12 @@ static uintptr_t pgb_find_hole(uintptr_t guest_loaddr, uintptr_t guest_size,
|
||||||
}
|
}
|
||||||
free_self_maps(maps);
|
free_self_maps(maps);
|
||||||
|
|
||||||
|
if (ret != -1) {
|
||||||
|
qemu_log_mask(CPU_LOG_PAGE, "%s: base @ %" PRIxPTR
|
||||||
|
" for %" PRIuPTR " bytes\n",
|
||||||
|
__func__, ret, guest_size);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2439,6 +2450,9 @@ static void pgb_static(const char *image_name, abi_ulong orig_loaddr,
|
||||||
}
|
}
|
||||||
|
|
||||||
guest_base = addr;
|
guest_base = addr;
|
||||||
|
|
||||||
|
qemu_log_mask(CPU_LOG_PAGE, "%s: base @ %"PRIxPTR" for %" PRIuPTR" bytes\n",
|
||||||
|
__func__, addr, hiaddr - loaddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pgb_dynamic(const char *image_name, long align)
|
static void pgb_dynamic(const char *image_name, long align)
|
||||||
|
@ -2495,6 +2509,9 @@ static void pgb_reserved_va(const char *image_name, abi_ulong guest_loaddr,
|
||||||
"using -R option)", reserved_va, test, strerror(errno));
|
"using -R option)", reserved_va, test, strerror(errno));
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
qemu_log_mask(CPU_LOG_PAGE, "%s: base @ %p for %lu bytes\n",
|
||||||
|
__func__, addr, reserved_va);
|
||||||
}
|
}
|
||||||
|
|
||||||
void probe_guest_base(const char *image_name, abi_ulong guest_loaddr,
|
void probe_guest_base(const char *image_name, abi_ulong guest_loaddr,
|
||||||
|
@ -2783,11 +2800,17 @@ static void load_elf_image(const char *image_name, int image_fd,
|
||||||
* and the stack, lest they be placed immediately after
|
* and the stack, lest they be placed immediately after
|
||||||
* the data segment and block allocation from the brk.
|
* the data segment and block allocation from the brk.
|
||||||
*
|
*
|
||||||
* 16MB is chosen as "large enough" without being so large
|
* 16MB is chosen as "large enough" without being so large as
|
||||||
* as to allow the result to not fit with a 32-bit guest on
|
* to allow the result to not fit with a 32-bit guest on a
|
||||||
* a 32-bit host.
|
* 32-bit host. However some 64 bit guests (e.g. s390x)
|
||||||
|
* attempt to place their heap further ahead and currently
|
||||||
|
* nothing stops them smashing into QEMUs address space.
|
||||||
*/
|
*/
|
||||||
|
#if TARGET_LONG_BITS == 64
|
||||||
|
info->reserve_brk = 32 * MiB;
|
||||||
|
#else
|
||||||
info->reserve_brk = 16 * MiB;
|
info->reserve_brk = 16 * MiB;
|
||||||
|
#endif
|
||||||
hiaddr += info->reserve_brk;
|
hiaddr += info->reserve_brk;
|
||||||
|
|
||||||
if (ehdr->e_type == ET_EXEC) {
|
if (ehdr->e_type == ET_EXEC) {
|
||||||
|
|
|
@ -445,7 +445,8 @@ if not get_option('linux_aio').auto() or have_block
|
||||||
endif
|
endif
|
||||||
linux_io_uring = not_found
|
linux_io_uring = not_found
|
||||||
if not get_option('linux_io_uring').auto() or have_block
|
if not get_option('linux_io_uring').auto() or have_block
|
||||||
linux_io_uring = dependency('liburing', required: get_option('linux_io_uring'),
|
linux_io_uring = dependency('liburing', version: '>=0.3',
|
||||||
|
required: get_option('linux_io_uring'),
|
||||||
method: 'pkg-config', kwargs: static_kwargs)
|
method: 'pkg-config', kwargs: static_kwargs)
|
||||||
endif
|
endif
|
||||||
libxml2 = not_found
|
libxml2 = not_found
|
||||||
|
|
|
@ -368,37 +368,6 @@ void qmp_display_reload(DisplayReloadOptions *arg, Error **errp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PROFILER
|
|
||||||
|
|
||||||
int64_t dev_time;
|
|
||||||
|
|
||||||
HumanReadableText *qmp_x_query_profile(Error **errp)
|
|
||||||
{
|
|
||||||
g_autoptr(GString) buf = g_string_new("");
|
|
||||||
static int64_t last_cpu_exec_time;
|
|
||||||
int64_t cpu_exec_time;
|
|
||||||
int64_t delta;
|
|
||||||
|
|
||||||
cpu_exec_time = tcg_cpu_exec_time();
|
|
||||||
delta = cpu_exec_time - last_cpu_exec_time;
|
|
||||||
|
|
||||||
g_string_append_printf(buf, "async time %" PRId64 " (%0.3f)\n",
|
|
||||||
dev_time, dev_time / (double)NANOSECONDS_PER_SECOND);
|
|
||||||
g_string_append_printf(buf, "qemu time %" PRId64 " (%0.3f)\n",
|
|
||||||
delta, delta / (double)NANOSECONDS_PER_SECOND);
|
|
||||||
last_cpu_exec_time = cpu_exec_time;
|
|
||||||
dev_time = 0;
|
|
||||||
|
|
||||||
return human_readable_text_from_str(buf);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
HumanReadableText *qmp_x_query_profile(Error **errp)
|
|
||||||
{
|
|
||||||
error_setg(errp, "Internal profiler not compiled");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int qmp_x_query_rdma_foreach(Object *obj, void *opaque)
|
static int qmp_x_query_rdma_foreach(Object *obj, void *opaque)
|
||||||
{
|
{
|
||||||
RdmaProvider *rdma;
|
RdmaProvider *rdma;
|
||||||
|
|
|
@ -1503,6 +1503,7 @@
|
||||||
##
|
##
|
||||||
{ 'command': 'x-query-profile',
|
{ 'command': 'x-query-profile',
|
||||||
'returns': 'HumanReadableText',
|
'returns': 'HumanReadableText',
|
||||||
|
'if': 'CONFIG_TCG',
|
||||||
'features': [ 'unstable' ] }
|
'features': [ 'unstable' ] }
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -1,59 +1,123 @@
|
||||||
|
# THIS FILE WAS AUTO-GENERATED
|
||||||
|
#
|
||||||
|
# $ lcitool dockerfile alpine-edge qemu
|
||||||
|
#
|
||||||
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
FROM alpine:edge
|
FROM docker.io/library/alpine:edge
|
||||||
|
|
||||||
RUN apk update
|
RUN apk update && \
|
||||||
RUN apk upgrade
|
apk upgrade && \
|
||||||
|
apk add \
|
||||||
|
alsa-lib-dev \
|
||||||
|
attr-dev \
|
||||||
|
bash \
|
||||||
|
bc \
|
||||||
|
bzip2 \
|
||||||
|
bzip2-dev \
|
||||||
|
ca-certificates \
|
||||||
|
capstone-dev \
|
||||||
|
ccache \
|
||||||
|
cdrkit \
|
||||||
|
ceph-dev \
|
||||||
|
clang \
|
||||||
|
ctags \
|
||||||
|
curl-dev \
|
||||||
|
cyrus-sasl-dev \
|
||||||
|
dbus \
|
||||||
|
diffutils \
|
||||||
|
dtc-dev \
|
||||||
|
eudev-dev \
|
||||||
|
findutils \
|
||||||
|
fuse3-dev \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
gcovr \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
glib-dev \
|
||||||
|
glib-static \
|
||||||
|
gnutls-dev \
|
||||||
|
gtk+3.0-dev \
|
||||||
|
libaio-dev \
|
||||||
|
libbpf-dev \
|
||||||
|
libcap-ng-dev \
|
||||||
|
libdrm-dev \
|
||||||
|
libepoxy-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libgcrypt-dev \
|
||||||
|
libjpeg-turbo-dev \
|
||||||
|
libnfs-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libseccomp-dev \
|
||||||
|
libselinux-dev \
|
||||||
|
libslirp-dev \
|
||||||
|
libssh-dev \
|
||||||
|
libtasn1-dev \
|
||||||
|
liburing-dev \
|
||||||
|
libusb-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
linux-pam-dev \
|
||||||
|
llvm11 \
|
||||||
|
lttng-ust-dev \
|
||||||
|
lzo-dev \
|
||||||
|
make \
|
||||||
|
mesa-dev \
|
||||||
|
meson \
|
||||||
|
multipath-tools \
|
||||||
|
ncurses-dev \
|
||||||
|
ndctl-dev \
|
||||||
|
net-tools \
|
||||||
|
nettle-dev \
|
||||||
|
nmap-ncat \
|
||||||
|
numactl-dev \
|
||||||
|
openssh-client \
|
||||||
|
pcre-dev \
|
||||||
|
perl \
|
||||||
|
perl-test-harness \
|
||||||
|
pixman-dev \
|
||||||
|
pkgconf \
|
||||||
|
pulseaudio-dev \
|
||||||
|
py3-numpy \
|
||||||
|
py3-pillow \
|
||||||
|
py3-pip \
|
||||||
|
py3-sphinx \
|
||||||
|
py3-sphinx_rtd_theme \
|
||||||
|
py3-virtualenv \
|
||||||
|
py3-yaml \
|
||||||
|
python3 \
|
||||||
|
rpm2cpio \
|
||||||
|
samurai \
|
||||||
|
sdl2-dev \
|
||||||
|
sdl2_image-dev \
|
||||||
|
sed \
|
||||||
|
snappy-dev \
|
||||||
|
sparse \
|
||||||
|
spice-dev \
|
||||||
|
spice-protocol \
|
||||||
|
tar \
|
||||||
|
tesseract-ocr \
|
||||||
|
texinfo \
|
||||||
|
usbredir-dev \
|
||||||
|
util-linux \
|
||||||
|
vde2-dev \
|
||||||
|
virglrenderer-dev \
|
||||||
|
vte3-dev \
|
||||||
|
which \
|
||||||
|
xen-dev \
|
||||||
|
xfsprogs-dev \
|
||||||
|
zlib-dev \
|
||||||
|
zlib-static \
|
||||||
|
zstd-dev && \
|
||||||
|
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
# Please keep this list sorted alphabetically
|
ENV LANG "en_US.UTF-8"
|
||||||
ENV PACKAGES \
|
ENV MAKE "/usr/bin/make"
|
||||||
alsa-lib-dev \
|
ENV NINJA "/usr/bin/ninja"
|
||||||
bash \
|
ENV PYTHON "/usr/bin/python3"
|
||||||
binutils \
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
ccache \
|
|
||||||
coreutils \
|
|
||||||
curl-dev \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
git \
|
|
||||||
glib-dev \
|
|
||||||
glib-static \
|
|
||||||
gnutls-dev \
|
|
||||||
gtk+3.0-dev \
|
|
||||||
libaio-dev \
|
|
||||||
libbpf-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libffi-dev \
|
|
||||||
libjpeg-turbo-dev \
|
|
||||||
libnfs-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libseccomp-dev \
|
|
||||||
libssh-dev \
|
|
||||||
libusb-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
lzo-dev \
|
|
||||||
make \
|
|
||||||
mesa-dev \
|
|
||||||
mesa-egl \
|
|
||||||
mesa-gbm \
|
|
||||||
meson \
|
|
||||||
ncurses-dev \
|
|
||||||
ninja \
|
|
||||||
perl \
|
|
||||||
pulseaudio-dev \
|
|
||||||
python3 \
|
|
||||||
py3-sphinx \
|
|
||||||
py3-sphinx_rtd_theme \
|
|
||||||
shadow \
|
|
||||||
snappy-dev \
|
|
||||||
spice-dev \
|
|
||||||
texinfo \
|
|
||||||
usbredir-dev \
|
|
||||||
util-linux-dev \
|
|
||||||
vde2-dev \
|
|
||||||
virglrenderer-dev \
|
|
||||||
vte3-dev \
|
|
||||||
xfsprogs-dev \
|
|
||||||
zlib-dev \
|
|
||||||
zlib-static
|
|
||||||
|
|
||||||
RUN apk add $PACKAGES
|
|
||||||
|
|
|
@ -1,112 +1,136 @@
|
||||||
FROM docker.io/centos:8
|
# THIS FILE WAS AUTO-GENERATED
|
||||||
|
#
|
||||||
|
# $ lcitool dockerfile centos-8 qemu
|
||||||
|
#
|
||||||
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
RUN dnf -y update
|
FROM docker.io/library/centos:8
|
||||||
ENV PACKAGES \
|
|
||||||
SDL2-devel \
|
|
||||||
alsa-lib-devel \
|
|
||||||
bc \
|
|
||||||
brlapi-devel \
|
|
||||||
bzip2 \
|
|
||||||
bzip2-devel \
|
|
||||||
ca-certificates \
|
|
||||||
capstone-devel \
|
|
||||||
ccache \
|
|
||||||
clang \
|
|
||||||
ctags \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
daxctl-devel \
|
|
||||||
dbus-daemon \
|
|
||||||
device-mapper-multipath-devel \
|
|
||||||
diffutils \
|
|
||||||
findutils \
|
|
||||||
gcc \
|
|
||||||
gcc-c++ \
|
|
||||||
genisoimage \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-langpack-en \
|
|
||||||
glibc-static \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
gtk3-devel \
|
|
||||||
hostname \
|
|
||||||
jemalloc-devel \
|
|
||||||
libaio-devel \
|
|
||||||
libasan \
|
|
||||||
libattr-devel \
|
|
||||||
libbpf-devel \
|
|
||||||
libcacard-devel \
|
|
||||||
libcap-ng-devel \
|
|
||||||
libcurl-devel \
|
|
||||||
libdrm-devel \
|
|
||||||
libepoxy-devel \
|
|
||||||
libfdt-devel \
|
|
||||||
libffi-devel \
|
|
||||||
libgcrypt-devel \
|
|
||||||
libiscsi-devel \
|
|
||||||
libjpeg-devel \
|
|
||||||
libnfs-devel \
|
|
||||||
libpmem-devel \
|
|
||||||
libpng-devel \
|
|
||||||
librbd-devel \
|
|
||||||
libseccomp-devel \
|
|
||||||
libselinux-devel \
|
|
||||||
libslirp-devel \
|
|
||||||
libssh-devel \
|
|
||||||
libtasn1-devel \
|
|
||||||
libubsan \
|
|
||||||
libudev-devel \
|
|
||||||
libusbx-devel \
|
|
||||||
libxml2-devel \
|
|
||||||
libzstd-devel \
|
|
||||||
llvm \
|
|
||||||
lzo-devel \
|
|
||||||
make \
|
|
||||||
mesa-libgbm-devel \
|
|
||||||
ncurses-devel \
|
|
||||||
nettle-devel \
|
|
||||||
ninja-build \
|
|
||||||
nmap-ncat \
|
|
||||||
numactl-devel \
|
|
||||||
openssh-clients \
|
|
||||||
pam-devel \
|
|
||||||
perl \
|
|
||||||
perl-Test-Harness \
|
|
||||||
pixman-devel \
|
|
||||||
pkgconfig \
|
|
||||||
pulseaudio-libs-devel \
|
|
||||||
python3 \
|
|
||||||
python3-PyYAML \
|
|
||||||
python3-numpy \
|
|
||||||
python3-pillow \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-sphinx \
|
|
||||||
python3-sphinx_rtd_theme \
|
|
||||||
python3-virtualenv \
|
|
||||||
python3-wheel \
|
|
||||||
rdma-core-devel \
|
|
||||||
rpm \
|
|
||||||
sed \
|
|
||||||
snappy-devel \
|
|
||||||
spice-protocol \
|
|
||||||
spice-server-devel \
|
|
||||||
systemd-devel \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
tar \
|
|
||||||
texinfo \
|
|
||||||
usbredir-devel \
|
|
||||||
util-linux \
|
|
||||||
virglrenderer-devel \
|
|
||||||
vte291-devel \
|
|
||||||
which \
|
|
||||||
xfsprogs-devel \
|
|
||||||
zlib-devel
|
|
||||||
|
|
||||||
RUN dnf install -y dnf-plugins-core && \
|
RUN dnf update -y && \
|
||||||
dnf config-manager --set-enabled powertools && \
|
dnf install 'dnf-command(config-manager)' -y && \
|
||||||
dnf install -y centos-release-advanced-virtualization && \
|
dnf config-manager --set-enabled -y powertools && \
|
||||||
dnf install -y epel-release && \
|
dnf install -y centos-release-advanced-virtualization && \
|
||||||
dnf install -y $PACKAGES
|
dnf install -y epel-release && \
|
||||||
RUN rpm -q $PACKAGES | sort > /packages.txt
|
dnf install -y \
|
||||||
|
SDL2-devel \
|
||||||
|
alsa-lib-devel \
|
||||||
|
bash \
|
||||||
|
bc \
|
||||||
|
brlapi-devel \
|
||||||
|
bzip2 \
|
||||||
|
bzip2-devel \
|
||||||
|
ca-certificates \
|
||||||
|
capstone-devel \
|
||||||
|
ccache \
|
||||||
|
clang \
|
||||||
|
ctags \
|
||||||
|
cyrus-sasl-devel \
|
||||||
|
daxctl-devel \
|
||||||
|
dbus-daemon \
|
||||||
|
device-mapper-multipath-devel \
|
||||||
|
diffutils \
|
||||||
|
findutils \
|
||||||
|
fuse3-devel \
|
||||||
|
gcc \
|
||||||
|
gcc-c++ \
|
||||||
|
genisoimage \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
glib2-devel \
|
||||||
|
glib2-static \
|
||||||
|
glibc-langpack-en \
|
||||||
|
glibc-static \
|
||||||
|
glusterfs-api-devel \
|
||||||
|
gnutls-devel \
|
||||||
|
gtk3-devel \
|
||||||
|
hostname \
|
||||||
|
jemalloc-devel \
|
||||||
|
libaio-devel \
|
||||||
|
libasan \
|
||||||
|
libattr-devel \
|
||||||
|
libbpf-devel \
|
||||||
|
libcacard-devel \
|
||||||
|
libcap-ng-devel \
|
||||||
|
libcurl-devel \
|
||||||
|
libdrm-devel \
|
||||||
|
libepoxy-devel \
|
||||||
|
libfdt-devel \
|
||||||
|
libffi-devel \
|
||||||
|
libgcrypt-devel \
|
||||||
|
libiscsi-devel \
|
||||||
|
libjpeg-devel \
|
||||||
|
libnfs-devel \
|
||||||
|
libpmem-devel \
|
||||||
|
libpng-devel \
|
||||||
|
librbd-devel \
|
||||||
|
libseccomp-devel \
|
||||||
|
libselinux-devel \
|
||||||
|
libslirp-devel \
|
||||||
|
libssh-devel \
|
||||||
|
libtasn1-devel \
|
||||||
|
libubsan \
|
||||||
|
libudev-devel \
|
||||||
|
liburing-devel \
|
||||||
|
libusbx-devel \
|
||||||
|
libxml2-devel \
|
||||||
|
libzstd-devel \
|
||||||
|
llvm \
|
||||||
|
lttng-ust-devel \
|
||||||
|
lzo-devel \
|
||||||
|
make \
|
||||||
|
mesa-libgbm-devel \
|
||||||
|
meson \
|
||||||
|
ncurses-devel \
|
||||||
|
nettle-devel \
|
||||||
|
ninja-build \
|
||||||
|
nmap-ncat \
|
||||||
|
numactl-devel \
|
||||||
|
openssh-clients \
|
||||||
|
pam-devel \
|
||||||
|
pcre-static \
|
||||||
|
perl \
|
||||||
|
perl-Test-Harness \
|
||||||
|
pixman-devel \
|
||||||
|
pkgconfig \
|
||||||
|
pulseaudio-libs-devel \
|
||||||
|
python3 \
|
||||||
|
python3-PyYAML \
|
||||||
|
python3-numpy \
|
||||||
|
python3-pillow \
|
||||||
|
python3-pip \
|
||||||
|
python3-sphinx \
|
||||||
|
python3-sphinx_rtd_theme \
|
||||||
|
python3-virtualenv \
|
||||||
|
rdma-core-devel \
|
||||||
|
rpm \
|
||||||
|
sed \
|
||||||
|
snappy-devel \
|
||||||
|
spice-protocol \
|
||||||
|
spice-server-devel \
|
||||||
|
systemd-devel \
|
||||||
|
systemtap-sdt-devel \
|
||||||
|
tar \
|
||||||
|
texinfo \
|
||||||
|
usbredir-devel \
|
||||||
|
util-linux \
|
||||||
|
virglrenderer-devel \
|
||||||
|
vte291-devel \
|
||||||
|
which \
|
||||||
|
xfsprogs-devel \
|
||||||
|
zlib-devel \
|
||||||
|
zlib-static && \
|
||||||
|
dnf autoremove -y && \
|
||||||
|
dnf clean all -y && \
|
||||||
|
rpm -qa | sort > /packages.txt && \
|
||||||
|
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
ENV LANG "en_US.UTF-8"
|
||||||
|
ENV MAKE "/usr/bin/make"
|
||||||
|
ENV NINJA "/usr/bin/ninja"
|
||||||
|
ENV PYTHON "/usr/bin/python3"
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
|
|
|
@ -16,6 +16,7 @@ MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||||
RUN apt update && \
|
RUN apt update && \
|
||||||
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
|
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
|
||||||
DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
|
DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
|
||||||
|
bison \
|
||||||
bzip2 \
|
bzip2 \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
ccache \
|
ccache \
|
||||||
|
|
|
@ -1,118 +1,149 @@
|
||||||
FROM registry.fedoraproject.org/fedora:33
|
# THIS FILE WAS AUTO-GENERATED
|
||||||
|
#
|
||||||
|
# $ lcitool dockerfile fedora-35 qemu
|
||||||
|
#
|
||||||
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
# Please keep this list sorted alphabetically
|
FROM registry.fedoraproject.org/fedora:35
|
||||||
ENV PACKAGES \
|
|
||||||
SDL2-devel \
|
|
||||||
SDL2_image-devel \
|
|
||||||
alsa-lib-devel \
|
|
||||||
bc \
|
|
||||||
brlapi-devel \
|
|
||||||
bzip2 \
|
|
||||||
bzip2-devel \
|
|
||||||
ca-certificates \
|
|
||||||
capstone-devel \
|
|
||||||
ccache \
|
|
||||||
clang \
|
|
||||||
ctags \
|
|
||||||
cyrus-sasl-devel \
|
|
||||||
daxctl-devel \
|
|
||||||
dbus-daemon \
|
|
||||||
device-mapper-multipath-devel \
|
|
||||||
diffutils \
|
|
||||||
findutils \
|
|
||||||
gcc \
|
|
||||||
gcc-c++ \
|
|
||||||
gcovr \
|
|
||||||
genisoimage \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
glib2-devel \
|
|
||||||
glibc-langpack-en \
|
|
||||||
glibc-static \
|
|
||||||
glusterfs-api-devel \
|
|
||||||
gnutls-devel \
|
|
||||||
gtk3-devel \
|
|
||||||
hostname \
|
|
||||||
jemalloc-devel \
|
|
||||||
libaio-devel \
|
|
||||||
libasan \
|
|
||||||
libattr-devel \
|
|
||||||
libbpf-devel \
|
|
||||||
libcacard-devel \
|
|
||||||
libcap-ng-devel \
|
|
||||||
libcurl-devel \
|
|
||||||
libdrm-devel \
|
|
||||||
libepoxy-devel \
|
|
||||||
libfdt-devel \
|
|
||||||
libffi-devel \
|
|
||||||
libgcrypt-devel \
|
|
||||||
libiscsi-devel \
|
|
||||||
libjpeg-devel \
|
|
||||||
libnfs-devel \
|
|
||||||
libpmem-devel \
|
|
||||||
libpng-devel \
|
|
||||||
librbd-devel \
|
|
||||||
libseccomp-devel \
|
|
||||||
libselinux-devel \
|
|
||||||
libslirp-devel \
|
|
||||||
libssh-devel \
|
|
||||||
libtasn1-devel \
|
|
||||||
libubsan \
|
|
||||||
libudev-devel \
|
|
||||||
liburing-devel \
|
|
||||||
libusbx-devel \
|
|
||||||
libxml2-devel \
|
|
||||||
libzstd-devel \
|
|
||||||
llvm \
|
|
||||||
lttng-ust-devel \
|
|
||||||
lzo-devel \
|
|
||||||
make \
|
|
||||||
mesa-libgbm-devel \
|
|
||||||
meson \
|
|
||||||
ncurses-devel \
|
|
||||||
nettle-devel \
|
|
||||||
ninja-build \
|
|
||||||
nmap-ncat \
|
|
||||||
numactl-devel \
|
|
||||||
openssh-clients \
|
|
||||||
pam-devel \
|
|
||||||
perl-Test-Harness \
|
|
||||||
perl-base \
|
|
||||||
pixman-devel \
|
|
||||||
pkgconfig \
|
|
||||||
pulseaudio-libs-devel \
|
|
||||||
python3 \
|
|
||||||
python3-PyYAML \
|
|
||||||
python3-numpy \
|
|
||||||
python3-opencv \
|
|
||||||
python3-pillow \
|
|
||||||
python3-pip \
|
|
||||||
python3-sphinx \
|
|
||||||
python3-sphinx_rtd_theme \
|
|
||||||
python3-virtualenv \
|
|
||||||
rdma-core-devel \
|
|
||||||
rpm \
|
|
||||||
sed \
|
|
||||||
snappy-devel \
|
|
||||||
sparse \
|
|
||||||
spice-protocol \
|
|
||||||
spice-server-devel \
|
|
||||||
systemd-devel \
|
|
||||||
systemtap-sdt-devel \
|
|
||||||
tar \
|
|
||||||
tesseract \
|
|
||||||
tesseract-langpack-eng \
|
|
||||||
texinfo \
|
|
||||||
usbredir-devel \
|
|
||||||
util-linux \
|
|
||||||
virglrenderer-devel \
|
|
||||||
vte291-devel \
|
|
||||||
which \
|
|
||||||
xen-devel \
|
|
||||||
xfsprogs-devel \
|
|
||||||
zlib-devel
|
|
||||||
ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3
|
|
||||||
|
|
||||||
RUN dnf install -y $PACKAGES
|
RUN dnf install -y nosync && \
|
||||||
RUN rpm -q $PACKAGES | sort > /packages.txt
|
echo -e '#!/bin/sh\n\
|
||||||
ENV PATH $PATH:/usr/libexec/python3-sphinx/
|
if test -d /usr/lib64\n\
|
||||||
|
then\n\
|
||||||
|
export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
|
||||||
|
else\n\
|
||||||
|
export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
|
||||||
|
fi\n\
|
||||||
|
exec "$@"' > /usr/bin/nosync && \
|
||||||
|
chmod +x /usr/bin/nosync && \
|
||||||
|
nosync dnf update -y && \
|
||||||
|
nosync dnf install -y \
|
||||||
|
SDL2-devel \
|
||||||
|
SDL2_image-devel \
|
||||||
|
alsa-lib-devel \
|
||||||
|
bash \
|
||||||
|
bc \
|
||||||
|
brlapi-devel \
|
||||||
|
bzip2 \
|
||||||
|
bzip2-devel \
|
||||||
|
ca-certificates \
|
||||||
|
capstone-devel \
|
||||||
|
ccache \
|
||||||
|
clang \
|
||||||
|
ctags \
|
||||||
|
cyrus-sasl-devel \
|
||||||
|
daxctl-devel \
|
||||||
|
dbus-daemon \
|
||||||
|
device-mapper-multipath-devel \
|
||||||
|
diffutils \
|
||||||
|
findutils \
|
||||||
|
fuse3-devel \
|
||||||
|
gcc \
|
||||||
|
gcc-c++ \
|
||||||
|
gcovr \
|
||||||
|
genisoimage \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
glib2-devel \
|
||||||
|
glib2-static \
|
||||||
|
glibc-langpack-en \
|
||||||
|
glibc-static \
|
||||||
|
glusterfs-api-devel \
|
||||||
|
gnutls-devel \
|
||||||
|
gtk3-devel \
|
||||||
|
hostname \
|
||||||
|
jemalloc-devel \
|
||||||
|
libaio-devel \
|
||||||
|
libasan \
|
||||||
|
libattr-devel \
|
||||||
|
libbpf-devel \
|
||||||
|
libcacard-devel \
|
||||||
|
libcap-ng-devel \
|
||||||
|
libcurl-devel \
|
||||||
|
libdrm-devel \
|
||||||
|
libepoxy-devel \
|
||||||
|
libfdt-devel \
|
||||||
|
libffi-devel \
|
||||||
|
libgcrypt-devel \
|
||||||
|
libiscsi-devel \
|
||||||
|
libjpeg-devel \
|
||||||
|
libnfs-devel \
|
||||||
|
libpmem-devel \
|
||||||
|
libpng-devel \
|
||||||
|
librbd-devel \
|
||||||
|
libseccomp-devel \
|
||||||
|
libselinux-devel \
|
||||||
|
libslirp-devel \
|
||||||
|
libssh-devel \
|
||||||
|
libtasn1-devel \
|
||||||
|
libubsan \
|
||||||
|
libudev-devel \
|
||||||
|
liburing-devel \
|
||||||
|
libusbx-devel \
|
||||||
|
libxml2-devel \
|
||||||
|
libzstd-devel \
|
||||||
|
llvm \
|
||||||
|
lttng-ust-devel \
|
||||||
|
lzo-devel \
|
||||||
|
make \
|
||||||
|
mesa-libgbm-devel \
|
||||||
|
meson \
|
||||||
|
ncurses-devel \
|
||||||
|
nettle-devel \
|
||||||
|
ninja-build \
|
||||||
|
nmap-ncat \
|
||||||
|
numactl-devel \
|
||||||
|
openssh-clients \
|
||||||
|
pam-devel \
|
||||||
|
pcre-static \
|
||||||
|
perl-Test-Harness \
|
||||||
|
perl-base \
|
||||||
|
pixman-devel \
|
||||||
|
pkgconfig \
|
||||||
|
pulseaudio-libs-devel \
|
||||||
|
python3 \
|
||||||
|
python3-PyYAML \
|
||||||
|
python3-numpy \
|
||||||
|
python3-opencv \
|
||||||
|
python3-pillow \
|
||||||
|
python3-pip \
|
||||||
|
python3-sphinx \
|
||||||
|
python3-sphinx_rtd_theme \
|
||||||
|
python3-virtualenv \
|
||||||
|
rdma-core-devel \
|
||||||
|
rpm \
|
||||||
|
sed \
|
||||||
|
snappy-devel \
|
||||||
|
sparse \
|
||||||
|
spice-protocol \
|
||||||
|
spice-server-devel \
|
||||||
|
systemd-devel \
|
||||||
|
systemtap-sdt-devel \
|
||||||
|
tar \
|
||||||
|
tesseract \
|
||||||
|
tesseract-langpack-eng \
|
||||||
|
texinfo \
|
||||||
|
usbredir-devel \
|
||||||
|
util-linux \
|
||||||
|
virglrenderer-devel \
|
||||||
|
vte291-devel \
|
||||||
|
which \
|
||||||
|
xen-devel \
|
||||||
|
xfsprogs-devel \
|
||||||
|
zlib-devel \
|
||||||
|
zlib-static && \
|
||||||
|
nosync dnf autoremove -y && \
|
||||||
|
nosync dnf clean all -y && \
|
||||||
|
rpm -qa | sort > /packages.txt && \
|
||||||
|
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
ENV LANG "en_US.UTF-8"
|
||||||
|
ENV MAKE "/usr/bin/make"
|
||||||
|
ENV NINJA "/usr/bin/ninja"
|
||||||
|
ENV PYTHON "/usr/bin/python3"
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
|
|
|
@ -1,114 +1,138 @@
|
||||||
|
# THIS FILE WAS AUTO-GENERATED
|
||||||
|
#
|
||||||
|
# $ lcitool dockerfile opensuse-leap-152 qemu
|
||||||
|
#
|
||||||
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
|
||||||
FROM registry.opensuse.org/opensuse/leap:15.2
|
FROM registry.opensuse.org/opensuse/leap:15.2
|
||||||
|
|
||||||
# Please keep this list sorted alphabetically
|
RUN zypper update -y && \
|
||||||
ENV PACKAGES \
|
zypper install -y \
|
||||||
Mesa-devel \
|
Mesa-devel \
|
||||||
alsa-lib-devel \
|
alsa-lib-devel \
|
||||||
bc \
|
bash \
|
||||||
brlapi-devel \
|
bc \
|
||||||
bzip2 \
|
brlapi-devel \
|
||||||
ca-certificates \
|
bzip2 \
|
||||||
ccache \
|
ca-certificates \
|
||||||
clang \
|
ccache \
|
||||||
ctags \
|
clang \
|
||||||
cyrus-sasl-devel \
|
ctags \
|
||||||
dbus-1 \
|
cyrus-sasl-devel \
|
||||||
diffutils \
|
dbus-1 \
|
||||||
findutils \
|
diffutils \
|
||||||
gcc \
|
findutils \
|
||||||
gcc-c++ \
|
fuse3-devel \
|
||||||
gcovr \
|
gcc \
|
||||||
gettext-runtime \
|
gcc-c++ \
|
||||||
git \
|
gcovr \
|
||||||
glib2-devel \
|
gettext-runtime \
|
||||||
glibc-locale \
|
git \
|
||||||
glibc-static \
|
glib2-devel \
|
||||||
glusterfs-devel \
|
glibc-locale \
|
||||||
gtk3-devel \
|
glibc-static \
|
||||||
hostname \
|
glusterfs-devel \
|
||||||
jemalloc-devel \
|
gtk3-devel \
|
||||||
libSDL2-devel \
|
hostname \
|
||||||
libSDL2_image-devel \
|
jemalloc-devel \
|
||||||
libaio-devel \
|
libSDL2-devel \
|
||||||
libasan6 \
|
libSDL2_image-devel \
|
||||||
libattr-devel \
|
libaio-devel \
|
||||||
libbpf-devel \
|
libasan6 \
|
||||||
libbz2-devel \
|
libattr-devel \
|
||||||
libcacard-devel \
|
libbpf-devel \
|
||||||
libcap-ng-devel \
|
libbz2-devel \
|
||||||
libcurl-devel \
|
libcacard-devel \
|
||||||
libdrm-devel \
|
libcap-ng-devel \
|
||||||
libepoxy-devel \
|
libcurl-devel \
|
||||||
libfdt-devel \
|
libdrm-devel \
|
||||||
libffi-devel \
|
libepoxy-devel \
|
||||||
libgcrypt-devel \
|
libfdt-devel \
|
||||||
libgnutls-devel \
|
libffi-devel \
|
||||||
libiscsi-devel \
|
libgcrypt-devel \
|
||||||
libjpeg8-devel \
|
libgnutls-devel \
|
||||||
libndctl-devel \
|
libiscsi-devel \
|
||||||
libnettle-devel \
|
libjpeg8-devel \
|
||||||
libnfs-devel \
|
libndctl-devel \
|
||||||
libnuma-devel \
|
libnettle-devel \
|
||||||
libpixman-1-0-devel \
|
libnfs-devel \
|
||||||
libpmem-devel \
|
libnuma-devel \
|
||||||
libpng16-devel \
|
libpixman-1-0-devel \
|
||||||
libpulse-devel \
|
libpmem-devel \
|
||||||
librbd-devel \
|
libpng16-devel \
|
||||||
libseccomp-devel \
|
libpulse-devel \
|
||||||
libselinux-devel \
|
librbd-devel \
|
||||||
libspice-server-devel \
|
libseccomp-devel \
|
||||||
libssh-devel \
|
libselinux-devel \
|
||||||
libtasn1-devel \
|
libspice-server-devel \
|
||||||
libubsan1 \
|
libssh-devel \
|
||||||
libudev-devel \
|
libtasn1-devel \
|
||||||
libusb-1_0-devel \
|
libubsan1 \
|
||||||
libxml2-devel \
|
libudev-devel \
|
||||||
libzstd-devel \
|
liburing-devel \
|
||||||
llvm \
|
libusb-1_0-devel \
|
||||||
lttng-ust-devel \
|
libxml2-devel \
|
||||||
lzo-devel \
|
libzstd-devel \
|
||||||
make \
|
llvm \
|
||||||
mkisofs \
|
lttng-ust-devel \
|
||||||
ncat \
|
lzo-devel \
|
||||||
ncurses-devel \
|
make \
|
||||||
ninja \
|
mkisofs \
|
||||||
openssh \
|
ncat \
|
||||||
pam-devel \
|
ncurses-devel \
|
||||||
perl-Test-Harness \
|
ninja \
|
||||||
perl-base \
|
openssh \
|
||||||
pkgconfig \
|
pam-devel \
|
||||||
python3-Pillow \
|
pcre-devel-static \
|
||||||
python3-PyYAML \
|
perl-Test-Harness \
|
||||||
python3-Sphinx \
|
perl-base \
|
||||||
python3-base \
|
pkgconfig \
|
||||||
python3-numpy \
|
python3-Pillow \
|
||||||
python3-opencv \
|
python3-PyYAML \
|
||||||
python3-pip \
|
python3-Sphinx \
|
||||||
python3-setuptools \
|
python3-base \
|
||||||
python3-sphinx_rtd_theme \
|
python3-numpy \
|
||||||
python3-virtualenv \
|
python3-opencv \
|
||||||
python3-wheel \
|
python3-pip \
|
||||||
rdma-core-devel \
|
python3-setuptools \
|
||||||
rpm \
|
python3-sphinx_rtd_theme \
|
||||||
sed \
|
python3-virtualenv \
|
||||||
snappy-devel \
|
python3-wheel \
|
||||||
sparse \
|
rdma-core-devel \
|
||||||
spice-protocol-devel \
|
rpm \
|
||||||
systemd-devel \
|
sed \
|
||||||
systemtap-sdt-devel \
|
snappy-devel \
|
||||||
tar \
|
sparse \
|
||||||
tesseract-ocr \
|
spice-protocol-devel \
|
||||||
tesseract-ocr-traineddata-english \
|
systemd-devel \
|
||||||
texinfo \
|
systemtap-sdt-devel \
|
||||||
usbredir-devel \
|
tar \
|
||||||
util-linux \
|
tesseract-ocr \
|
||||||
virglrenderer-devel \
|
tesseract-ocr-traineddata-english \
|
||||||
vte-devel \
|
texinfo \
|
||||||
which \
|
usbredir-devel \
|
||||||
xen-devel \
|
util-linux \
|
||||||
xfsprogs-devel \
|
virglrenderer-devel \
|
||||||
zlib-devel
|
vte-devel \
|
||||||
ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3.6
|
which \
|
||||||
|
xen-devel \
|
||||||
|
xfsprogs-devel \
|
||||||
|
zlib-devel \
|
||||||
|
zlib-devel-static && \
|
||||||
|
zypper clean --all && \
|
||||||
|
rpm -qa | sort > /packages.txt && \
|
||||||
|
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
RUN zypper update -y && zypper --non-interactive install -y $PACKAGES
|
RUN pip3 install \
|
||||||
RUN rpm -q $PACKAGES | sort > /packages.txt
|
meson==0.56.0
|
||||||
|
|
||||||
|
ENV LANG "en_US.UTF-8"
|
||||||
|
ENV MAKE "/usr/bin/make"
|
||||||
|
ENV NINJA "/usr/bin/ninja"
|
||||||
|
ENV PYTHON "/usr/bin/python3"
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
#
|
|
||||||
# Latest Ubuntu Release
|
|
||||||
#
|
|
||||||
# Useful for testing against relatively bleeding edge libraries and
|
|
||||||
# compilers. We also have seperate recipe for the most recent LTS
|
|
||||||
# release.
|
|
||||||
#
|
|
||||||
# When updating use the full tag not :latest otherwise the build
|
|
||||||
# system won't pick up that it has changed.
|
|
||||||
#
|
|
||||||
|
|
||||||
FROM docker.io/library/ubuntu:20.04
|
|
||||||
ENV PACKAGES \
|
|
||||||
ccache \
|
|
||||||
clang \
|
|
||||||
dbus \
|
|
||||||
gcc \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
glusterfs-common \
|
|
||||||
libaio-dev \
|
|
||||||
libattr1-dev \
|
|
||||||
libbrlapi-dev \
|
|
||||||
libbz2-dev \
|
|
||||||
libcacard-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libdrm-dev \
|
|
||||||
libepoxy-dev \
|
|
||||||
libfdt-dev \
|
|
||||||
libffi-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libgnutls28-dev \
|
|
||||||
libgtk-3-dev \
|
|
||||||
libibverbs-dev \
|
|
||||||
libiscsi-dev \
|
|
||||||
libjemalloc-dev \
|
|
||||||
libjpeg-turbo8-dev \
|
|
||||||
liblzo2-dev \
|
|
||||||
libncurses5-dev \
|
|
||||||
libncursesw5-dev \
|
|
||||||
libnfs-dev \
|
|
||||||
libnuma-dev \
|
|
||||||
libpixman-1-dev \
|
|
||||||
libpng-dev \
|
|
||||||
librados-dev \
|
|
||||||
librbd-dev \
|
|
||||||
librdmacm-dev \
|
|
||||||
libsasl2-dev \
|
|
||||||
libsdl2-dev \
|
|
||||||
libseccomp-dev \
|
|
||||||
libsnappy-dev \
|
|
||||||
libspice-protocol-dev \
|
|
||||||
libspice-server-dev \
|
|
||||||
libssh-dev \
|
|
||||||
libusb-1.0-0-dev \
|
|
||||||
libusbredirhost-dev \
|
|
||||||
libvdeplug-dev \
|
|
||||||
libvte-2.91-dev \
|
|
||||||
libxen-dev \
|
|
||||||
libzstd-dev \
|
|
||||||
make \
|
|
||||||
ninja-build \
|
|
||||||
python3-yaml \
|
|
||||||
python3-sphinx \
|
|
||||||
python3-sphinx-rtd-theme \
|
|
||||||
sparse \
|
|
||||||
xfslibs-dev
|
|
||||||
RUN apt-get update && \
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get -y install $PACKAGES
|
|
||||||
RUN dpkg -l $PACKAGES | sort > /packages.txt
|
|
|
@ -1,117 +1,146 @@
|
||||||
FROM docker.io/library/ubuntu:18.04
|
# THIS FILE WAS AUTO-GENERATED
|
||||||
ENV PACKAGES \
|
#
|
||||||
bc \
|
# $ lcitool dockerfile ubuntu-1804 qemu
|
||||||
bsdmainutils \
|
#
|
||||||
bzip2 \
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
clang \
|
|
||||||
dbus \
|
|
||||||
debianutils \
|
|
||||||
diffutils \
|
|
||||||
exuberant-ctags \
|
|
||||||
findutils \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
gcovr \
|
|
||||||
genisoimage \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
glusterfs-common \
|
|
||||||
hostname \
|
|
||||||
libaio-dev \
|
|
||||||
libasan5 \
|
|
||||||
libasound2-dev \
|
|
||||||
libattr1-dev \
|
|
||||||
libbrlapi-dev \
|
|
||||||
libbz2-dev \
|
|
||||||
libc6-dev \
|
|
||||||
libcacard-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libcapstone-dev \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libdaxctl-dev \
|
|
||||||
libdrm-dev \
|
|
||||||
libepoxy-dev \
|
|
||||||
libfdt-dev \
|
|
||||||
libffi-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libgcrypt20-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libgnutls28-dev \
|
|
||||||
libgtk-3-dev \
|
|
||||||
libibverbs-dev \
|
|
||||||
libiscsi-dev \
|
|
||||||
libjemalloc-dev \
|
|
||||||
libjpeg-turbo8-dev \
|
|
||||||
liblttng-ust-dev \
|
|
||||||
liblzo2-dev \
|
|
||||||
libncursesw5-dev \
|
|
||||||
libnfs-dev \
|
|
||||||
libnuma-dev \
|
|
||||||
libpam0g-dev \
|
|
||||||
libpixman-1-dev \
|
|
||||||
libpmem-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libpulse-dev \
|
|
||||||
librbd-dev \
|
|
||||||
librdmacm-dev \
|
|
||||||
libsasl2-dev \
|
|
||||||
libsdl2-dev \
|
|
||||||
libsdl2-image-dev \
|
|
||||||
libseccomp-dev \
|
|
||||||
libselinux-dev \
|
|
||||||
libsnappy-dev \
|
|
||||||
libspice-protocol-dev \
|
|
||||||
libspice-server-dev \
|
|
||||||
libssh-dev \
|
|
||||||
libsystemd-dev \
|
|
||||||
libtasn1-6-dev \
|
|
||||||
libtest-harness-perl \
|
|
||||||
libubsan1 \
|
|
||||||
libudev-dev \
|
|
||||||
libusb-1.0-0-dev \
|
|
||||||
libusbredirhost-dev \
|
|
||||||
libvdeplug-dev \
|
|
||||||
libvirglrenderer-dev \
|
|
||||||
libvte-2.91-dev \
|
|
||||||
libxen-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libzstd-dev \
|
|
||||||
llvm \
|
|
||||||
locales \
|
|
||||||
make \
|
|
||||||
multipath-tools \
|
|
||||||
netcat-openbsd \
|
|
||||||
nettle-dev \
|
|
||||||
ninja-build \
|
|
||||||
openssh-client \
|
|
||||||
perl-base \
|
|
||||||
pkgconf \
|
|
||||||
python3 \
|
|
||||||
python3-numpy \
|
|
||||||
python3-opencv \
|
|
||||||
python3-pillow \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-sphinx \
|
|
||||||
python3-sphinx-rtd-theme \
|
|
||||||
python3-venv \
|
|
||||||
python3-wheel \
|
|
||||||
python3-yaml \
|
|
||||||
rpm2cpio \
|
|
||||||
sed \
|
|
||||||
sparse \
|
|
||||||
systemtap-sdt-dev \
|
|
||||||
tar \
|
|
||||||
tesseract-ocr \
|
|
||||||
tesseract-ocr-eng \
|
|
||||||
texinfo \
|
|
||||||
xfslibs-dev \
|
|
||||||
zlib1g-dev
|
|
||||||
RUN apt-get update && \
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get -y install $PACKAGES
|
|
||||||
RUN dpkg -l $PACKAGES | sort > /packages.txt
|
|
||||||
|
|
||||||
|
FROM docker.io/library/ubuntu:18.04
|
||||||
|
|
||||||
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y eatmydata && \
|
||||||
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
|
bash \
|
||||||
|
bc \
|
||||||
|
bsdmainutils \
|
||||||
|
bzip2 \
|
||||||
|
ca-certificates \
|
||||||
|
ccache \
|
||||||
|
clang \
|
||||||
|
dbus \
|
||||||
|
debianutils \
|
||||||
|
diffutils \
|
||||||
|
exuberant-ctags \
|
||||||
|
findutils \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
gcovr \
|
||||||
|
genisoimage \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
glusterfs-common \
|
||||||
|
hostname \
|
||||||
|
libaio-dev \
|
||||||
|
libasan5 \
|
||||||
|
libasound2-dev \
|
||||||
|
libattr1-dev \
|
||||||
|
libbrlapi-dev \
|
||||||
|
libbz2-dev \
|
||||||
|
libc6-dev \
|
||||||
|
libcacard-dev \
|
||||||
|
libcap-ng-dev \
|
||||||
|
libcapstone-dev \
|
||||||
|
libcurl4-gnutls-dev \
|
||||||
|
libdaxctl-dev \
|
||||||
|
libdrm-dev \
|
||||||
|
libepoxy-dev \
|
||||||
|
libfdt-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libgcrypt20-dev \
|
||||||
|
libglib2.0-dev \
|
||||||
|
libgnutls28-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
libibverbs-dev \
|
||||||
|
libiscsi-dev \
|
||||||
|
libjemalloc-dev \
|
||||||
|
libjpeg-turbo8-dev \
|
||||||
|
liblttng-ust-dev \
|
||||||
|
liblzo2-dev \
|
||||||
|
libncursesw5-dev \
|
||||||
|
libnfs-dev \
|
||||||
|
libnuma-dev \
|
||||||
|
libpam0g-dev \
|
||||||
|
libpcre2-dev \
|
||||||
|
libpixman-1-dev \
|
||||||
|
libpmem-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
librbd-dev \
|
||||||
|
librdmacm-dev \
|
||||||
|
libsasl2-dev \
|
||||||
|
libsdl2-dev \
|
||||||
|
libsdl2-image-dev \
|
||||||
|
libseccomp-dev \
|
||||||
|
libselinux1-dev \
|
||||||
|
libsnappy-dev \
|
||||||
|
libspice-protocol-dev \
|
||||||
|
libspice-server-dev \
|
||||||
|
libssh-dev \
|
||||||
|
libsystemd-dev \
|
||||||
|
libtasn1-6-dev \
|
||||||
|
libtest-harness-perl \
|
||||||
|
libubsan1 \
|
||||||
|
libudev-dev \
|
||||||
|
libusb-1.0-0-dev \
|
||||||
|
libusbredirhost-dev \
|
||||||
|
libvdeplug-dev \
|
||||||
|
libvirglrenderer-dev \
|
||||||
|
libvte-2.91-dev \
|
||||||
|
libxen-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libzstd-dev \
|
||||||
|
llvm \
|
||||||
|
locales \
|
||||||
|
make \
|
||||||
|
multipath-tools \
|
||||||
|
netcat-openbsd \
|
||||||
|
nettle-dev \
|
||||||
|
ninja-build \
|
||||||
|
openssh-client \
|
||||||
|
perl-base \
|
||||||
|
pkgconf \
|
||||||
|
python3 \
|
||||||
|
python3-numpy \
|
||||||
|
python3-opencv \
|
||||||
|
python3-pillow \
|
||||||
|
python3-pip \
|
||||||
|
python3-setuptools \
|
||||||
|
python3-sphinx \
|
||||||
|
python3-sphinx-rtd-theme \
|
||||||
|
python3-venv \
|
||||||
|
python3-wheel \
|
||||||
|
python3-yaml \
|
||||||
|
rpm2cpio \
|
||||||
|
sed \
|
||||||
|
sparse \
|
||||||
|
systemtap-sdt-dev \
|
||||||
|
tar \
|
||||||
|
tesseract-ocr \
|
||||||
|
tesseract-ocr-eng \
|
||||||
|
texinfo \
|
||||||
|
xfslibs-dev \
|
||||||
|
zlib1g-dev && \
|
||||||
|
eatmydata apt-get autoremove -y && \
|
||||||
|
eatmydata apt-get autoclean -y && \
|
||||||
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
|
dpkg-reconfigure locales && \
|
||||||
|
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
|
||||||
|
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
RUN pip3 install \
|
||||||
|
meson==0.56.0
|
||||||
|
|
||||||
|
ENV LANG "en_US.UTF-8"
|
||||||
|
ENV MAKE "/usr/bin/make"
|
||||||
|
ENV NINJA "/usr/bin/ninja"
|
||||||
|
ENV PYTHON "/usr/bin/python3"
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
# https://bugs.launchpad.net/qemu/+bug/1838763
|
# https://bugs.launchpad.net/qemu/+bug/1838763
|
||||||
ENV QEMU_CONFIGURE_OPTS --disable-libssh
|
ENV QEMU_CONFIGURE_OPTS --disable-libssh
|
||||||
|
|
|
@ -1,119 +1,149 @@
|
||||||
FROM docker.io/library/ubuntu:20.04
|
# THIS FILE WAS AUTO-GENERATED
|
||||||
ENV PACKAGES \
|
#
|
||||||
bc \
|
# $ lcitool dockerfile ubuntu-2004 qemu
|
||||||
bsdmainutils \
|
#
|
||||||
bzip2 \
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
ca-certificates \
|
|
||||||
ccache \
|
|
||||||
clang \
|
|
||||||
dbus \
|
|
||||||
debianutils \
|
|
||||||
diffutils \
|
|
||||||
exuberant-ctags \
|
|
||||||
findutils \
|
|
||||||
g++ \
|
|
||||||
gcc \
|
|
||||||
gcovr \
|
|
||||||
genisoimage \
|
|
||||||
gettext \
|
|
||||||
git \
|
|
||||||
hostname \
|
|
||||||
libaio-dev \
|
|
||||||
libasan5 \
|
|
||||||
libasound2-dev \
|
|
||||||
libattr1-dev \
|
|
||||||
libbrlapi-dev \
|
|
||||||
libbz2-dev \
|
|
||||||
libc6-dev \
|
|
||||||
libcacard-dev \
|
|
||||||
libcap-ng-dev \
|
|
||||||
libcapstone-dev \
|
|
||||||
libcurl4-gnutls-dev \
|
|
||||||
libdaxctl-dev \
|
|
||||||
libdrm-dev \
|
|
||||||
libepoxy-dev \
|
|
||||||
libfdt-dev \
|
|
||||||
libffi-dev \
|
|
||||||
libgbm-dev \
|
|
||||||
libgcrypt20-dev \
|
|
||||||
libglib2.0-dev \
|
|
||||||
libglusterfs-dev \
|
|
||||||
libgnutls28-dev \
|
|
||||||
libgtk-3-dev \
|
|
||||||
libibverbs-dev \
|
|
||||||
libiscsi-dev \
|
|
||||||
libjemalloc-dev \
|
|
||||||
libjpeg-turbo8-dev \
|
|
||||||
liblttng-ust-dev \
|
|
||||||
liblzo2-dev \
|
|
||||||
libncursesw5-dev \
|
|
||||||
libnfs-dev \
|
|
||||||
libnuma-dev \
|
|
||||||
libpam0g-dev \
|
|
||||||
libpixman-1-dev \
|
|
||||||
libpmem-dev \
|
|
||||||
libpng-dev \
|
|
||||||
libpulse-dev \
|
|
||||||
librbd-dev \
|
|
||||||
librdmacm-dev \
|
|
||||||
libsasl2-dev \
|
|
||||||
libsdl2-dev \
|
|
||||||
libsdl2-image-dev \
|
|
||||||
libseccomp-dev \
|
|
||||||
libselinux-dev \
|
|
||||||
libslirp-dev \
|
|
||||||
libsnappy-dev \
|
|
||||||
libspice-protocol-dev \
|
|
||||||
libspice-server-dev \
|
|
||||||
libssh-dev \
|
|
||||||
libsystemd-dev \
|
|
||||||
libtasn1-6-dev \
|
|
||||||
libtest-harness-perl \
|
|
||||||
libubsan1 \
|
|
||||||
libudev-dev \
|
|
||||||
libusb-1.0-0-dev \
|
|
||||||
libusbredirhost-dev \
|
|
||||||
libvdeplug-dev \
|
|
||||||
libvirglrenderer-dev \
|
|
||||||
libvte-2.91-dev \
|
|
||||||
libxen-dev \
|
|
||||||
libxml2-dev \
|
|
||||||
libzstd-dev \
|
|
||||||
llvm \
|
|
||||||
locales \
|
|
||||||
make \
|
|
||||||
multipath-tools \
|
|
||||||
ncat \
|
|
||||||
nettle-dev \
|
|
||||||
ninja-build \
|
|
||||||
openssh-client \
|
|
||||||
perl-base \
|
|
||||||
pkgconf \
|
|
||||||
python3 \
|
|
||||||
python3-numpy \
|
|
||||||
python3-opencv \
|
|
||||||
python3-pillow \
|
|
||||||
python3-pip \
|
|
||||||
python3-setuptools \
|
|
||||||
python3-sphinx \
|
|
||||||
python3-sphinx-rtd-theme \
|
|
||||||
python3-venv \
|
|
||||||
python3-wheel \
|
|
||||||
python3-yaml \
|
|
||||||
rpm2cpio \
|
|
||||||
sed \
|
|
||||||
sparse \
|
|
||||||
systemtap-sdt-dev \
|
|
||||||
tar \
|
|
||||||
tesseract-ocr \
|
|
||||||
tesseract-ocr-eng \
|
|
||||||
texinfo \
|
|
||||||
xfslibs-dev \
|
|
||||||
zlib1g-dev
|
|
||||||
RUN apt-get update && \
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get -y install $PACKAGES
|
|
||||||
RUN dpkg -l $PACKAGES | sort > /packages.txt
|
|
||||||
|
|
||||||
|
FROM docker.io/library/ubuntu:20.04
|
||||||
|
|
||||||
|
RUN export DEBIAN_FRONTEND=noninteractive && \
|
||||||
|
apt-get update && \
|
||||||
|
apt-get install -y eatmydata && \
|
||||||
|
eatmydata apt-get dist-upgrade -y && \
|
||||||
|
eatmydata apt-get install --no-install-recommends -y \
|
||||||
|
bash \
|
||||||
|
bc \
|
||||||
|
bsdmainutils \
|
||||||
|
bzip2 \
|
||||||
|
ca-certificates \
|
||||||
|
ccache \
|
||||||
|
clang \
|
||||||
|
dbus \
|
||||||
|
debianutils \
|
||||||
|
diffutils \
|
||||||
|
exuberant-ctags \
|
||||||
|
findutils \
|
||||||
|
g++ \
|
||||||
|
gcc \
|
||||||
|
gcovr \
|
||||||
|
genisoimage \
|
||||||
|
gettext \
|
||||||
|
git \
|
||||||
|
hostname \
|
||||||
|
libaio-dev \
|
||||||
|
libasan5 \
|
||||||
|
libasound2-dev \
|
||||||
|
libattr1-dev \
|
||||||
|
libbrlapi-dev \
|
||||||
|
libbz2-dev \
|
||||||
|
libc6-dev \
|
||||||
|
libcacard-dev \
|
||||||
|
libcap-ng-dev \
|
||||||
|
libcapstone-dev \
|
||||||
|
libcurl4-gnutls-dev \
|
||||||
|
libdaxctl-dev \
|
||||||
|
libdrm-dev \
|
||||||
|
libepoxy-dev \
|
||||||
|
libfdt-dev \
|
||||||
|
libffi-dev \
|
||||||
|
libfuse3-dev \
|
||||||
|
libgbm-dev \
|
||||||
|
libgcrypt20-dev \
|
||||||
|
libglib2.0-dev \
|
||||||
|
libglusterfs-dev \
|
||||||
|
libgnutls28-dev \
|
||||||
|
libgtk-3-dev \
|
||||||
|
libibverbs-dev \
|
||||||
|
libiscsi-dev \
|
||||||
|
libjemalloc-dev \
|
||||||
|
libjpeg-turbo8-dev \
|
||||||
|
liblttng-ust-dev \
|
||||||
|
liblzo2-dev \
|
||||||
|
libncursesw5-dev \
|
||||||
|
libnfs-dev \
|
||||||
|
libnuma-dev \
|
||||||
|
libpam0g-dev \
|
||||||
|
libpcre2-dev \
|
||||||
|
libpixman-1-dev \
|
||||||
|
libpmem-dev \
|
||||||
|
libpng-dev \
|
||||||
|
libpulse-dev \
|
||||||
|
librbd-dev \
|
||||||
|
librdmacm-dev \
|
||||||
|
libsasl2-dev \
|
||||||
|
libsdl2-dev \
|
||||||
|
libsdl2-image-dev \
|
||||||
|
libseccomp-dev \
|
||||||
|
libselinux1-dev \
|
||||||
|
libslirp-dev \
|
||||||
|
libsnappy-dev \
|
||||||
|
libspice-protocol-dev \
|
||||||
|
libspice-server-dev \
|
||||||
|
libssh-dev \
|
||||||
|
libsystemd-dev \
|
||||||
|
libtasn1-6-dev \
|
||||||
|
libtest-harness-perl \
|
||||||
|
libubsan1 \
|
||||||
|
libudev-dev \
|
||||||
|
libusb-1.0-0-dev \
|
||||||
|
libusbredirhost-dev \
|
||||||
|
libvdeplug-dev \
|
||||||
|
libvirglrenderer-dev \
|
||||||
|
libvte-2.91-dev \
|
||||||
|
libxen-dev \
|
||||||
|
libxml2-dev \
|
||||||
|
libzstd-dev \
|
||||||
|
llvm \
|
||||||
|
locales \
|
||||||
|
make \
|
||||||
|
multipath-tools \
|
||||||
|
ncat \
|
||||||
|
nettle-dev \
|
||||||
|
ninja-build \
|
||||||
|
openssh-client \
|
||||||
|
perl-base \
|
||||||
|
pkgconf \
|
||||||
|
python3 \
|
||||||
|
python3-numpy \
|
||||||
|
python3-opencv \
|
||||||
|
python3-pillow \
|
||||||
|
python3-pip \
|
||||||
|
python3-setuptools \
|
||||||
|
python3-sphinx \
|
||||||
|
python3-sphinx-rtd-theme \
|
||||||
|
python3-venv \
|
||||||
|
python3-wheel \
|
||||||
|
python3-yaml \
|
||||||
|
rpm2cpio \
|
||||||
|
sed \
|
||||||
|
sparse \
|
||||||
|
systemtap-sdt-dev \
|
||||||
|
tar \
|
||||||
|
tesseract-ocr \
|
||||||
|
tesseract-ocr-eng \
|
||||||
|
texinfo \
|
||||||
|
xfslibs-dev \
|
||||||
|
zlib1g-dev && \
|
||||||
|
eatmydata apt-get autoremove -y && \
|
||||||
|
eatmydata apt-get autoclean -y && \
|
||||||
|
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
|
||||||
|
dpkg-reconfigure locales && \
|
||||||
|
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
|
||||||
|
mkdir -p /usr/libexec/ccache-wrappers && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
|
||||||
|
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
|
||||||
|
|
||||||
|
RUN pip3 install \
|
||||||
|
meson==0.56.0
|
||||||
|
|
||||||
|
ENV LANG "en_US.UTF-8"
|
||||||
|
ENV MAKE "/usr/bin/make"
|
||||||
|
ENV NINJA "/usr/bin/ninja"
|
||||||
|
ENV PYTHON "/usr/bin/python3"
|
||||||
|
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
|
||||||
# Apply patch https://reviews.llvm.org/D75820
|
# Apply patch https://reviews.llvm.org/D75820
|
||||||
# This is required for TSan in clang-10 to compile with QEMU.
|
# This is required for TSan in clang-10 to compile with QEMU.
|
||||||
RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
|
RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
LCITOOL_REFRESH = $(SRC_PATH)/tests/lcitool/refresh
|
||||||
|
|
||||||
|
lcitool:
|
||||||
|
@echo 'Manage build environment manifests'
|
||||||
|
@echo
|
||||||
|
@echo 'Available targets:'
|
||||||
|
@echo
|
||||||
|
@echo ' lcitool: Print this help.'
|
||||||
|
@echo ' lcitool-refresh: Re-generate all build environment manifests.'
|
||||||
|
@echo
|
||||||
|
|
||||||
|
lcitool-help: lcitool
|
||||||
|
|
||||||
|
lcitool-refresh:
|
||||||
|
$(call quiet-command, git submodule update --init $(SRC_PATH)/tests/lcitool/libvirt-ci)
|
||||||
|
$(call quiet-command, $(LCITOOL_REFRESH))
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 29cec2153b9a4dbb2e66f1cbc9866a4eff519cfd
|
|
@ -0,0 +1,116 @@
|
||||||
|
---
|
||||||
|
packages:
|
||||||
|
- alsa
|
||||||
|
- bash
|
||||||
|
- bc
|
||||||
|
- brlapi
|
||||||
|
- bzip2
|
||||||
|
- bzip2-libs
|
||||||
|
- capstone
|
||||||
|
- ccache
|
||||||
|
- clang
|
||||||
|
- column
|
||||||
|
- ctags
|
||||||
|
- cyrus-sasl
|
||||||
|
- daxctl
|
||||||
|
- dbus-daemon
|
||||||
|
- device-mapper-multipath
|
||||||
|
- diffutils
|
||||||
|
- dtrace
|
||||||
|
- findutils
|
||||||
|
- fuse3
|
||||||
|
- g++
|
||||||
|
- gcc
|
||||||
|
- gcovr
|
||||||
|
- gettext
|
||||||
|
- genisoimage
|
||||||
|
- glib2
|
||||||
|
- glib2-static
|
||||||
|
- glibc-static
|
||||||
|
- glusterfs
|
||||||
|
- gnutls
|
||||||
|
- gtk3
|
||||||
|
- hostname
|
||||||
|
- libaio
|
||||||
|
- libattr
|
||||||
|
- libasan
|
||||||
|
- libbpf
|
||||||
|
- libcacard
|
||||||
|
- libcap-ng
|
||||||
|
- libcurl
|
||||||
|
- libdrm
|
||||||
|
- libepoxy
|
||||||
|
- libfdt
|
||||||
|
- libffi
|
||||||
|
- libgcrypt
|
||||||
|
- libibverbs
|
||||||
|
- libiscsi
|
||||||
|
- libjemalloc
|
||||||
|
- libjpeg
|
||||||
|
- libnfs
|
||||||
|
- libnuma
|
||||||
|
- libpmem
|
||||||
|
- libpng
|
||||||
|
- librbd
|
||||||
|
- librdmacm
|
||||||
|
- libseccomp
|
||||||
|
- libselinux
|
||||||
|
- libslirp
|
||||||
|
- libssh
|
||||||
|
- libtasn1
|
||||||
|
- libubsan
|
||||||
|
- libudev
|
||||||
|
- liburing
|
||||||
|
- libusbx
|
||||||
|
- libvdeplug
|
||||||
|
- libxml2
|
||||||
|
- libzstd
|
||||||
|
- llvm
|
||||||
|
- lttng-ust
|
||||||
|
- lzo
|
||||||
|
- netcat
|
||||||
|
- nettle
|
||||||
|
- ninja
|
||||||
|
- nsis
|
||||||
|
- make
|
||||||
|
- mesa-libgbm
|
||||||
|
- meson
|
||||||
|
- ncursesw
|
||||||
|
- pam
|
||||||
|
- pcre-static
|
||||||
|
- perl
|
||||||
|
- perl-Test-Harness
|
||||||
|
- pixman
|
||||||
|
- pkg-config
|
||||||
|
- pulseaudio
|
||||||
|
- python3
|
||||||
|
- python3-PyYAML
|
||||||
|
- python3-numpy
|
||||||
|
- python3-opencv
|
||||||
|
- python3-pillow
|
||||||
|
- python3-pip
|
||||||
|
- python3-sphinx
|
||||||
|
- python3-sphinx-rtd-theme
|
||||||
|
- python3-virtualenv
|
||||||
|
- rpm2cpio
|
||||||
|
- sdl2
|
||||||
|
- sdl2-image
|
||||||
|
- sed
|
||||||
|
- snappy
|
||||||
|
- sparse
|
||||||
|
- spice-protocol
|
||||||
|
- spice-server
|
||||||
|
- ssh-client
|
||||||
|
- systemd
|
||||||
|
- tar
|
||||||
|
- tesseract
|
||||||
|
- tesseract-eng
|
||||||
|
- texinfo
|
||||||
|
- usbredir
|
||||||
|
- virglrenderer
|
||||||
|
- vte
|
||||||
|
- which
|
||||||
|
- xen
|
||||||
|
- xfsprogs
|
||||||
|
- zlib
|
||||||
|
- zlib-static
|
|
@ -0,0 +1,96 @@
|
||||||
|
#!/usr/bin/python3
|
||||||
|
#
|
||||||
|
# Re-generate container recipes
|
||||||
|
#
|
||||||
|
# This script uses the "lcitool" available from
|
||||||
|
#
|
||||||
|
# https://gitlab.com/libvirt/libvirt-ci
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 Red Hat Inc.
|
||||||
|
#
|
||||||
|
# This work is licensed under the terms of the GNU GPL, version 2
|
||||||
|
# or (at your option) any later version. See the COPYING file in
|
||||||
|
# the top-level directory.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
if len(sys.argv) != 1:
|
||||||
|
print("syntax: %s" % sys.argv[0], file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
self_dir = Path(__file__).parent
|
||||||
|
src_dir = self_dir.parent.parent
|
||||||
|
dockerfiles_dir = Path(src_dir, "tests", "docker", "dockerfiles")
|
||||||
|
|
||||||
|
lcitool_path = Path(self_dir, "libvirt-ci", "lcitool")
|
||||||
|
|
||||||
|
lcitool_cmd = [lcitool_path, "--data-dir", self_dir]
|
||||||
|
|
||||||
|
def atomic_write(filename, content):
|
||||||
|
tmp = filename.with_suffix(filename.suffix + ".tmp")
|
||||||
|
try:
|
||||||
|
with tmp.open("w") as fp:
|
||||||
|
print(content, file=fp, end="")
|
||||||
|
tmp.rename(filename)
|
||||||
|
except Exception as ex:
|
||||||
|
tmp.unlink()
|
||||||
|
raise
|
||||||
|
|
||||||
|
def generate(filename, cmd, trailer):
|
||||||
|
print("Generate %s" % filename)
|
||||||
|
lcitool=subprocess.run(cmd, capture_output=True)
|
||||||
|
|
||||||
|
if lcitool.returncode != 0:
|
||||||
|
raise Exception("Failed to generate %s: %s" % (filename, lcitool.stderr))
|
||||||
|
|
||||||
|
content = lcitool.stdout.decode("utf8")
|
||||||
|
if trailer is not None:
|
||||||
|
content += trailer
|
||||||
|
atomic_write(filename, content)
|
||||||
|
|
||||||
|
def generate_dockerfile(host, target, cross=None, trailer=None):
|
||||||
|
filename = Path(src_dir, "tests", "docker", "dockerfiles", host + ".docker")
|
||||||
|
cmd = lcitool_cmd + ["dockerfile"]
|
||||||
|
if cross is not None:
|
||||||
|
cmd.extend(["--cross", cross])
|
||||||
|
cmd.extend([target, "qemu"])
|
||||||
|
generate(filename, cmd, trailer)
|
||||||
|
|
||||||
|
def generate_cirrus(target, trailer=None):
|
||||||
|
filename = Path(src_dir, ".gitlab-ci.d", "cirrus", target + ".vars")
|
||||||
|
cmd = [lcitool_path, "variables", target, "qemu"]
|
||||||
|
generate(filename, cmd, trailer)
|
||||||
|
|
||||||
|
ubuntu1804_skipssh = [
|
||||||
|
"# https://bugs.launchpad.net/qemu/+bug/1838763\n",
|
||||||
|
"ENV QEMU_CONFIGURE_OPTS --disable-libssh\n"
|
||||||
|
]
|
||||||
|
|
||||||
|
ubuntu2004_tsanhack = [
|
||||||
|
"# Apply patch https://reviews.llvm.org/D75820\n",
|
||||||
|
"# This is required for TSan in clang-10 to compile with QEMU.\n",
|
||||||
|
"RUN sed -i 's/^const/static const/g' /usr/lib/llvm-10/lib/clang/10.0.0/include/sanitizer/tsan_interface.h\n"
|
||||||
|
]
|
||||||
|
|
||||||
|
try:
|
||||||
|
generate_dockerfile("centos8", "centos-8")
|
||||||
|
generate_dockerfile("fedora", "fedora-35")
|
||||||
|
generate_dockerfile("ubuntu1804", "ubuntu-1804",
|
||||||
|
trailer="".join(ubuntu1804_skipssh))
|
||||||
|
generate_dockerfile("ubuntu2004", "ubuntu-2004",
|
||||||
|
trailer="".join(ubuntu2004_tsanhack))
|
||||||
|
generate_dockerfile("opensuse-leap", "opensuse-leap-152")
|
||||||
|
generate_dockerfile("alpine", "alpine-edge")
|
||||||
|
|
||||||
|
generate_cirrus("freebsd-12")
|
||||||
|
generate_cirrus("freebsd-13")
|
||||||
|
generate_cirrus("macos-11")
|
||||||
|
|
||||||
|
sys.exit(0)
|
||||||
|
except Exception as ex:
|
||||||
|
print(str(ex), file=sys.stderr)
|
||||||
|
sys.exit(1)
|
|
@ -225,8 +225,14 @@ for target in $target_list; do
|
||||||
echo "TARGET_NAME=$arch" >> $config_target_mak
|
echo "TARGET_NAME=$arch" >> $config_target_mak
|
||||||
echo "target=$target" >> $config_target_mak
|
echo "target=$target" >> $config_target_mak
|
||||||
case $target in
|
case $target in
|
||||||
*-linux-user | *-bsd-user)
|
*-linux-user)
|
||||||
echo "CONFIG_USER_ONLY=y" >> $config_target_mak
|
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
|
echo "QEMU=$PWD/qemu-$arch" >> $config_target_mak
|
||||||
;;
|
;;
|
||||||
*-softmmu)
|
*-softmmu)
|
||||||
|
|
|
@ -18,31 +18,31 @@ from single: f32(-inf:0xff800000)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
|
@ -72,19 +72,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
|
@ -96,7 +96,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
to uint32: 1 (OK)
|
to uint32: 1 (OK)
|
||||||
to uint64: 1 (OK)
|
to uint64: 1 (OK)
|
||||||
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
to int32: 1 (INEXACT )
|
to int32: 1 (INEXACT )
|
||||||
to int64: 1 (INEXACT )
|
to int64: 1 (INEXACT )
|
||||||
to uint32: 1 (INEXACT )
|
to uint32: 1 (INEXACT )
|
||||||
|
@ -108,61 +108,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
to uint32: 2 (OK)
|
to uint32: 2 (OK)
|
||||||
to uint64: 2 (OK)
|
to uint64: 2 (OK)
|
||||||
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
to int32: 2 (INEXACT )
|
to int32: 2 (INEXACT )
|
||||||
to int64: 2 (INEXACT )
|
to int64: 2 (INEXACT )
|
||||||
to uint32: 2 (INEXACT )
|
to uint32: 2 (INEXACT )
|
||||||
to uint64: 2 (INEXACT )
|
to uint64: 2 (INEXACT )
|
||||||
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
to int32: 3 (INEXACT )
|
to int32: 3 (INEXACT )
|
||||||
to int64: 3 (INEXACT )
|
to int64: 3 (INEXACT )
|
||||||
to uint32: 3 (INEXACT )
|
to uint32: 3 (INEXACT )
|
||||||
to uint64: 3 (INEXACT )
|
to uint64: 3 (INEXACT )
|
||||||
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
to int32: 65503 (OK)
|
to int32: 65503 (OK)
|
||||||
to int64: 65503 (OK)
|
to int64: 65503 (OK)
|
||||||
to uint32: 65503 (OK)
|
to uint32: 65503 (OK)
|
||||||
to uint64: 65503 (OK)
|
to uint64: 65503 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
to int32: 65504 (OK)
|
to int32: 65504 (OK)
|
||||||
to int64: 65504 (OK)
|
to int64: 65504 (OK)
|
||||||
to uint32: 65504 (OK)
|
to uint32: 65504 (OK)
|
||||||
to uint64: 65504 (OK)
|
to uint64: 65504 (OK)
|
||||||
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
to int32: 65505 (OK)
|
to int32: 65505 (OK)
|
||||||
to int64: 65505 (OK)
|
to int64: 65505 (OK)
|
||||||
to uint32: 65505 (OK)
|
to uint32: 65505 (OK)
|
||||||
to uint64: 65505 (OK)
|
to uint64: 65505 (OK)
|
||||||
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
to int32: 131007 (OK)
|
to int32: 131007 (OK)
|
||||||
to int64: 131007 (OK)
|
to int64: 131007 (OK)
|
||||||
to uint32: 131007 (OK)
|
to uint32: 131007 (OK)
|
||||||
to uint64: 131007 (OK)
|
to uint64: 131007 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
to int32: 131008 (OK)
|
to int32: 131008 (OK)
|
||||||
to int64: 131008 (OK)
|
to int64: 131008 (OK)
|
||||||
to uint32: 131008 (OK)
|
to uint32: 131008 (OK)
|
||||||
to uint64: 131008 (OK)
|
to uint64: 131008 (OK)
|
||||||
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
to int32: 131009 (OK)
|
to int32: 131009 (OK)
|
||||||
to int64: 131009 (OK)
|
to int64: 131009 (OK)
|
||||||
to uint32: 131009 (OK)
|
to uint32: 131009 (OK)
|
||||||
to uint64: 131009 (OK)
|
to uint64: 131009 (OK)
|
||||||
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
to uint64: -1 (INVALID)
|
to uint64: -1 (INVALID)
|
||||||
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
|
@ -205,31 +205,31 @@ from single: f32(-inf:0xff800000)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
|
@ -259,19 +259,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
|
@ -283,7 +283,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
to uint32: 1 (OK)
|
to uint32: 1 (OK)
|
||||||
to uint64: 1 (OK)
|
to uint64: 1 (OK)
|
||||||
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
to int32: 1 (INEXACT )
|
to int32: 1 (INEXACT )
|
||||||
to int64: 1 (INEXACT )
|
to int64: 1 (INEXACT )
|
||||||
to uint32: 1 (INEXACT )
|
to uint32: 1 (INEXACT )
|
||||||
|
@ -295,61 +295,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
to uint32: 2 (OK)
|
to uint32: 2 (OK)
|
||||||
to uint64: 2 (OK)
|
to uint64: 2 (OK)
|
||||||
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
to int32: 2 (INEXACT )
|
to int32: 2 (INEXACT )
|
||||||
to int64: 2 (INEXACT )
|
to int64: 2 (INEXACT )
|
||||||
to uint32: 2 (INEXACT )
|
to uint32: 2 (INEXACT )
|
||||||
to uint64: 2 (INEXACT )
|
to uint64: 2 (INEXACT )
|
||||||
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
to int32: 3 (INEXACT )
|
to int32: 3 (INEXACT )
|
||||||
to int64: 3 (INEXACT )
|
to int64: 3 (INEXACT )
|
||||||
to uint32: 3 (INEXACT )
|
to uint32: 3 (INEXACT )
|
||||||
to uint64: 3 (INEXACT )
|
to uint64: 3 (INEXACT )
|
||||||
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
to int32: 65503 (OK)
|
to int32: 65503 (OK)
|
||||||
to int64: 65503 (OK)
|
to int64: 65503 (OK)
|
||||||
to uint32: 65503 (OK)
|
to uint32: 65503 (OK)
|
||||||
to uint64: 65503 (OK)
|
to uint64: 65503 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
to int32: 65504 (OK)
|
to int32: 65504 (OK)
|
||||||
to int64: 65504 (OK)
|
to int64: 65504 (OK)
|
||||||
to uint32: 65504 (OK)
|
to uint32: 65504 (OK)
|
||||||
to uint64: 65504 (OK)
|
to uint64: 65504 (OK)
|
||||||
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
to int32: 65505 (OK)
|
to int32: 65505 (OK)
|
||||||
to int64: 65505 (OK)
|
to int64: 65505 (OK)
|
||||||
to uint32: 65505 (OK)
|
to uint32: 65505 (OK)
|
||||||
to uint64: 65505 (OK)
|
to uint64: 65505 (OK)
|
||||||
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
to int32: 131007 (OK)
|
to int32: 131007 (OK)
|
||||||
to int64: 131007 (OK)
|
to int64: 131007 (OK)
|
||||||
to uint32: 131007 (OK)
|
to uint32: 131007 (OK)
|
||||||
to uint64: 131007 (OK)
|
to uint64: 131007 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
to int32: 131008 (OK)
|
to int32: 131008 (OK)
|
||||||
to int64: 131008 (OK)
|
to int64: 131008 (OK)
|
||||||
to uint32: 131008 (OK)
|
to uint32: 131008 (OK)
|
||||||
to uint64: 131008 (OK)
|
to uint64: 131008 (OK)
|
||||||
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
to int32: 131009 (OK)
|
to int32: 131009 (OK)
|
||||||
to int64: 131009 (OK)
|
to int64: 131009 (OK)
|
||||||
to uint32: 131009 (OK)
|
to uint32: 131009 (OK)
|
||||||
to uint64: 131009 (OK)
|
to uint64: 131009 (OK)
|
||||||
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
to uint64: -1 (INVALID)
|
to uint64: -1 (INVALID)
|
||||||
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
|
@ -392,31 +392,31 @@ from single: f32(-inf:0xff800000)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
|
@ -446,19 +446,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
|
@ -470,7 +470,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
to uint32: 1 (OK)
|
to uint32: 1 (OK)
|
||||||
to uint64: 1 (OK)
|
to uint64: 1 (OK)
|
||||||
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
to int32: 1 (INEXACT )
|
to int32: 1 (INEXACT )
|
||||||
to int64: 1 (INEXACT )
|
to int64: 1 (INEXACT )
|
||||||
to uint32: 1 (INEXACT )
|
to uint32: 1 (INEXACT )
|
||||||
|
@ -482,61 +482,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
to uint32: 2 (OK)
|
to uint32: 2 (OK)
|
||||||
to uint64: 2 (OK)
|
to uint64: 2 (OK)
|
||||||
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
to int32: 2 (INEXACT )
|
to int32: 2 (INEXACT )
|
||||||
to int64: 2 (INEXACT )
|
to int64: 2 (INEXACT )
|
||||||
to uint32: 2 (INEXACT )
|
to uint32: 2 (INEXACT )
|
||||||
to uint64: 2 (INEXACT )
|
to uint64: 2 (INEXACT )
|
||||||
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
to int32: 3 (INEXACT )
|
to int32: 3 (INEXACT )
|
||||||
to int64: 3 (INEXACT )
|
to int64: 3 (INEXACT )
|
||||||
to uint32: 3 (INEXACT )
|
to uint32: 3 (INEXACT )
|
||||||
to uint64: 3 (INEXACT )
|
to uint64: 3 (INEXACT )
|
||||||
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
to int32: 65503 (OK)
|
to int32: 65503 (OK)
|
||||||
to int64: 65503 (OK)
|
to int64: 65503 (OK)
|
||||||
to uint32: 65503 (OK)
|
to uint32: 65503 (OK)
|
||||||
to uint64: 65503 (OK)
|
to uint64: 65503 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
to int32: 65504 (OK)
|
to int32: 65504 (OK)
|
||||||
to int64: 65504 (OK)
|
to int64: 65504 (OK)
|
||||||
to uint32: 65504 (OK)
|
to uint32: 65504 (OK)
|
||||||
to uint64: 65504 (OK)
|
to uint64: 65504 (OK)
|
||||||
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
to int32: 65505 (OK)
|
to int32: 65505 (OK)
|
||||||
to int64: 65505 (OK)
|
to int64: 65505 (OK)
|
||||||
to uint32: 65505 (OK)
|
to uint32: 65505 (OK)
|
||||||
to uint64: 65505 (OK)
|
to uint64: 65505 (OK)
|
||||||
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
to int32: 131007 (OK)
|
to int32: 131007 (OK)
|
||||||
to int64: 131007 (OK)
|
to int64: 131007 (OK)
|
||||||
to uint32: 131007 (OK)
|
to uint32: 131007 (OK)
|
||||||
to uint64: 131007 (OK)
|
to uint64: 131007 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
to int32: 131008 (OK)
|
to int32: 131008 (OK)
|
||||||
to int64: 131008 (OK)
|
to int64: 131008 (OK)
|
||||||
to uint32: 131008 (OK)
|
to uint32: 131008 (OK)
|
||||||
to uint64: 131008 (OK)
|
to uint64: 131008 (OK)
|
||||||
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
to int32: 131009 (OK)
|
to int32: 131009 (OK)
|
||||||
to int64: 131009 (OK)
|
to int64: 131009 (OK)
|
||||||
to uint32: 131009 (OK)
|
to uint32: 131009 (OK)
|
||||||
to uint64: 131009 (OK)
|
to uint64: 131009 (OK)
|
||||||
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
to uint64: -1 (INVALID)
|
to uint64: -1 (INVALID)
|
||||||
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
|
@ -579,31 +579,31 @@ from single: f32(-inf:0xff800000)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
from single: f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (INEXACT )
|
to double: f64(-0x1.fffffe00000000000000p+127:0x00c7efffffe0000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
from single: f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (INEXACT )
|
to double: f64(-0x1.1874b200000000000000p+103:0x00c661874b20000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
from single: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (INEXACT )
|
to double: f64(-0x1.c0bab600000000000000p+99:0x00c62c0bab60000000) (OK)
|
||||||
to int32: -2147483648 (INVALID)
|
to int32: -2147483648 (INVALID)
|
||||||
to int64: -9223372036854775808 (INVALID)
|
to int64: -9223372036854775808 (INVALID)
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
from single: f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (INEXACT )
|
to double: f64(-0x1.31f75000000000000000p-40:0x00bd731f7500000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
to uint64: 0 (INVALID)
|
to uint64: 0 (INVALID)
|
||||||
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
from single: f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (INEXACT )
|
to double: f64(-0x1.50544400000000000000p-66:0x00bbd5054440000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INVALID)
|
to uint32: 0 (INVALID)
|
||||||
|
@ -633,19 +633,19 @@ from single: f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
from single: f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (INEXACT )
|
to double: f64(0x1.ffffe600000000000000p-25:0x003e6ffffe60000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
from single: f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (INEXACT )
|
to double: f64(0x1.ff801a00000000000000p-15:0x003f0ff801a0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
to uint64: 0 (INEXACT )
|
to uint64: 0 (INEXACT )
|
||||||
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
from single: f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (INEXACT )
|
to double: f64(0x1.00000c00000000000000p-14:0x003f100000c0000000) (OK)
|
||||||
to int32: 0 (INEXACT )
|
to int32: 0 (INEXACT )
|
||||||
to int64: 0 (INEXACT )
|
to int64: 0 (INEXACT )
|
||||||
to uint32: 0 (INEXACT )
|
to uint32: 0 (INEXACT )
|
||||||
|
@ -657,7 +657,7 @@ from single: f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
to uint32: 1 (OK)
|
to uint32: 1 (OK)
|
||||||
to uint64: 1 (OK)
|
to uint64: 1 (OK)
|
||||||
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
from single: f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (INEXACT )
|
to double: f64(0x1.00400000000000000000p+0:0x003ff0040000000000) (OK)
|
||||||
to int32: 1 (INEXACT )
|
to int32: 1 (INEXACT )
|
||||||
to int64: 1 (INEXACT )
|
to int64: 1 (INEXACT )
|
||||||
to uint32: 1 (INEXACT )
|
to uint32: 1 (INEXACT )
|
||||||
|
@ -669,61 +669,61 @@ from single: f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
to uint32: 2 (OK)
|
to uint32: 2 (OK)
|
||||||
to uint64: 2 (OK)
|
to uint64: 2 (OK)
|
||||||
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
from single: f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (INEXACT )
|
to double: f64(0x1.5bf0a800000000000000p+1:0x004005bf0a80000000) (OK)
|
||||||
to int32: 2 (INEXACT )
|
to int32: 2 (INEXACT )
|
||||||
to int64: 2 (INEXACT )
|
to int64: 2 (INEXACT )
|
||||||
to uint32: 2 (INEXACT )
|
to uint32: 2 (INEXACT )
|
||||||
to uint64: 2 (INEXACT )
|
to uint64: 2 (INEXACT )
|
||||||
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
from single: f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (INEXACT )
|
to double: f64(0x1.921fb600000000000000p+1:0x00400921fb60000000) (OK)
|
||||||
to int32: 3 (INEXACT )
|
to int32: 3 (INEXACT )
|
||||||
to int64: 3 (INEXACT )
|
to int64: 3 (INEXACT )
|
||||||
to uint32: 3 (INEXACT )
|
to uint32: 3 (INEXACT )
|
||||||
to uint64: 3 (INEXACT )
|
to uint64: 3 (INEXACT )
|
||||||
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
from single: f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (INEXACT )
|
to double: f64(0x1.ffbe0000000000000000p+15:0x0040effbe000000000) (OK)
|
||||||
to int32: 65503 (OK)
|
to int32: 65503 (OK)
|
||||||
to int64: 65503 (OK)
|
to int64: 65503 (OK)
|
||||||
to uint32: 65503 (OK)
|
to uint32: 65503 (OK)
|
||||||
to uint64: 65503 (OK)
|
to uint64: 65503 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
from single: f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+15:0x0040effc0000000000) (OK)
|
||||||
to int32: 65504 (OK)
|
to int32: 65504 (OK)
|
||||||
to int64: 65504 (OK)
|
to int64: 65504 (OK)
|
||||||
to uint32: 65504 (OK)
|
to uint32: 65504 (OK)
|
||||||
to uint64: 65504 (OK)
|
to uint64: 65504 (OK)
|
||||||
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
from single: f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (INEXACT )
|
to double: f64(0x1.ffc20000000000000000p+15:0x0040effc2000000000) (OK)
|
||||||
to int32: 65505 (OK)
|
to int32: 65505 (OK)
|
||||||
to int64: 65505 (OK)
|
to int64: 65505 (OK)
|
||||||
to uint32: 65505 (OK)
|
to uint32: 65505 (OK)
|
||||||
to uint64: 65505 (OK)
|
to uint64: 65505 (OK)
|
||||||
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
from single: f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (INEXACT )
|
to double: f64(0x1.ffbf0000000000000000p+16:0x0040fffbf000000000) (OK)
|
||||||
to int32: 131007 (OK)
|
to int32: 131007 (OK)
|
||||||
to int64: 131007 (OK)
|
to int64: 131007 (OK)
|
||||||
to uint32: 131007 (OK)
|
to uint32: 131007 (OK)
|
||||||
to uint64: 131007 (OK)
|
to uint64: 131007 (OK)
|
||||||
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
from single: f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (INEXACT )
|
to double: f64(0x1.ffc00000000000000000p+16:0x0040fffc0000000000) (OK)
|
||||||
to int32: 131008 (OK)
|
to int32: 131008 (OK)
|
||||||
to int64: 131008 (OK)
|
to int64: 131008 (OK)
|
||||||
to uint32: 131008 (OK)
|
to uint32: 131008 (OK)
|
||||||
to uint64: 131008 (OK)
|
to uint64: 131008 (OK)
|
||||||
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
from single: f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (INEXACT )
|
to double: f64(0x1.ffc10000000000000000p+16:0x0040fffc1000000000) (OK)
|
||||||
to int32: 131009 (OK)
|
to int32: 131009 (OK)
|
||||||
to int64: 131009 (OK)
|
to int64: 131009 (OK)
|
||||||
to uint32: 131009 (OK)
|
to uint32: 131009 (OK)
|
||||||
to uint64: 131009 (OK)
|
to uint64: 131009 (OK)
|
||||||
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
from single: f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (INEXACT )
|
to double: f64(0x1.c0bab600000000000000p+99:0x00462c0bab60000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
to uint64: -1 (INVALID)
|
to uint64: -1 (INVALID)
|
||||||
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (INEXACT )
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
to int32: 2147483647 (INVALID)
|
to int32: 2147483647 (INVALID)
|
||||||
to int64: 9223372036854775807 (INVALID)
|
to int64: 9223372036854775807 (INVALID)
|
||||||
to uint32: -1 (INVALID)
|
to uint32: -1 (INVALID)
|
||||||
|
|
|
@ -44,7 +44,7 @@ res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (6/2)
|
||||||
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
@ -90,15 +90,15 @@ res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
|
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
|
||||||
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
@ -236,7 +236,7 @@ res: f32(-0x1.50544200000000000000p-66:0x9ea82a21) flags=INEXACT (6/2)
|
||||||
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (7/0)
|
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (7/0)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
@ -282,15 +282,15 @@ res: f32(0x1.00440200000000000000p+0:0x3f802201) flags=INEXACT (14/1)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
|
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
|
||||||
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.2e23d400000000000000p+2:0x409711ea) flags=INEXACT (16/2)
|
res: f32(0x1.2e23d400000000000000p+2:0x409711ea) flags=INEXACT (16/2)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
@ -428,7 +428,7 @@ res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (6/2)
|
||||||
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
@ -474,15 +474,15 @@ res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
|
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
|
||||||
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
@ -620,7 +620,7 @@ res: f32(-0x1.50544200000000000000p-66:0x9ea82a21) flags=INEXACT (6/2)
|
||||||
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (7/1)
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
@ -666,15 +666,15 @@ res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
|
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
|
||||||
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/0)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=INEXACT (15/1)
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=INEXACT (15/2)
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=INEXACT (16/0)
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=INEXACT (16/1)
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
||||||
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
|
|
@ -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),)
|
ifneq ($(CONFIG_LINUX_USER),)
|
||||||
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
|
||||||
|
|
|
@ -51,8 +51,8 @@ static void convert_single_to_double(float input)
|
||||||
|
|
||||||
output = input;
|
output = input;
|
||||||
|
|
||||||
out_fmt = fmt_f64(output);
|
|
||||||
flag_fmt = fmt_flags();
|
flag_fmt = fmt_flags();
|
||||||
|
out_fmt = fmt_f64(output);
|
||||||
printf(" to double: %s (%s)\n", out_fmt, flag_fmt);
|
printf(" to double: %s (%s)\n", out_fmt, flag_fmt);
|
||||||
free(out_fmt);
|
free(out_fmt);
|
||||||
free(flag_fmt);
|
free(flag_fmt);
|
||||||
|
|
|
@ -54,8 +54,8 @@ static void print_result(float r, int j, int k)
|
||||||
{
|
{
|
||||||
char *r_fmt, *flag_fmt;
|
char *r_fmt, *flag_fmt;
|
||||||
|
|
||||||
r_fmt = fmt_f32(r);
|
|
||||||
flag_fmt = fmt_flags();
|
flag_fmt = fmt_flags();
|
||||||
|
r_fmt = fmt_f32(r);
|
||||||
|
|
||||||
printf("res: %s flags=%s (%d/%d)\n", r_fmt, flag_fmt, j, k);
|
printf("res: %s flags=%s (%d/%d)\n", r_fmt, flag_fmt, j, k);
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,748 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (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: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding upwards
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (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: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding downwards
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (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: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
||||||
|
### Rounding to zero
|
||||||
|
from single: f32(-nan:0xffa00000)
|
||||||
|
to double: f64(-nan:0x00fff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 0 (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: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
to double: f64(0x1.fffffe00000000000000p+127:0x0047efffffe0000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (INVALID)
|
||||||
|
from single: f32(inf:0x7f800000)
|
||||||
|
to double: f64(inf:0x007ff0000000000000) (OK)
|
||||||
|
to int32: 2147483647 (INVALID)
|
||||||
|
to int64: 9223372036854775807 (INVALID)
|
||||||
|
to uint32: -1 (INVALID)
|
||||||
|
to uint64: -1 (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: 0 (INVALID)
|
||||||
|
from single: f32(nan:0x7fa00000)
|
||||||
|
to double: f64(nan:0x007ff4000000000000) (OK)
|
||||||
|
to int32: -2147483648 (INVALID)
|
||||||
|
to int64: -9223372036854775808 (INVALID)
|
||||||
|
to uint32: 0 (INVALID)
|
||||||
|
to uint64: 0 (INVALID)
|
|
@ -0,0 +1,768 @@
|
||||||
|
### Rounding to nearest
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (0/0)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/1)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/2)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/0)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/1)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/2)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/0)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-inf:0xff800000) flags=OK (2/1)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/2)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (3/0)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (3/1)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (3/2)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (4/0)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) flags=INEXACT (4/1)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) flags=INEXACT (4/2)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(0x1.0c27fa00000000000000p+60:0x5d8613fd) flags=INEXACT (5/0)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) flags=INEXACT (5/1)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(0x1.26c46200000000000000p+34:0x50936231) flags=INEXACT (5/2)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(0x1.91f94000000000000000p-106:0x0ac8fca0) flags=INEXACT (6/0)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(-0x1.31f75000000000000000p-40:0xab98fba8) flags=INEXACT (6/1)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (6/2)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (8/0)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (8/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(-0x0.00000000000000000000p+0:0x80000000) flags=UNDERFLOW INEXACT (8/2)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-25:0x33000000) flags=OK (9/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (9/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (9/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.ffffe600000000000000p-25:0x337ffff3) flags=INEXACT (10/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.ffffe600000000000000p-50:0x26fffff3) flags=INEXACT (10/1)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-25:0x33000000) flags=INEXACT (10/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801a00000000000000p-15:0x387fc00d) flags=INEXACT (11/0)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.0007fe00000000000000p-25:0x330003ff) flags=INEXACT (11/1)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0001f200000000000000p-24:0x338000f9) flags=INEXACT (11/2)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00000c00000000000000p-14:0x38800006) flags=INEXACT (12/0)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0ffbf400000000000000p-24:0x3387fdfa) flags=INEXACT (12/1)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801c00000000000000p-15:0x387fc00e) flags=INEXACT (12/2)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00000000000000000000p+0:0x3f800000) flags=INEXACT (13/0)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ffc01800000000000000p-14:0x38ffe00c) flags=INEXACT (13/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.ffc01800000000000000p-14:0x38ffe00c) flags=INEXACT (13/2)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.12804200000000000000p+3:0x41094021) flags=INEXACT (17/0)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.51458000000000000000p+3:0x4128a2c0) flags=INEXACT (17/1)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.200c0400000000000000p+3:0x41100602) flags=INEXACT (17/2)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ffcf1400000000000000p+15:0x477fe78a) flags=INEXACT (18/0)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.91ed3c00000000000000p+17:0x4848f69e) flags=INEXACT (18/1)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.5bc56000000000000000p+17:0x482de2b0) flags=INEXACT (18/2)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.08edf000000000000000p+18:0x488476f8) flags=INEXACT (19/0)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.ff7e0800000000000000p+31:0x4f7fbf04) flags=INEXACT (19/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.08ee7a00000000000000p+18:0x4884773d) flags=INEXACT (19/2)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800800000000000000p+31:0x4f7fc004) flags=INEXACT (20/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ff840800000000000000p+31:0x4f7fc204) flags=INEXACT (20/1)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820800000000000000p+31:0x4f7fc104) flags=INEXACT (20/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff860800000000000000p+31:0x4f7fc304) flags=INEXACT (21/0)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820800000000000000p+32:0x4fffc104) flags=INEXACT (21/1)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800800000000000000p+32:0x4fffc004) flags=INEXACT (21/2)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff830800000000000000p+32:0x4fffc184) flags=INEXACT (22/0)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff7f8800000000000000p+33:0x507fbfc4) flags=INEXACT (22/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff840800000000000000p+32:0x4fffc204) flags=INEXACT (22/2)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.ff800800000000000000p+33:0x507fc004) flags=INEXACT (23/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff820800000000000000p+33:0x507fc104) flags=INEXACT (23/1)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff810800000000000000p+33:0x507fc084) flags=INEXACT (23/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(0x1.c0bab600000000000000p+99:0x71605d5b) flags=INEXACT (24/0)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.c0838000000000000000p+116:0x79e041c0) flags=INEXACT (24/1)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.c0829e00000000000000p+116:0x79e0414f) flags=INEXACT (24/2)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (25/0)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (25/1)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (25/2)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/0)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/1)
|
||||||
|
op : f32(inf:0x7f800000) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/2)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/0)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/1)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/2)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/0)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (28/1)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/2)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (29/0)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (29/1)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (29/2)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (30/0)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (30/1)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (30/2)
|
||||||
|
# LP184149
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-1:0x3f000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=OK (31/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-149:0x00000001) * f32(0x1.00000000000000000000p-149:0x00000001) + f32(0x1.00000000000000000000p-149:0x00000001)
|
||||||
|
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (32/0)
|
||||||
|
### Rounding upwards
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (0/0)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/1)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/2)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/0)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/1)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/2)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/0)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-inf:0xff800000) flags=OK (2/1)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/2)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (3/0)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (3/1)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (3/2)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (4/0)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) flags=INEXACT (4/1)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) flags=INEXACT (4/2)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(0x1.0c27fa00000000000000p+60:0x5d8613fd) flags=INEXACT (5/0)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) flags=INEXACT (5/1)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(0x1.26c46200000000000000p+34:0x50936231) flags=INEXACT (5/2)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(0x1.91f94000000000000000p-106:0x0ac8fca0) flags=INEXACT (6/0)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(-0x1.31f74e00000000000000p-40:0xab98fba7) flags=INEXACT (6/1)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544200000000000000p-66:0x9ea82a21) flags=INEXACT (6/2)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (7/0)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (8/0)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (8/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(-0x0.00000000000000000000p+0:0x80000000) flags=UNDERFLOW INEXACT (8/2)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-25:0x33000000) flags=OK (9/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (9/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (9/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.ffffe800000000000000p-25:0x337ffff4) flags=INEXACT (10/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.ffffe800000000000000p-50:0x26fffff4) flags=INEXACT (10/1)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000200000000000000p-25:0x33000001) flags=INEXACT (10/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801c00000000000000p-15:0x387fc00e) flags=INEXACT (11/0)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00080000000000000000p-25:0x33000400) flags=INEXACT (11/1)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0001f400000000000000p-24:0x338000fa) flags=INEXACT (11/2)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00000e00000000000000p-14:0x38800007) flags=INEXACT (12/0)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0ffbf600000000000000p-24:0x3387fdfb) flags=INEXACT (12/1)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801c00000000000000p-15:0x387fc00e) flags=INEXACT (12/2)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00000200000000000000p+0:0x3f800001) flags=INEXACT (13/0)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ffc01a00000000000000p-14:0x38ffe00d) flags=INEXACT (13/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.ffc01a00000000000000p-14:0x38ffe00d) flags=INEXACT (13/2)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.00440200000000000000p+0:0x3f802201) flags=INEXACT (14/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00440200000000000000p+0:0x3f802201) flags=INEXACT (14/1)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00040200000000000000p+0:0x3f800201) flags=INEXACT (14/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.2e23d400000000000000p+2:0x409711ea) flags=INEXACT (16/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.12804200000000000000p+3:0x41094021) flags=INEXACT (17/0)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.51458200000000000000p+3:0x4128a2c1) flags=INEXACT (17/1)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.200c0600000000000000p+3:0x41100603) flags=INEXACT (17/2)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ffcf1600000000000000p+15:0x477fe78b) flags=INEXACT (18/0)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.91ed3c00000000000000p+17:0x4848f69e) flags=INEXACT (18/1)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.5bc56200000000000000p+17:0x482de2b1) flags=INEXACT (18/2)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.08edf000000000000000p+18:0x488476f8) flags=INEXACT (19/0)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.ff7e0a00000000000000p+31:0x4f7fbf05) flags=INEXACT (19/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.08ee7a00000000000000p+18:0x4884773d) flags=INEXACT (19/2)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800a00000000000000p+31:0x4f7fc005) flags=INEXACT (20/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ff840800000000000000p+31:0x4f7fc204) flags=INEXACT (20/1)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820800000000000000p+31:0x4f7fc104) flags=INEXACT (20/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff860800000000000000p+31:0x4f7fc304) flags=INEXACT (21/0)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820800000000000000p+32:0x4fffc104) flags=INEXACT (21/1)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800a00000000000000p+32:0x4fffc005) flags=INEXACT (21/2)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff830800000000000000p+32:0x4fffc184) flags=INEXACT (22/0)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff7f8a00000000000000p+33:0x507fbfc5) flags=INEXACT (22/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff840800000000000000p+32:0x4fffc204) flags=INEXACT (22/2)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.ff800a00000000000000p+33:0x507fc005) flags=INEXACT (23/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff820800000000000000p+33:0x507fc104) flags=INEXACT (23/1)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff810800000000000000p+33:0x507fc084) flags=INEXACT (23/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(0x1.c0bab800000000000000p+99:0x71605d5c) flags=INEXACT (24/0)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.c0838000000000000000p+116:0x79e041c0) flags=INEXACT (24/1)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.c082a000000000000000p+116:0x79e04150) flags=INEXACT (24/2)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (25/0)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (25/1)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OVERFLOW INEXACT (25/2)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/0)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/1)
|
||||||
|
op : f32(inf:0x7f800000) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/2)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/0)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/1)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/2)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/0)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (28/1)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/2)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (29/0)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (29/1)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (29/2)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (30/0)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (30/1)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (30/2)
|
||||||
|
# LP184149
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-1:0x3f000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=OK (31/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-149:0x00000001) * f32(0x1.00000000000000000000p-149:0x00000001) + f32(0x1.00000000000000000000p-149:0x00000001)
|
||||||
|
res: f32(0x1.00000000000000000000p-148:0x00000002) flags=UNDERFLOW INEXACT (32/0)
|
||||||
|
### Rounding downwards
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (0/0)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/1)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/2)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/0)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/1)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/2)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/0)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-inf:0xff800000) flags=OK (2/1)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/2)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (3/0)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (3/1)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (3/2)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (4/0)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(-0x1.1874b200000000000000p+103:0xf30c3a59) flags=INEXACT (4/1)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) flags=INEXACT (4/2)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(0x1.0c27f800000000000000p+60:0x5d8613fc) flags=INEXACT (5/0)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) flags=INEXACT (5/1)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(0x1.26c46000000000000000p+34:0x50936230) flags=INEXACT (5/2)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(0x1.91f93e00000000000000p-106:0x0ac8fc9f) flags=INEXACT (6/0)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(-0x1.31f75000000000000000p-40:0xab98fba8) flags=INEXACT (6/1)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=INEXACT (6/2)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (8/0)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (8/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-149:0x80000001) flags=UNDERFLOW INEXACT (8/2)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-25:0x33000000) flags=OK (9/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (9/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (9/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.ffffe600000000000000p-25:0x337ffff3) flags=INEXACT (10/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.ffffe600000000000000p-50:0x26fffff3) flags=INEXACT (10/1)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-25:0x33000000) flags=INEXACT (10/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801a00000000000000p-15:0x387fc00d) flags=INEXACT (11/0)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.0007fe00000000000000p-25:0x330003ff) flags=INEXACT (11/1)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0001f200000000000000p-24:0x338000f9) flags=INEXACT (11/2)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00000c00000000000000p-14:0x38800006) flags=INEXACT (12/0)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0ffbf400000000000000p-24:0x3387fdfa) flags=INEXACT (12/1)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801a00000000000000p-15:0x387fc00d) flags=INEXACT (12/2)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00000000000000000000p+0:0x3f800000) flags=INEXACT (13/0)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ffc01800000000000000p-14:0x38ffe00c) flags=INEXACT (13/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.ffc01800000000000000p-14:0x38ffe00c) flags=INEXACT (13/2)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.12804000000000000000p+3:0x41094020) flags=INEXACT (17/0)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.51458000000000000000p+3:0x4128a2c0) flags=INEXACT (17/1)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.200c0400000000000000p+3:0x41100602) flags=INEXACT (17/2)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ffcf1400000000000000p+15:0x477fe78a) flags=INEXACT (18/0)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.91ed3a00000000000000p+17:0x4848f69d) flags=INEXACT (18/1)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.5bc56000000000000000p+17:0x482de2b0) flags=INEXACT (18/2)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.08edee00000000000000p+18:0x488476f7) flags=INEXACT (19/0)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.ff7e0800000000000000p+31:0x4f7fbf04) flags=INEXACT (19/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.08ee7800000000000000p+18:0x4884773c) flags=INEXACT (19/2)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800800000000000000p+31:0x4f7fc004) flags=INEXACT (20/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ff840600000000000000p+31:0x4f7fc203) flags=INEXACT (20/1)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820600000000000000p+31:0x4f7fc103) flags=INEXACT (20/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff860600000000000000p+31:0x4f7fc303) flags=INEXACT (21/0)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820600000000000000p+32:0x4fffc103) flags=INEXACT (21/1)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800800000000000000p+32:0x4fffc004) flags=INEXACT (21/2)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff830600000000000000p+32:0x4fffc183) flags=INEXACT (22/0)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff7f8800000000000000p+33:0x507fbfc4) flags=INEXACT (22/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff840600000000000000p+32:0x4fffc203) flags=INEXACT (22/2)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.ff800800000000000000p+33:0x507fc004) flags=INEXACT (23/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff820600000000000000p+33:0x507fc103) flags=INEXACT (23/1)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff810600000000000000p+33:0x507fc083) flags=INEXACT (23/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(0x1.c0bab600000000000000p+99:0x71605d5b) flags=INEXACT (24/0)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.c0837e00000000000000p+116:0x79e041bf) flags=INEXACT (24/1)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.c0829e00000000000000p+116:0x79e0414f) flags=INEXACT (24/2)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (25/0)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (25/1)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (25/2)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/0)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/1)
|
||||||
|
op : f32(inf:0x7f800000) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/2)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/0)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/1)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/2)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/0)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (28/1)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/2)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (29/0)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (29/1)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (29/2)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (30/0)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (30/1)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (30/2)
|
||||||
|
# LP184149
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-1:0x3f000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=OK (31/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-149:0x00000001) * f32(0x1.00000000000000000000p-149:0x00000001) + f32(0x1.00000000000000000000p-149:0x00000001)
|
||||||
|
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (32/0)
|
||||||
|
### Rounding to zero
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (0/0)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/1)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (0/2)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/0)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/1)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-nan:0xffc00000) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=OK (1/2)
|
||||||
|
op : f32(-inf:0xff800000) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/0)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-inf:0xff800000)
|
||||||
|
res: f32(-inf:0xff800000) flags=OK (2/1)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-inf:0xff800000) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (2/2)
|
||||||
|
op : f32(-0x1.fffffe00000000000000p+127:0xff7fffff) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (3/0)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.fffffe00000000000000p+127:0xff7fffff)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (3/1)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.fffffe00000000000000p+127:0xff7fffff) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (3/2)
|
||||||
|
op : f32(-0x1.1874b200000000000000p+103:0xf30c3a59) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (4/0)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.1874b200000000000000p+103:0xf30c3a59)
|
||||||
|
res: f32(-0x1.1874b000000000000000p+103:0xf30c3a58) flags=INEXACT (4/1)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.1874b200000000000000p+103:0xf30c3a59) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) flags=INEXACT (4/2)
|
||||||
|
op : f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(0x1.0c27f800000000000000p+60:0x5d8613fc) flags=INEXACT (5/0)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.c0bab600000000000000p+99:0xf1605d5b)
|
||||||
|
res: f32(-0x1.c0bab400000000000000p+99:0xf1605d5a) flags=INEXACT (5/1)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.c0bab600000000000000p+99:0xf1605d5b) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(0x1.26c46000000000000000p+34:0x50936230) flags=INEXACT (5/2)
|
||||||
|
op : f32(-0x1.31f75000000000000000p-40:0xab98fba8) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(0x1.91f93e00000000000000p-106:0x0ac8fc9f) flags=INEXACT (6/0)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(-0x1.31f75000000000000000p-40:0xab98fba8)
|
||||||
|
res: f32(-0x1.31f74e00000000000000p-40:0xab98fba7) flags=INEXACT (6/1)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(-0x1.31f75000000000000000p-40:0xab98fba8) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544200000000000000p-66:0x9ea82a21) flags=INEXACT (6/2)
|
||||||
|
op : f32(-0x1.50544400000000000000p-66:0x9ea82a22) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (7/0)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(-0x1.50544400000000000000p-66:0x9ea82a22)
|
||||||
|
res: f32(-0x1.50544400000000000000p-66:0x9ea82a22) flags=OK (7/1)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(-0x1.50544400000000000000p-66:0x9ea82a22) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (7/2)
|
||||||
|
op : f32(-0x1.00000000000000000000p-126:0x80800000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (8/0)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(-0x1.00000000000000000000p-126:0x80800000)
|
||||||
|
res: f32(-0x1.00000000000000000000p-126:0x80800000) flags=OK (8/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(-0x1.00000000000000000000p-126:0x80800000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(-0x0.00000000000000000000p+0:0x80000000) flags=UNDERFLOW INEXACT (8/2)
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-25:0x33000000) flags=OK (9/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=UNDERFLOW INEXACT (9/1)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x0.00000000000000000000p+0:0000000000) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.00000000000000000000p-126:0x00800000) flags=OK (9/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-126:0x00800000) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.ffffe600000000000000p-25:0x337ffff3) flags=INEXACT (10/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.00000000000000000000p-126:0x00800000)
|
||||||
|
res: f32(0x1.ffffe600000000000000p-50:0x26fffff3) flags=INEXACT (10/1)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.00000000000000000000p-126:0x00800000) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.00000000000000000000p-25:0x33000000) flags=INEXACT (10/2)
|
||||||
|
op : f32(0x1.00000000000000000000p-25:0x33000000) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801a00000000000000p-15:0x387fc00d) flags=INEXACT (11/0)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000000000000000000p-25:0x33000000)
|
||||||
|
res: f32(0x1.0007fe00000000000000p-25:0x330003ff) flags=INEXACT (11/1)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000000000000000000p-25:0x33000000) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0001f200000000000000p-24:0x338000f9) flags=INEXACT (11/2)
|
||||||
|
op : f32(0x1.ffffe600000000000000p-25:0x337ffff3) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00000c00000000000000p-14:0x38800006) flags=INEXACT (12/0)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.ffffe600000000000000p-25:0x337ffff3)
|
||||||
|
res: f32(0x1.0ffbf400000000000000p-24:0x3387fdfa) flags=INEXACT (12/1)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.ffffe600000000000000p-25:0x337ffff3) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ff801a00000000000000p-15:0x387fc00d) flags=INEXACT (12/2)
|
||||||
|
op : f32(0x1.ff801a00000000000000p-15:0x387fc00d) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00000000000000000000p+0:0x3f800000) flags=INEXACT (13/0)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.ff801a00000000000000p-15:0x387fc00d)
|
||||||
|
res: f32(0x1.ffc01800000000000000p-14:0x38ffe00c) flags=INEXACT (13/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.ff801a00000000000000p-15:0x387fc00d) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.ffc01800000000000000p-14:0x38ffe00c) flags=INEXACT (13/2)
|
||||||
|
op : f32(0x1.00000c00000000000000p-14:0x38800006) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000c00000000000000p-14:0x38800006)
|
||||||
|
res: f32(0x1.00440000000000000000p+0:0x3f802200) flags=INEXACT (14/1)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000c00000000000000p-14:0x38800006) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.00040000000000000000p+0:0x3f800200) flags=INEXACT (14/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+0:0x3f800000) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/0)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.00000000000000000000p+0:0x3f800000)
|
||||||
|
res: f32(0x1.80400000000000000000p+1:0x40402000) flags=OK (15/1)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.00000000000000000000p+0:0x3f800000) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.80200000000000000000p+1:0x40401000) flags=OK (15/2)
|
||||||
|
op : f32(0x1.00400000000000000000p+0:0x3f802000) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.2e185400000000000000p+2:0x40970c2a) flags=OK (16/0)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.00400000000000000000p+0:0x3f802000)
|
||||||
|
res: f32(0x1.9c00a800000000000000p+2:0x40ce0054) flags=OK (16/1)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.00400000000000000000p+0:0x3f802000) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.2e23d200000000000000p+2:0x409711e9) flags=INEXACT (16/2)
|
||||||
|
op : f32(0x1.00000000000000000000p+1:0x40000000) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.12804000000000000000p+3:0x41094020) flags=INEXACT (17/0)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.00000000000000000000p+1:0x40000000)
|
||||||
|
res: f32(0x1.51458000000000000000p+3:0x4128a2c0) flags=INEXACT (17/1)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.00000000000000000000p+1:0x40000000) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.200c0400000000000000p+3:0x41100602) flags=INEXACT (17/2)
|
||||||
|
op : f32(0x1.5bf0a800000000000000p+1:0x402df854) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ffcf1400000000000000p+15:0x477fe78a) flags=INEXACT (18/0)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.5bf0a800000000000000p+1:0x402df854)
|
||||||
|
res: f32(0x1.91ed3a00000000000000p+17:0x4848f69d) flags=INEXACT (18/1)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.5bf0a800000000000000p+1:0x402df854) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.5bc56000000000000000p+17:0x482de2b0) flags=INEXACT (18/2)
|
||||||
|
op : f32(0x1.921fb600000000000000p+1:0x40490fdb) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.08edee00000000000000p+18:0x488476f7) flags=INEXACT (19/0)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.921fb600000000000000p+1:0x40490fdb)
|
||||||
|
res: f32(0x1.ff7e0800000000000000p+31:0x4f7fbf04) flags=INEXACT (19/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.921fb600000000000000p+1:0x40490fdb) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.08ee7800000000000000p+18:0x4884773c) flags=INEXACT (19/2)
|
||||||
|
op : f32(0x1.ffbe0000000000000000p+15:0x477fdf00) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800800000000000000p+31:0x4f7fc004) flags=INEXACT (20/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbe0000000000000000p+15:0x477fdf00)
|
||||||
|
res: f32(0x1.ff840600000000000000p+31:0x4f7fc203) flags=INEXACT (20/1)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbe0000000000000000p+15:0x477fdf00) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820600000000000000p+31:0x4f7fc103) flags=INEXACT (20/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+15:0x477fe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff860600000000000000p+31:0x4f7fc303) flags=INEXACT (21/0)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+15:0x477fe000)
|
||||||
|
res: f32(0x1.ff820600000000000000p+32:0x4fffc103) flags=INEXACT (21/1)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+15:0x477fe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff800800000000000000p+32:0x4fffc004) flags=INEXACT (21/2)
|
||||||
|
op : f32(0x1.ffc20000000000000000p+15:0x477fe100) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff830600000000000000p+32:0x4fffc183) flags=INEXACT (22/0)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc20000000000000000p+15:0x477fe100)
|
||||||
|
res: f32(0x1.ff7f8800000000000000p+33:0x507fbfc4) flags=INEXACT (22/1)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc20000000000000000p+15:0x477fe100) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff840600000000000000p+32:0x4fffc203) flags=INEXACT (22/2)
|
||||||
|
op : f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.ff800800000000000000p+33:0x507fc004) flags=INEXACT (23/0)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.ffbf0000000000000000p+16:0x47ffdf80)
|
||||||
|
res: f32(0x1.ff820600000000000000p+33:0x507fc103) flags=INEXACT (23/1)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.ffbf0000000000000000p+16:0x47ffdf80) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.ff810600000000000000p+33:0x507fc083) flags=INEXACT (23/2)
|
||||||
|
op : f32(0x1.ffc00000000000000000p+16:0x47ffe000) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(0x1.c0bab600000000000000p+99:0x71605d5b) flags=INEXACT (24/0)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.ffc00000000000000000p+16:0x47ffe000)
|
||||||
|
res: f32(0x1.c0837e00000000000000p+116:0x79e041bf) flags=INEXACT (24/1)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.ffc00000000000000000p+16:0x47ffe000) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.c0829e00000000000000p+116:0x79e0414f) flags=INEXACT (24/2)
|
||||||
|
op : f32(0x1.ffc10000000000000000p+16:0x47ffe080) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (25/0)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(0x1.ffc10000000000000000p+16:0x47ffe080)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (25/1)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(0x1.ffc10000000000000000p+16:0x47ffe080) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(0x1.fffffe00000000000000p+127:0x7f7fffff) flags=OVERFLOW INEXACT (25/2)
|
||||||
|
op : f32(0x1.c0bab600000000000000p+99:0x71605d5b) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/0)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(0x1.c0bab600000000000000p+99:0x71605d5b)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/1)
|
||||||
|
op : f32(inf:0x7f800000) * f32(0x1.c0bab600000000000000p+99:0x71605d5b) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(inf:0x7f800000) flags=OK (26/2)
|
||||||
|
op : f32(0x1.fffffe00000000000000p+127:0x7f7fffff) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/0)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(0x1.fffffe00000000000000p+127:0x7f7fffff)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/1)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(0x1.fffffe00000000000000p+127:0x7f7fffff) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=OK (27/2)
|
||||||
|
op : f32(inf:0x7f800000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/0)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(inf:0x7f800000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (28/1)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(inf:0x7f800000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (28/2)
|
||||||
|
op : f32(nan:0x7fc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(nan:0x7fc00000) flags=INVALID (29/0)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(nan:0x7fc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (29/1)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(nan:0x7fc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (29/2)
|
||||||
|
op : f32(nan:0x7fa00000) * f32(-nan:0xffa00000) + f32(-nan:0xffc00000)
|
||||||
|
res: f32(nan:0x7fe00000) flags=INVALID (30/0)
|
||||||
|
op : f32(-nan:0xffa00000) * f32(-nan:0xffc00000) + f32(nan:0x7fa00000)
|
||||||
|
res: f32(-nan:0xffe00000) flags=INVALID (30/1)
|
||||||
|
op : f32(-nan:0xffc00000) * f32(nan:0x7fa00000) + f32(-nan:0xffa00000)
|
||||||
|
res: f32(-nan:0xffc00000) flags=INVALID (30/2)
|
||||||
|
# LP184149
|
||||||
|
op : f32(0x0.00000000000000000000p+0:0000000000) * f32(0x1.00000000000000000000p-1:0x3f000000) + f32(0x0.00000000000000000000p+0:0000000000)
|
||||||
|
res: f32(0x0.00000000000000000000p+0:0000000000) flags=OK (31/0)
|
||||||
|
op : f32(0x1.00000000000000000000p-149:0x00000001) * f32(0x1.00000000000000000000p-149:0x00000001) + f32(0x1.00000000000000000000p-149:0x00000001)
|
||||||
|
res: f32(0x1.00000000000000000000p-149:0x00000001) flags=UNDERFLOW INEXACT (32/0)
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
include $(SRC_PATH)/tests/tcg/i386/Makefile.target
|
include $(SRC_PATH)/tests/tcg/i386/Makefile.target
|
||||||
|
|
||||||
ifneq ($(CONFIG_LINUX),)
|
ifneq ($(CONFIG_LINUX_USER),)
|
||||||
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
|
||||||
|
|
|
@ -28,8 +28,8 @@ class FreeBSDVM(basevm.BaseVM):
|
||||||
name = "freebsd"
|
name = "freebsd"
|
||||||
arch = "x86_64"
|
arch = "x86_64"
|
||||||
|
|
||||||
link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.2/FreeBSD-12.2-RELEASE-amd64-disc1.iso.xz"
|
link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.3/FreeBSD-12.3-RELEASE-amd64-disc1.iso.xz"
|
||||||
csum = "a4530246cafbf1dd42a9bd3ea441ca9a78a6a0cd070278cbdf63f3a6f803ecae"
|
csum = "36dd0de50f1fe5f0a88e181e94657656de26fb64254412f74e80e128e8b938b4"
|
||||||
size = "20G"
|
size = "20G"
|
||||||
pkgs = [
|
pkgs = [
|
||||||
# build tools
|
# build tools
|
||||||
|
@ -65,8 +65,6 @@ class FreeBSDVM(basevm.BaseVM):
|
||||||
"zstd",
|
"zstd",
|
||||||
]
|
]
|
||||||
|
|
||||||
# TODO: Enable gnutls again once FreeBSD's libtasn1 got fixed
|
|
||||||
# See: https://gitlab.com/gnutls/libtasn1/-/merge_requests/71
|
|
||||||
BUILD_SCRIPT = """
|
BUILD_SCRIPT = """
|
||||||
set -e;
|
set -e;
|
||||||
rm -rf /home/qemu/qemu-test.*
|
rm -rf /home/qemu/qemu-test.*
|
||||||
|
@ -74,7 +72,7 @@ class FreeBSDVM(basevm.BaseVM):
|
||||||
mkdir src build; cd src;
|
mkdir src build; cd src;
|
||||||
tar -xf /dev/vtbd1;
|
tar -xf /dev/vtbd1;
|
||||||
cd ../build
|
cd ../build
|
||||||
../src/configure --python=python3.7 --disable-gnutls {configure_opts};
|
../src/configure --python=python3.7 {configure_opts};
|
||||||
gmake --output-sync -j{jobs} {target} {verbose};
|
gmake --output-sync -j{jobs} {target} {verbose};
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
|
@ -62,13 +62,11 @@ void qemu_clipboard_update(QemuClipboardInfo *info)
|
||||||
.type = QEMU_CLIPBOARD_UPDATE_INFO,
|
.type = QEMU_CLIPBOARD_UPDATE_INFO,
|
||||||
.info = info,
|
.info = info,
|
||||||
};
|
};
|
||||||
g_autoptr(QemuClipboardInfo) old = NULL;
|
|
||||||
|
|
||||||
assert(info->selection < QEMU_CLIPBOARD_SELECTION__COUNT);
|
assert(info->selection < QEMU_CLIPBOARD_SELECTION__COUNT);
|
||||||
|
|
||||||
notifier_list_notify(&clipboard_notifiers, ¬ify);
|
notifier_list_notify(&clipboard_notifiers, ¬ify);
|
||||||
|
|
||||||
old = cbinfo[info->selection];
|
qemu_clipboard_info_unref(cbinfo[info->selection]);
|
||||||
cbinfo[info->selection] = qemu_clipboard_info_ref(info);
|
cbinfo[info->selection] = qemu_clipboard_info_ref(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -500,10 +500,17 @@ void qemu_spice_display_refresh(SimpleSpiceDisplay *ssd)
|
||||||
|
|
||||||
/* spice display interface callbacks */
|
/* spice display interface callbacks */
|
||||||
|
|
||||||
|
#if SPICE_HAS_ATTACHED_WORKER
|
||||||
|
static void interface_attached_worker(QXLInstance *sin)
|
||||||
|
{
|
||||||
|
/* nothing to do */
|
||||||
|
}
|
||||||
|
#else
|
||||||
static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
|
static void interface_attach_worker(QXLInstance *sin, QXLWorker *qxl_worker)
|
||||||
{
|
{
|
||||||
/* nothing to do */
|
/* nothing to do */
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void interface_set_compression_level(QXLInstance *sin, int level)
|
static void interface_set_compression_level(QXLInstance *sin, int level)
|
||||||
{
|
{
|
||||||
|
@ -702,7 +709,11 @@ static const QXLInterface dpy_interface = {
|
||||||
.base.major_version = SPICE_INTERFACE_QXL_MAJOR,
|
.base.major_version = SPICE_INTERFACE_QXL_MAJOR,
|
||||||
.base.minor_version = SPICE_INTERFACE_QXL_MINOR,
|
.base.minor_version = SPICE_INTERFACE_QXL_MINOR,
|
||||||
|
|
||||||
|
#if SPICE_HAS_ATTACHED_WORKER
|
||||||
|
.attached_worker = interface_attached_worker,
|
||||||
|
#else
|
||||||
.attache_worker = interface_attach_worker,
|
.attache_worker = interface_attach_worker,
|
||||||
|
#endif
|
||||||
.set_compression_level = interface_set_compression_level,
|
.set_compression_level = interface_set_compression_level,
|
||||||
#if SPICE_NEEDS_SET_MM_TIME
|
#if SPICE_NEEDS_SET_MM_TIME
|
||||||
.set_mm_time = interface_set_mm_time,
|
.set_mm_time = interface_set_mm_time,
|
||||||
|
|
Loading…
Reference in New Issue