n64/tests/testcases/rsp/input/ldv_sdv.toml
2020-07-12 14:36:42 -04:00

261 lines
5.6 KiB
TOML

input_desc = [
"v128:data",
"v128:prev",
"u32:offset",
"u32:dummy",
]
output_desc = [
"v128:ldv_e0",
"v128:ldv_e1",
"v128:ldv_e2",
"v128:ldv_e3",
"v128:ldv_e4",
"v128:ldv_e5",
"v128:ldv_e6",
"v128:ldv_e7",
"v128:ldv_e8",
"v128:ldv_e9",
"v128:ldv_e10",
"v128:ldv_e11",
"v128:ldv_e12",
"v128:ldv_e13",
"v128:ldv_e14",
"v128:ldv_e15",
"v128:sdv_e0",
"v128:sdv_e1",
"v128:sdv_e2",
"v128:sdv_e3",
"v128:sdv_e4",
"v128:sdv_e5",
"v128:sdv_e6",
"v128:sdv_e7",
"v128:sdv_e8",
"v128:sdv_e9",
"v128:sdv_e10",
"v128:sdv_e11",
"v128:sdv_e12",
"v128:sdv_e13",
"v128:sdv_e14",
"v128:sdv_e15",
]
rsp_code = """
li a0,$0
li a1,$800
lqv v0[e0],$10(a0) // input: prev
lqv v1[e0],$10(a0) // input: prev
lqv v2[e0],$10(a0) // input: prev
lqv v3[e0],$10(a0) // input: prev
lqv v4[e0],$10(a0) // input: prev
lqv v5[e0],$10(a0) // input: prev
lqv v6[e0],$10(a0) // input: prev
lqv v7[e0],$10(a0) // input: prev
lqv v8[e0],$10(a0) // input: prev
lqv v9[e0],$10(a0) // input: prev
lqv v10[e0],$10(a0) // input: prev
lqv v11[e0],$10(a0) // input: prev
lqv v12[e0],$10(a0) // input: prev
lqv v13[e0],$10(a0) // input: prev
lqv v14[e0],$10(a0) // input: prev
lqv v15[e0],$10(a0) // input: prev
lw t4,$20(a0) // input: offset
// This test is very sensitive to possible read/write mistakes to memory
// and we want to make sure that writes actually happen.
vxor v31,v31
add a2,a1,0
addi a2,$1F0
ClearLoop:
sqv v31[e0],$00(a2)
bne a1,a2,ClearLoop
subi a2,$10
add a0,t4 // add offset to disalign
ldv v0[e0],$00(a0)
ldv v1[e1],$00(a0)
ldv v2[e2],$00(a0)
ldv v3[e3],$00(a0)
ldv v4[e4],$00(a0)
ldv v5[e5],$00(a0)
ldv v6[e6],$00(a0)
ldv v7[e7],$00(a0)
ldv v8[e8],$00(a0)
ldv v9[e9],$00(a0)
ldv v10[e10],$00(a0)
ldv v11[e11],$00(a0)
ldv v12[e12],$00(a0)
ldv v13[e13],$00(a0)
ldv v14[e14],$00(a0)
ldv v15[e15],$00(a0)
sqv v0[e0],$00(a1)
sqv v1[e0],$10(a1)
sqv v2[e0],$20(a1)
sqv v3[e0],$30(a1)
sqv v4[e0],$40(a1)
sqv v5[e0],$50(a1)
sqv v6[e0],$60(a1)
sqv v7[e0],$70(a1)
sqv v8[e0],$80(a1)
sqv v9[e0],$90(a1)
sqv v10[e0],$A0(a1)
sqv v11[e0],$B0(a1)
sqv v12[e0],$C0(a1)
sqv v13[e0],$D0(a1)
sqv v14[e0],$E0(a1)
sqv v15[e0],$F0(a1)
li a0,$0
lqv v0[e0],$00(a0) // input: v0
add a1,t4 // add offset to disalign
sdv v0[e15],$1F0(a1)
sdv v0[e14],$1E0(a1)
sdv v0[e13],$1D0(a1)
sdv v0[e12],$1C0(a1)
sdv v0[e11],$1B0(a1)
sdv v0[e10],$1A0(a1)
sdv v0[e9],$190(a1)
sdv v0[e8],$180(a1)
sdv v0[e7],$170(a1)
sdv v0[e6],$160(a1)
sdv v0[e5],$150(a1)
sdv v0[e4],$140(a1)
sdv v0[e3],$130(a1)
sdv v0[e2],$120(a1)
sdv v0[e1],$110(a1)
sdv v0[e0],$100(a1)
break
"""
[[test]]
name = "offset0"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
0, # offset
0, # dummy
]
[[test]]
name = "offset1"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
1, # offset
0, # dummy
]
[[test]]
name = "offset2"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
2, # offset
0, # dummy
]
[[test]]
name = "offset3"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
3, # offset
0, # dummy
]
[[test]]
name = "offset4"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
4, # offset
0, # dummy
]
[[test]]
name = "offset5"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
5, # offset
0, # dummy
]
[[test]]
name = "offset6"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
6, # offset
0, # dummy
]
[[test]]
name = "offset7"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
7, # offset
0, # dummy
]
[[test]]
name = "offset8"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
8, # offset
0, # dummy
]
[[test]]
name = "offset9"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
9, # offset
0, # dummy
]
[[test]]
name = "offset10"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
10, # offset
0, # dummy
]
[[test]]
name = "offset11"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
11, # offset
0, # dummy
]
[[test]]
name = "offset12"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
12, # offset
0, # dummy
]
[[test]]
name = "offset13"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
13, # offset
0, # dummy
]
[[test]]
name = "offset14"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
14, # offset
0, # dummy
]
[[test]]
name = "offset15"
input = [
0x1122_3344, 0x5566_7788, 0x99AA_BBCC, 0xDDEE_FFAB, # v0
0x1234_5678, 0x9ABC_DEF0, 0x2143_6587, 0xA9CB_ED0F, # prev
15, # offset
0, # dummy
]