#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int16_t, +)
+DEF_VX_BINARY_CASE_0(int16_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int32_t, +)
+DEF_VX_BINARY_CASE_0(int32_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int64_t, +)
+DEF_VX_BINARY_CASE_0(int64_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int8_t, +)
+DEF_VX_BINARY_CASE_0(int8_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint16_t, +)
+DEF_VX_BINARY_CASE_0(uint16_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint32_t, +)
+DEF_VX_BINARY_CASE_0(uint32_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint64_t, +)
+DEF_VX_BINARY_CASE_0(uint64_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint8_t, +)
+DEF_VX_BINARY_CASE_0(uint8_t, +, add)
/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int16_t, +)
+DEF_VX_BINARY_CASE_0(int16_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int32_t, +)
+DEF_VX_BINARY_CASE_0(int32_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int64_t, +)
+DEF_VX_BINARY_CASE_0(int64_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int8_t, +)
+DEF_VX_BINARY_CASE_0(int8_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint16_t, +)
+DEF_VX_BINARY_CASE_0(uint16_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint32_t, +)
+DEF_VX_BINARY_CASE_0(uint32_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint64_t, +)
+DEF_VX_BINARY_CASE_0(uint64_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint8_t, +)
+DEF_VX_BINARY_CASE_0(uint8_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int16_t, +)
+DEF_VX_BINARY_CASE_0(int16_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int32_t, +)
+DEF_VX_BINARY_CASE_0(int32_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int64_t, +)
+DEF_VX_BINARY_CASE_0(int64_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(int8_t, +)
+DEF_VX_BINARY_CASE_0(int8_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint16_t, +)
+DEF_VX_BINARY_CASE_0(uint16_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint32_t, +)
+DEF_VX_BINARY_CASE_0(uint32_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint64_t, +)
+DEF_VX_BINARY_CASE_0(uint64_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_0(uint8_t, +)
+DEF_VX_BINARY_CASE_0(uint8_t, +, add)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int16_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(int16_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int32_t, +, VX_BINARY_BODY_X4)
+DEF_VX_BINARY_CASE_1(int32_t, +, add, VX_BINARY_BODY_X4)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int64_t, +, VX_BINARY_BODY)
+DEF_VX_BINARY_CASE_1(int64_t, +, add, VX_BINARY_BODY)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int8_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(int8_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint16_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(uint16_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint32_t, +, VX_BINARY_BODY_X4)
+DEF_VX_BINARY_CASE_1(uint32_t, +, add, VX_BINARY_BODY_X4)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint64_t, +, VX_BINARY_BODY)
+DEF_VX_BINARY_CASE_1(uint64_t, +, add, VX_BINARY_BODY)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint8_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(uint8_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int16_t, +, VX_BINARY_BODY_X8)
+DEF_VX_BINARY_CASE_1(int16_t, +, add, VX_BINARY_BODY_X8)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int32_t, +, VX_BINARY_BODY_X4)
+DEF_VX_BINARY_CASE_1(int32_t, +, add, VX_BINARY_BODY_X4)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int64_t, +, VX_BINARY_BODY)
+DEF_VX_BINARY_CASE_1(int64_t, +, add, VX_BINARY_BODY)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int8_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(int8_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint16_t, +, VX_BINARY_BODY_X8)
+DEF_VX_BINARY_CASE_1(uint16_t, +, add, VX_BINARY_BODY_X8)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint32_t, +, VX_BINARY_BODY_X4)
+DEF_VX_BINARY_CASE_1(uint32_t, +, add, VX_BINARY_BODY_X4)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint64_t, +, VX_BINARY_BODY)
+DEF_VX_BINARY_CASE_1(uint64_t, +, add, VX_BINARY_BODY)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint8_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(uint8_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int16_t, +, VX_BINARY_BODY_X8)
+DEF_VX_BINARY_CASE_1(int16_t, +, add, VX_BINARY_BODY_X8)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int32_t, +, VX_BINARY_BODY_X4)
+DEF_VX_BINARY_CASE_1(int32_t, +, add, VX_BINARY_BODY_X4)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int64_t, +, VX_BINARY_BODY)
+DEF_VX_BINARY_CASE_1(int64_t, +, add, VX_BINARY_BODY)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(int8_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(int8_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint16_t, +, VX_BINARY_BODY_X8)
+DEF_VX_BINARY_CASE_1(uint16_t, +, add, VX_BINARY_BODY_X8)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint32_t, +, VX_BINARY_BODY_X4)
+DEF_VX_BINARY_CASE_1(uint32_t, +, add, VX_BINARY_BODY_X4)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint64_t, +, VX_BINARY_BODY)
+DEF_VX_BINARY_CASE_1(uint64_t, +, add, VX_BINARY_BODY)
/* { dg-final { scan-assembler-not {vadd.vx} } } */
#include "vx_binary.h"
-DEF_VX_BINARY_CASE_1(uint8_t, +, VX_BINARY_BODY_X16)
+DEF_VX_BINARY_CASE_1(uint8_t, +, add, VX_BINARY_BODY_X16)
/* { dg-final { scan-assembler {vadd.vx} } } */
#include <stdint.h>
-#define DEF_VX_BINARY_CASE_0(T, OP) \
-void \
-test_vx_binary_case_0 (T * restrict out, T * restrict in, T x, unsigned n) \
-{ \
- for (unsigned i = 0; i < n; i++) \
- out[i] = in[i] OP x; \
+#define DEF_VX_BINARY_CASE_0(T, OP, NAME) \
+void \
+test_vx_binary_##NAME##_##T##_case_0 (T * restrict out, T * restrict in, \
+ T x, unsigned n) \
+{ \
+ for (unsigned i = 0; i < n; i++) \
+ out[i] = in[i] OP x; \
}
-#define DEF_VX_BINARY_CASE_0_WRAP(T, OP) DEF_VX_BINARY_CASE_0(T, OP)
-#define RUN_VX_BINARY_CASE_0(out, in, x, n) test_vx_binary_case_0(out, in, x, n)
-#define RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n) RUN_VX_BINARY_CASE_0(out, in, x, n)
+#define DEF_VX_BINARY_CASE_0_WRAP(T, OP, NAME) \
+ DEF_VX_BINARY_CASE_0(T, OP, NAME)
+#define RUN_VX_BINARY_CASE_0(T, NAME, out, in, x, n) \
+ test_vx_binary_##NAME##_##T##_case_0(out, in, x, n)
+#define RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n) \
+ RUN_VX_BINARY_CASE_0(T, NAME, out, in, x, n)
#define VX_BINARY_BODY(op) \
out[k + 0] = in[k + 0] op tmp; \
VX_BINARY_BODY_X64(op) \
VX_BINARY_BODY_X64(op)
-#define DEF_VX_BINARY_CASE_1(T, OP, BODY) \
-void \
-test_vx_binary_case_1 (T * restrict out, T * restrict in, T x, unsigned n) \
-{ \
- unsigned k = 0; \
- T tmp = x + 3; \
- \
- while (k < n) \
- { \
- tmp = tmp ^ 0x3f; \
- BODY(OP) \
- } \
+#define DEF_VX_BINARY_CASE_1(T, OP, NAME, BODY) \
+void \
+test_vx_binary_##NAME##_##T##_case_1 (T * restrict out, T * restrict in, \
+ T x, unsigned n) \
+{ \
+ unsigned k = 0; \
+ T tmp = x + 3; \
+ \
+ while (k < n) \
+ { \
+ tmp = tmp ^ 0x3f; \
+ BODY(OP) \
+ } \
}
-#define DEF_VX_BINARY_CASE_1_WRAP(T, OP, BODY) DEF_VX_BINARY_CASE_1(T, OP, BODY)
+#define DEF_VX_BINARY_CASE_1_WRAP(T, OP, NAME, BODY) \
+ DEF_VX_BINARY_CASE_1(T, OP, NAME, BODY)
#endif
T *in = TEST_DATA[i][1];
T *expect = TEST_DATA[i][2];
- TEST_RUN (out, in, x, N);
+ TEST_RUN (T, NAME, out, in, x, N);
for (k = 0; k < N; k++)
if (out[k] != expect[k])
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T int16_t
+#define T int16_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, NAME)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T int32_t
+#define T int32_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, NAME)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T int64_t
+#define T int64_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, NAME)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T int8_t
+#define T int8_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, add)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T uint16_t
+#define T uint16_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, NAME)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T uint32_t
+#define T uint32_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, NAME)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T uint64_t
+#define T uint64_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, NAME)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"
#include "vx_binary.h"
#include "vx_binary_data.h"
-#define T uint8_t
+#define T uint8_t
+#define NAME add
-DEF_VX_BINARY_CASE_0_WRAP(T, +)
+DEF_VX_BINARY_CASE_0_WRAP(T, +, NAME)
-#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
-#define TEST_RUN(out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(out, in, x, n)
+#define TEST_DATA TEST_BINARY_DATA_WRAP(T, vadd)
+#define TEST_RUN(T, NAME, out, in, x, n) RUN_VX_BINARY_CASE_0_WRAP(T, NAME, out, in, x, n)
#include "vx_binary_run.h"