qemu/tests/tcg
Paolo Bonzini 2872b0f390 target/i386: implement FMA instructions
The only issue with FMA instructions is that there are _a lot_ of them (30
opcodes, each of which comes in up to 4 versions depending on VEX.W and
VEX.L; a total of 96 possibilities).  However, they can be implement with
only 6 helpers, two for scalar operations and four for packed operations.
(Scalar versions do not do any merging; they only affect the bottom 32
or 64 bits of the output operand.  Therefore, there is no separate XMM
and YMM of the scalar helpers).

First, we can reduce the number of helpers to one third by passing four
operands (one output and three inputs); the reordering of which operands
go to the multiply and which go to the add is done in emit.c.

Second, the different instructions also dispatch to the same softfloat
function, so the flags for float32_muladd and float64_muladd are passed
in the helper as int arguments, with a little extra complication to
handle FMADDSUB and FMSUBADD.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-10-22 09:05:54 +02:00
..
aarch64 tests/tcg: move compiler tests to Makefiles 2022-10-06 11:53:40 +01:00
alpha tests/tcg: move configuration to a sub-shell script 2019-09-10 14:09:00 +01:00
arm tests/tcg: clean up calls to run-test 2022-10-06 11:53:40 +01:00
cris tests/tcg: clean up calls to run-test 2022-10-06 11:53:40 +01:00
hexagon Hexagon (tests/tcg/hexagon): add fmin/fmax tests for signed zero 2022-09-19 11:55:23 -07:00
hppa target/hppa: Fix atomic_store_3 for STBY 2021-12-30 21:40:47 -08:00
i386 target/i386: implement FMA instructions 2022-10-22 09:05:54 +02:00
loongarch64 target/loongarch: Remove cpu_fcsr0 2022-08-08 19:42:53 -07:00
m68k tests/tcg/m68k: Add trap.c 2022-06-02 09:35:03 +02:00
minilib Remove leading underscores from QEMU defines 2021-06-21 05:49:01 +02:00
mips tests/tcg: move configuration to a sub-shell script 2019-09-10 14:09:00 +01:00
multiarch tests/tcg: clean up calls to run-test 2022-10-06 11:53:40 +01:00
nios2 tests/tcg/nios2: Add test-shadow-1 2022-04-26 08:17:10 -07:00
openrisc target/openrisc: Rename the cpu from or32 to or1k 2017-02-14 08:14:58 +11:00
ppc tests/tcg: move configuration to a sub-shell script 2019-09-10 14:09:00 +01:00
ppc64 tests/tcg: move compiler tests to Makefiles 2022-10-06 11:53:40 +01:00
ppc64le tests/tcg: unify ppc64 and ppc64le Makefiles 2022-10-06 11:53:40 +01:00
riscv64 target/riscv: Make translator stop before the end of a page 2022-09-06 08:04:26 +01:00
s390x tests/tcg: clean up calls to run-test 2022-10-06 11:53:40 +01:00
sh4 tests/tcg: completely disable threadcount for sh4 2022-02-28 16:42:35 +00:00
sparc64 tests/tcg/sparc64: Re-enable linux-test 2021-05-15 21:43:23 +02:00
tricore tests/tcg/tricore: Add muls test 2021-05-18 09:36:21 +01:00
x86_64 tests/tcg: clean up calls to run-test 2022-10-06 11:53:40 +01:00
xtensa tests/tcg/xtensa: fix vectors and checks in timer test 2022-05-06 15:27:40 -07:00
Makefile.target tests/tcg: move compiler tests to Makefiles 2022-10-06 11:53:40 +01:00
README Drop the deprecated lm32 target 2021-05-12 18:20:25 +02:00

This directory contains various interesting guest programs for
regression testing. Tests are either multi-arch, meaning they can be
built for all guest architectures that support linux-user executable,
or they are architecture specific.

CRIS
====
The testsuite for CRIS is in tests/tcg/cris.  You can run it
with "make test-cris".