initial commit
[riscv-tests.git] / isa / rv64uv / amomin_w.S
1 #*****************************************************************************
2 # amomin_w.S
3 #-----------------------------------------------------------------------------
4 #
5 # Test amomin.w instruction in a vf block.
6 #
7
8 #include "riscv_test.h"
9 #include "test_macros.h"
10
11 RVTEST_RV64U
12 RVTEST_CODE_BEGIN
13
14 li a4,2048
15 vvcfgivl a4,a4,4,0
16
17 la a5,amodest
18 vmsv vx2,a5
19 lui a0,%hi(vtcode)
20 vf %lo(vtcode)(a0)
21 la a6,dest
22 vsw vx1,a6
23 fence.v.l
24
25 li a1,0
26 li a2,0
27 loop:
28 lw a0,0(a6)
29 addi x28,a1,2
30 bne a0,a2,fail
31 addi a6,a6,4
32 addi a1,a1,1
33 addi a2,a2,-1
34 bne a1,a4,loop
35 j pass
36
37 vtcode:
38 utidx x3
39 addi x3,x3,1
40 li x1,-1
41 mul x3,x3,x1
42 amomin.w x1,x3,0(x2)
43 stop
44
45 TEST_PASSFAIL
46
47 RVTEST_CODE_END
48
49 .data
50 RVTEST_DATA_BEGIN
51
52 TEST_DATA
53
54 amodest:
55 .word 0
56 dest:
57 .skip 16384
58
59 RVTEST_DATA_END