tests/tcg/xtensa: test double precision load/store
Add ldi[p]/sdi[p]/ldx[p]/sdx[p] opcode tests to test_lsc. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
11029e949f
commit
b2d84da9b8
@ -140,4 +140,127 @@ test_end
|
||||
|
||||
#endif
|
||||
|
||||
#if XCHAL_HAVE_DFP
|
||||
|
||||
#if XCHAL_HAVE_BE
|
||||
#define F64_HIGH_OFF 0
|
||||
#else
|
||||
#define F64_HIGH_OFF 4
|
||||
#endif
|
||||
|
||||
.macro movdf fr, hi, lo
|
||||
movi a2, \hi
|
||||
movi a3, \lo
|
||||
wfrd \fr, a2, a3
|
||||
.endm
|
||||
|
||||
test ldi
|
||||
movi a2, 1
|
||||
wsr a2, cpenable
|
||||
|
||||
movi a2, 1f
|
||||
ldi f1, a2, 8
|
||||
ldi f2, a2, 16
|
||||
ldip f0, a2, 16
|
||||
movi a3, 1f + 16
|
||||
assert eq, a2, a3
|
||||
rfrd a2, f0
|
||||
movi a3, 0x3ff00000
|
||||
assert eq, a2, a3
|
||||
rfrd a2, f1
|
||||
movi a3, 0x40000000
|
||||
assert eq, a2, a3
|
||||
rfrd a2, f2
|
||||
movi a3, 0x40080000
|
||||
assert eq, a2, a3
|
||||
.data
|
||||
.align 8
|
||||
1:
|
||||
.double 1, 2, 3
|
||||
.text
|
||||
test_end
|
||||
|
||||
test sdi
|
||||
movdf f3, 0x40800000, 0
|
||||
movdf f4, 0x40a00000, 0
|
||||
movdf f5, 0x40c00000, 0
|
||||
movi a2, 1f
|
||||
sdi f4, a2, 8
|
||||
sdi f5, a2, 16
|
||||
sdip f3, a2, 16
|
||||
movi a3, 1f + 16
|
||||
assert eq, a2, a3
|
||||
l32i a4, a2, -16 + F64_HIGH_OFF
|
||||
movi a3, 0x40800000
|
||||
assert eq, a4, a3
|
||||
l32i a4, a2, -8 + F64_HIGH_OFF
|
||||
movi a3, 0x40a00000
|
||||
assert eq, a4, a3
|
||||
l32i a4, a2, F64_HIGH_OFF
|
||||
movi a3, 0x40c00000
|
||||
assert eq, a4, a3
|
||||
.data
|
||||
.align 8
|
||||
1:
|
||||
.double 0, 0, 0
|
||||
.text
|
||||
test_end
|
||||
|
||||
test ldx
|
||||
movi a2, 1f
|
||||
movi a3, 0
|
||||
movi a4, 8
|
||||
movi a5, 16
|
||||
ldx f7, a2, a4
|
||||
ldx f8, a2, a5
|
||||
ldxp f6, a2, a5
|
||||
movi a3, 1f + 16
|
||||
assert eq, a2, a3
|
||||
rfrd a2, f6
|
||||
movi a3, 0x401c0000
|
||||
assert eq, a2, a3
|
||||
rfrd a2, f7
|
||||
movi a3, 0x40200000
|
||||
assert eq, a2, a3
|
||||
rfrd a2, f8
|
||||
movi a3, 0x40220000
|
||||
assert eq, a2, a3
|
||||
.data
|
||||
.align 8
|
||||
1:
|
||||
.double 7, 8, 9
|
||||
.text
|
||||
test_end
|
||||
|
||||
test sdx
|
||||
movdf f9, 0x41200000, 0
|
||||
movdf f10, 0x41300000, 0
|
||||
movdf f11, 0x41400000, 0
|
||||
movi a2, 1f
|
||||
movi a3, 0
|
||||
movi a4, 8
|
||||
movi a5, 16
|
||||
sdx f10, a2, a4
|
||||
sdx f11, a2, a5
|
||||
sdxp f9, a2, a5
|
||||
movi a3, 1f + 16
|
||||
assert eq, a2, a3
|
||||
l32i a4, a2, -16 + F64_HIGH_OFF
|
||||
movi a3, 0x41200000
|
||||
assert eq, a4, a3
|
||||
l32i a4, a2, -8 + F64_HIGH_OFF
|
||||
movi a3, 0x41300000
|
||||
assert eq, a4, a3
|
||||
l32i a4, a2, F64_HIGH_OFF
|
||||
movi a3, 0x41400000
|
||||
assert eq, a4, a3
|
||||
.data
|
||||
.align 8
|
||||
1:
|
||||
.double 0, 0, 0
|
||||
.text
|
||||
test_end
|
||||
|
||||
#endif
|
||||
|
||||
test_suite_end
|
||||
|
Loading…
Reference in New Issue
Block a user