1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#*****************************************************************************
# vvadd_fw.S
#-----------------------------------------------------------------------------
#
# Test vvadd fw.
#
#include "riscv_test.h"
#include "test_macros.h"
RVTEST_RV64UV
RVTEST_CODE_BEGIN
vsetcfg 32,32
li a3,4
vsetvl a3,a3
la a3,src1
la a4,src2
vflw vf2,a3
vflw vf3,a4
lui a0,%hi(vtcode)
vf %lo(vtcode)(a0)
la a5,dest
vfsw vf2,a5
fence
la a6,result
lw a1,0(a5)
lw a2,0(a6)
li TESTNUM,2
bne a1,a2,fail
lw a1,4(a5)
li TESTNUM,3
bne a1,a2,fail
lw a1,8(a5)
li TESTNUM,4
bne a1,a2,fail
lw a1,12(a5)
li TESTNUM,5
bne a1,a2,fail
j pass
vtcode:
fadd.s f2,f2,f3
stop
TEST_PASSFAIL
RVTEST_CODE_END
.data
RVTEST_DATA_BEGIN
TEST_DATA
src1:
.single 0.1
.single 0.2
.single 0.3
.single 0.4
src2:
.single 0.4
.single 0.3
.single 0.2
.single 0.1
dest:
.word 0xdeadbeef
.word 0xdeadbeef
.word 0xdeadbeef
.word 0xdeadbeef
result:
.single 0.5
.single 0.5
.single 0.5
.single 0.5
RVTEST_DATA_END
|