Updating sv_sraw_elwidth to use SV_ELWIDTH_TEST from sv_test_macros.h
[riscv-tests.git] / isa / rv64ui / sv_sraw_elwidth.S
1 #include "riscv_test.h"
2 #include "sv_test_macros.h"
3
4 RVTEST_RV64U # Define TVM used by program.
5
6 # SV test: vector-vector add
7 #
8 # sets up x3 and x4 with data, sets VL to 2, and carries out
9 # an "add 1 to x3". which actually means "add 1 to x3 *AND* add 1 to x4"
10
11 # Test code region.
12 RVTEST_CODE_BEGIN # Start of test code.
13
14 SV_ELWIDTH_TEST(sraw, SV_LDD_DATA, testdata, 8, 0,
15 3, SV_W_DFLT, SV_W_DFLT, SV_W_DFLT, 1, 1, 1,
16 0x21, 0x82, 0x0000000000000000)
17 SV_ELWIDTH_TEST(sraw, SV_LDD_DATA, testdata, 8, 0,
18 3, SV_W_DFLT, SV_W_DFLT, SV_W_32BIT, 1, 1, 1,
19 0x0000008200000021, 0xa5a5a5a500000000, 0xa5a5a5a5a5a5a5a5)
20 SV_ELWIDTH_TEST(sraw, SV_LDD_DATA, testdata, 8, 0,
21 3, SV_W_8BIT, SV_W_8BIT, SV_W_DFLT, 1, 1, 1,
22 0x9, 0x11, 0x19)
23 SV_ELWIDTH_TEST(sraw, SV_LDD_DATA, testdata, 8, 0,
24 3, SV_W_8BIT, SV_W_8BIT, SV_W_32BIT, 1, 1, 1,
25 0x0000001100000009, 0xa5a5a5a500000019, 0xa5a5a5a5a5a5a5a5)
26 SV_ELWIDTH_TEST(sraw, SV_LDD_DATA, testdata, 8, 0,
27 3, SV_W_8BIT, SV_W_8BIT, SV_W_16BIT, 1, 1, 1,
28 0xa5a5001900110009, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5)
29 SV_ELWIDTH_TEST(sraw, SV_LDD_DATA, testdata, 8, 0,
30 3, SV_W_8BIT, SV_W_8BIT, SV_W_8BIT, 1, 1, 1,
31 0xa5a5a5a5a5191109, 0xa5a5a5a5a5a5a5a5, 0xa5a5a5a5a5a5a5a5)
32
33 RVTEST_PASS # Signal success.
34 fail:
35 RVTEST_FAIL
36 RVTEST_CODE_END # End of test code.
37
38 # Input data section.
39 # This section is optional, and this data is NOT saved in the output.
40 .data
41 .align 3
42 testdata:
43 .dword 0x0000005949398979
44 .dword 0x0000005747372717
45 .dword 0x0000000000000000
46 .dword 0x0000005242322212
47 .dword 0x0000005141312111
48 .dword 0x0000000000000000
49
50 # Output data section.
51 RVTEST_DATA_BEGIN # Start of test output data region.
52 .align 3
53 result:
54 .dword -1
55 .dword -1
56 .dword -1
57 RVTEST_DATA_END # End of test output data region.
58