Skip to content

Commit

Permalink
tests/tcg/ppc64le: tests for brh/brw/brd
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
mferst authored and stsquad committed May 18, 2021
1 parent cf9b6d2 commit ec9ad11
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
13 changes: 13 additions & 0 deletions tests/tcg/ppc64/Makefile.target
Expand Up @@ -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)
13 changes: 13 additions & 0 deletions tests/tcg/ppc64le/Makefile.target
Expand Up @@ -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)
21 changes: 21 additions & 0 deletions tests/tcg/ppc64le/byte_reverse.c
@@ -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;
}

0 comments on commit ec9ad11

Please sign in to comment.