1 #include "riscv_test.h"
2 #include "sv_test_macros.h"
4 RVTEST_RV64U # Define TVM used by program.
7 # SV test: vector-vector add
9 # sets up x3 and x4 with data, sets VL to 2, and carries out
10 # an "add 1 to x3". which actually means "add 1 to x3 *AND* add 1 to x4"
13 RVTEST_CODE_BEGIN # Start of test code.
15 # TODO: add "addw" argument, add testdata argument
16 SV_ELWIDTH_TEST( addw, testdata, 3, 0, 0, 0, 1, 1, 1,
17 0xffffffff8b6bab8b, 0xffffffff88684828, 0x0000000000000000 )
18 SV_ELWIDTH_TEST( addw, testdata, 3, 0, 0, 3, 1, 1, 1,
19 0x886848288b6bab8b, 0xa5a5a5a500000000, 0xa5a5a5a5a5a5a5a5 )
20 SV_ELWIDTH_TEST( addw, testdata, 3, 1, 1, 0, 1, 1, 1,
21 0xffffffffffffff8b, 0xffffffffffffffab, 0x000000000000006b )
22 SV_ELWIDTH_TEST( addw, testdata, 3, 1, 1, 3, 1, 1, 1,
23 0xffffffabffffff8b, 0xa5a5a5a50000006b, 0xa5a5a5a5a5a5a5a5 )
24 SV_ELWIDTH_TEST( addw, testdata, 3, 1, 1, 2, 1, 1, 1,
25 0xa5a5006bffabff8b, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5 )
26 SV_ELWIDTH_TEST( addw, testdata, 3, 1, 1, 1, 1, 1, 1,
27 0xa5a5a5a5a56bab8b, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5 )
29 # these test a scalar destination, for sign-extension on different
30 # widths of source/dest.
31 SV_ELWIDTH_TEST( addw, testdata, 3, 0, 0, 0, 1, 1, 0,
32 0xffffffff8b6bab8b, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5 )
33 SV_ELWIDTH_TEST( addw, testdata, 3, 3, 3, 3, 1, 1, 0,
34 0xffffffff8b6bab8b, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5 )
35 SV_ELWIDTH_TEST( addw, testdata, 3, 2, 2, 3, 1, 1, 0,
36 0xffffffffffffab8b, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5 )
37 SV_ELWIDTH_TEST( addw, testdata, 3, 3, 2, 3, 1, 1, 0,
38 0x000000004232ab8b, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5 )
39 SV_ELWIDTH_TEST( addw, testdata, 3, 2, 3, 3, 1, 1, 0,
40 0x000000004939ab8b, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5 )
42 # these test scalar sources, for sign-extension on different
43 # widths of source/dest.
44 SV_ELWIDTH_TEST( addw, testdata, 3, 0, 0, 0, 0, 1, 1,
45 0xffffffff8b6bab8b, 0xffffffff89694929, 0x0000000042322212 )
46 SV_ELWIDTH_TEST( addw, testdata, 3, 0, 0, 3, 0, 1, 1,
47 0x896949298b6bab8b, 0xa5a5a5a542322212, 0xa5a5a5a5a5a5a5a5 )
51 RVTEST_PASS # Signal success.
55 RVTEST_CODE_END # End of test code.
58 # This section is optional, and this data is NOT saved in the output.
62 .dword 0x0000005949398979
63 .dword 0x0000005747372717
64 .dword 0x0000000000000000
65 .dword 0x0000005242322212
66 .dword 0x0000005141312111
67 .dword 0x0000000000000000
69 # Output data section.
70 RVTEST_DATA_BEGIN # Start of test output data region.
76 RVTEST_DATA_END # End of test output data region.