tests/tcg/ppc64le: tests for brh/brw/brd

Tests for Byte-Reverse Halfword, Word and Doubleword

Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
Tested-by: Fabiano Rosas <farosas@linux.ibm.com>
[AJB: tweak to make rules for skip/plugins]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210423205757.1752480-3-matheus.ferst@eldorado.org.br>
Message-Id: <20210512102051.12134-28-alex.bennee@linaro.org>
This commit is contained in:
Matheus Ferst 2021-05-12 11:20:47 +01:00 committed by Alex Bennée
parent cf9b6d215e
commit ec9ad11d69
3 changed files with 47 additions and 0 deletions

View file

@ -10,4 +10,17 @@ PPC64_TESTS=bcdsub
endif
bcdsub: CFLAGS += -mpower8-vector
PPC64_TESTS += byte_reverse
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
run-byte_reverse: QEMU_OPTS+=-cpu POWER10
run-plugin-byte_reverse-with-%: QEMU_OPTS+=-cpu POWER10
else
byte_reverse:
$(call skip-test, "BUILD of $@", "missing compiler support")
run-byte_reverse:
$(call skip-test, "RUN of byte_reverse", "not built")
run-plugin-byte_reverse-with-%:
$(call skip-test, "RUN of byte_reverse ($*)", "not built")
endif
TESTS += $(PPC64_TESTS)

View file

@ -9,4 +9,17 @@ PPC64LE_TESTS=bcdsub
endif
bcdsub: CFLAGS += -mpower8-vector
PPC64LE_TESTS += byte_reverse
ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
run-byte_reverse: QEMU_OPTS+=-cpu POWER10
run-plugin-byte_reverse-with-%: QEMU_OPTS+=-cpu POWER10
else
byte_reverse:
$(call skip-test, "BUILD of $@", "missing compiler support")
run-byte_reverse:
$(call skip-test, "RUN of byte_reverse", "not built")
run-plugin-byte_reverse-with-%:
$(call skip-test, "RUN of byte_reverse ($*)", "not built")
endif
TESTS += $(PPC64LE_TESTS)

View file

@ -0,0 +1,21 @@
#include <assert.h>
int main(void)
{
unsigned long var;
var = 0xFEDCBA9876543210;
asm("brh %0, %0" : "+r"(var));
assert(var == 0xDCFE98BA54761032);
var = 0xFEDCBA9876543210;
asm("brw %0, %0" : "+r"(var));
assert(var == 0x98BADCFE10325476);
var = 0xFEDCBA9876543210;
asm("brd %0, %0" : "+r"(var));
assert(var == 0x1032547698BADCFE);
return 0;
}