Fix load segment2 m2 test cases
- set vl correctly
- fix expected output pattern
Because the impl is currently incorrect, the changed test cases now
fail, and are temporarily marked as skipped before we have the fixes.
Change-Id: Ibee12af3d6ae1eca16f59edfa2cc9aa9a1d4a13b
diff --git a/tests/cocotb/BUILD b/tests/cocotb/BUILD
index 0b030d8..499258f 100644
--- a/tests/cocotb/BUILD
+++ b/tests/cocotb/BUILD
@@ -187,9 +187,10 @@
"load8_segment2_unit_m1",
"load16_segment2_unit_m1",
"load32_segment2_unit_m1",
- "load8_segment2_unit_m2",
- "load16_segment2_unit_m2",
- "load32_segment2_unit_m2",
+ # TODO(davidgao): re-enable once fixes are in.
+ # "load8_segment2_unit_m2",
+ # "load16_segment2_unit_m2",
+ # "load32_segment2_unit_m2",
"load8_segment2_stride6_m1",
"load16_segment2_stride6_m1",
"load8_indexed_m1",
diff --git a/tests/cocotb/rvv/load_store/load16_segment2_unit_m2.cc b/tests/cocotb/rvv/load_store/load16_segment2_unit_m2.cc
index 98c2c7b..68fab72 100644
--- a/tests/cocotb/rvv/load_store/load16_segment2_unit_m2.cc
+++ b/tests/cocotb/rvv/load_store/load16_segment2_unit_m2.cc
@@ -21,7 +21,7 @@
__attribute__((used, retain)) void test_intrinsic(const uint16_t *x,
uint16_t *y) {
- vuint16m2x2_t v = __riscv_vlseg2e16_v_u16m2x2(in_buf, 32);
+ vuint16m2x2_t v = __riscv_vlseg2e16_v_u16m2x2(in_buf, 16);
vuint16m4_t vv = __riscv_vcreate_v_u16m2_u16m4(
__riscv_vget_v_u16m2x2_u16m2(v, 0),
diff --git a/tests/cocotb/rvv/load_store/load32_segment2_unit_m2.cc b/tests/cocotb/rvv/load_store/load32_segment2_unit_m2.cc
index e88f774..5790e4f 100644
--- a/tests/cocotb/rvv/load_store/load32_segment2_unit_m2.cc
+++ b/tests/cocotb/rvv/load_store/load32_segment2_unit_m2.cc
@@ -21,7 +21,7 @@
__attribute__((used, retain)) void test_intrinsic(const uint32_t *x,
uint32_t *y) {
- vuint32m2x2_t v = __riscv_vlseg2e32_v_u32m2x2(in_buf, 16);
+ vuint32m2x2_t v = __riscv_vlseg2e32_v_u32m2x2(in_buf, 8);
vuint32m4_t vv = __riscv_vcreate_v_u32m2_u32m4(
__riscv_vget_v_u32m2x2_u32m2(v, 0),
diff --git a/tests/cocotb/rvv/load_store/load8_segment2_unit_m2.cc b/tests/cocotb/rvv/load_store/load8_segment2_unit_m2.cc
index 97da9ae..2f3a10f 100644
--- a/tests/cocotb/rvv/load_store/load8_segment2_unit_m2.cc
+++ b/tests/cocotb/rvv/load_store/load8_segment2_unit_m2.cc
@@ -21,7 +21,7 @@
__attribute__((used, retain)) void test_intrinsic(const uint8_t *x,
uint8_t *y) {
- vuint8m2x2_t v = __riscv_vlseg2e8_v_u8m2x2(in_buf, 64);
+ auto v = __riscv_vlseg2e8_v_u8m2x2(in_buf, 32);
vuint8m4_t vv = __riscv_vcreate_v_u8m2_u8m4(
__riscv_vget_v_u8m2x2_u8m2(v, 0),
diff --git a/tests/cocotb/rvv_load_store_test.py b/tests/cocotb/rvv_load_store_test.py
index 2f3f11a..6fb4963 100644
--- a/tests/cocotb/rvv_load_store_test.py
+++ b/tests/cocotb/rvv_load_store_test.py
@@ -364,7 +364,8 @@
)
-@cocotb.test()
+# TODO(davidgao): re-enable once fixes are in.
+@cocotb.test(skip=True)
async def load8_segment2_unit_m2(dut):
await vector_load_store(
dut=dut,
@@ -372,12 +373,12 @@
dtype=np.uint8,
in_size=128,
out_size=128,
- pattern=(list(range(0, 32, 2)) + list(range(1, 32, 2)) +
- list(range(32, 64, 2)) + list(range(33, 64, 2))),
+ pattern=(list(range(0, 63, 2)) + list(range(1, 64, 2))),
)
-@cocotb.test()
+# TODO(davidgao): re-enable once fixes are in.
+@cocotb.test(skip=True)
async def load16_segment2_unit_m2(dut):
await vector_load_store(
dut=dut,
@@ -385,12 +386,12 @@
dtype=np.uint16,
in_size=64,
out_size=64,
- pattern=(list(range(0, 16, 2)) + list(range(1, 16, 2)) +
- list(range(16, 32, 2)) + list(range(17, 32, 2))),
+ pattern=(list(range(0, 31, 2)) + list(range(1, 32, 2))),
)
-@cocotb.test()
+# TODO(davidgao): re-enable once fixes are in.
+@cocotb.test(skip=True)
async def load32_segment2_unit_m2(dut):
await vector_load_store(
dut=dut,
@@ -398,8 +399,7 @@
dtype=np.uint32,
in_size=32,
out_size=32,
- pattern=(list(range(0, 8, 2)) + list(range(1, 8, 2)) +
- list(range(8, 16, 2)) + list(range(9, 16, 2))),
+ pattern=(list(range(0, 15, 2)) + list(range(1, 16, 2))),
)