From d76365240bd56ce981887e991f075839b5549aaf Mon Sep 17 00:00:00 2001 From: Konstantinos Margaritis Date: Tue, 24 Nov 2020 17:57:16 +0200 Subject: [PATCH] helper functions to print a m128 vector in debug mode --- src/util/arch/common/simd_utils.h | 38 +++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/util/arch/common/simd_utils.h b/src/util/arch/common/simd_utils.h index c16023ac..39cb91f0 100644 --- a/src/util/arch/common/simd_utils.h +++ b/src/util/arch/common/simd_utils.h @@ -44,6 +44,44 @@ #error "You need at least a 128-bit capable SIMD engine!" #endif // HAVE_SIMD_128_BITS +#ifdef DEBUG +static inline void print_m128_16x8(char *label, m128 vector) { + uint8_t __attribute__((aligned(16))) data[16]; + store128(data, vector); + DEBUG_PRINTF("%s: ", label); + for(int i=0; i < 16; i++) + printf("%02x ", data[i]); + printf("\n"); +} + +static inline void print_m128_8x16(char *label, m128 vector) { + uint16_t __attribute__((aligned(16))) data[8]; + store128(data, vector); + DEBUG_PRINTF("%s: ", label); + for(int i=0; i < 8; i++) + printf("%04x ", data[i]); + printf("\n"); +} + +static inline void print_m128_4x32(char *label, m128 vector) { + uint32_t __attribute__((aligned(16))) data[4]; + store128(data, vector); + DEBUG_PRINTF("%s: ", label); + for(int i=0; i < 4; i++) + printf("%08x ", data[i]); + printf("\n"); +} + +static inline void print_m128_2x64(char *label, m128 vector) { + uint64_t __attribute__((aligned(16))) data[2]; + store128(data, vector); + DEBUG_PRINTF("%s: ", label); + for(int i=0; i < 2; i++) + printf("%016lx ", data[i]); + printf("\n"); +} +#endif + /**** **** 256-bit Primitives ****/