b507405de043fb93f61d08d60dd4cf7923dbc435
[riscv-tests.git] / isa / rv64uv / keepcfg.S
1 #*****************************************************************************
2 # utidx.S
3 #-----------------------------------------------------------------------------
4 #
5 # Test utidx instruction in a vf block.
6 #
7
8 #include "riscv_test.h"
9 #include "test_macros.h"
10
11 RVTEST_RV64UV
12 RVTEST_CODE_BEGIN
13
14 vsetcfg 2,0
15 li s0,2048
16 vsetvl s0,s0
17
18 lui a0,%hi(vtcode1)
19 vf %lo(vtcode1)(a0)
20 la a4,dest1
21 vsd vx1,a4
22
23 vsetcfg 3,0
24 li s1,2048
25 vsetvl s1,s1
26
27 lui a0,%hi(vtcode2)
28 vf %lo(vtcode2)(a0)
29 la a4,dest2
30 vsd vx1,a4
31
32 fence
33
34 la a4,dest1
35 li a1,1
36 loop1:
37 ld a0,0(a4)
38 addi TESTNUM,a1,2
39 bne a0,a1,fail
40 addi a4,a4,8
41 addi a1,a1,1
42 bne a1,s0,loop1
43
44 la a4,dest2
45 li a1,1024
46 li a2,1
47 loop2:
48 ld a0,0(a4)
49 addi TESTNUM,a1,2
50 bne a0,a1,fail
51 addi a4,a4,8
52 addi a1,a1,1
53 addi a2,a2,1
54 bne a2,s1,loop2
55
56 j pass
57
58 vtcode1:
59 utidx x1
60 addi x1,x1,1
61 stop
62
63 vtcode2:
64 utidx x1
65 addi x1,x1,1024
66 stop
67
68 TEST_PASSFAIL
69
70 RVTEST_CODE_END
71
72 .data
73 RVTEST_DATA_BEGIN
74
75 TEST_DATA
76
77 dest1:
78 .skip 16384
79
80 dest2:
81 .skip 16384
82
83 RVTEST_DATA_END