64386b2b36c348fc5a1b4e4f5a6e221249ed5894
[riscv-tests.git] / isa / rv64uv / amoadd_d.S
1 #*****************************************************************************
2 # amoadd_d.S
3 #-----------------------------------------------------------------------------
4 #
5 # Test amoadd.d 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 4,0
15 li a4,2048
16 vsetvl a4,a4
17
18 la a5,amodest
19 vmsv vx2,a5
20 li a5,1
21 vmsv vx3,a5
22 lui a0,%hi(vtcode)
23 vf %lo(vtcode)(a0)
24 la a6,dest
25 vsd vx1,a6
26 fence
27
28 li a1,0
29 loop:
30 ld a0,0(a6)
31 addi TESTNUM,a1,2
32 bne a0,a1,fail
33 addi a6,a6,8
34 addi a1,a1,1
35 bne a1,a4,loop
36 j pass
37
38 vtcode:
39 amoadd.d x1,x3,0(x2)
40 stop
41
42 TEST_PASSFAIL
43
44 RVTEST_CODE_END
45
46 .data
47 RVTEST_DATA_BEGIN
48
49 TEST_DATA
50
51 amodest:
52 .dword 0
53 dest:
54 .skip 16384
55
56 RVTEST_DATA_END