Mark vl and vtype as clobbered in inline asm

A few missed ones affected by compiler bug is fixed too.

Change-Id: I1101aea7261f54a1a1fc1749c4a639441fcabdc6
diff --git a/tests/cocotb/rvv/load_store/load16_index8.cc b/tests/cocotb/rvv/load_store/load16_index8.cc
index 2c299ba..fb85212 100644
--- a/tests/cocotb/rvv/load_store/load16_index8.cc
+++ b/tests/cocotb/rvv/load_store/load16_index8.cc
@@ -36,7 +36,8 @@
   asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vluxei8_v_u16mf2(in_buf, indices, vl);
@@ -48,7 +49,8 @@
   asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vluxei8_v_u16m1(in_buf, indices, vl);
@@ -60,7 +62,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vluxei8_v_u16m2(in_buf, indices, vl);
@@ -72,7 +75,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vluxei8_v_u16m4(in_buf, indices, vl);
@@ -84,7 +88,8 @@
   asm("vsetvli zero, %[vl], e8, m4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m4(index_buf, vl);
   auto data = __riscv_vluxei8_v_u16m8(in_buf, indices, vl);
@@ -97,7 +102,8 @@
   asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vloxei8_v_u16mf2(in_buf, indices, vl);
@@ -109,7 +115,8 @@
   asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vloxei8_v_u16m1(in_buf, indices, vl);
@@ -121,7 +128,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vloxei8_v_u16m2(in_buf, indices, vl);
@@ -133,7 +141,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vloxei8_v_u16m4(in_buf, indices, vl);
@@ -145,7 +154,8 @@
   asm("vsetvli zero, %[vl], e8, m4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m4(index_buf, vl);
   auto data = __riscv_vloxei8_v_u16m8(in_buf, indices, vl);
diff --git a/tests/cocotb/rvv/load_store/load32_index8.cc b/tests/cocotb/rvv/load_store/load32_index8.cc
index 069c6d5..5af0fd0 100644
--- a/tests/cocotb/rvv/load_store/load32_index8.cc
+++ b/tests/cocotb/rvv/load_store/load32_index8.cc
@@ -36,7 +36,8 @@
   asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vluxei8_v_u32m1(in_buf, indices, vl);
@@ -48,7 +49,8 @@
   asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vluxei8_v_u32m2(in_buf, indices, vl);
@@ -60,7 +62,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vluxei8_v_u32m4(in_buf, indices, vl);
@@ -72,7 +75,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vluxei8_v_u32m8(in_buf, indices, vl);
@@ -85,7 +89,8 @@
   asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vloxei8_v_u32m1(in_buf, indices, vl);
@@ -97,7 +102,8 @@
   asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vloxei8_v_u32m2(in_buf, indices, vl);
@@ -109,7 +115,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vloxei8_v_u32m4(in_buf, indices, vl);
@@ -121,7 +128,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vloxei8_v_u32m8(in_buf, indices, vl);
diff --git a/tests/cocotb/rvv/load_store/load8_index16.cc b/tests/cocotb/rvv/load_store/load8_index16.cc
index 25b1e2c..8a9a34d 100644
--- a/tests/cocotb/rvv/load_store/load8_index16.cc
+++ b/tests/cocotb/rvv/load_store/load8_index16.cc
@@ -36,7 +36,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxei16_v_u8mf4(in_buf, indices, vl);
@@ -48,7 +49,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxei16_v_u8mf2(in_buf, indices, vl);
@@ -60,7 +62,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxei16_v_u8m1(in_buf, indices, vl);
@@ -72,7 +75,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vluxei16_v_u8m2(in_buf, indices, vl);
@@ -84,7 +88,8 @@
   asm("vsetvli zero, %[vl], e16, m8, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m8(index_buf, vl);
   auto data = __riscv_vluxei16_v_u8m4(in_buf, indices, vl);
@@ -97,7 +102,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxei16_v_u8mf4(in_buf, indices, vl);
@@ -109,7 +115,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxei16_v_u8mf2(in_buf, indices, vl);
@@ -121,7 +128,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxei16_v_u8m1(in_buf, indices, vl);
@@ -133,7 +141,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vloxei16_v_u8m2(in_buf, indices, vl);
@@ -145,7 +154,8 @@
   asm("vsetvli zero, %[vl], e16, m8, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m8(index_buf, vl);
   auto data = __riscv_vloxei16_v_u8m4(in_buf, indices, vl);
diff --git a/tests/cocotb/rvv/load_store/load8_index16_seg.cc b/tests/cocotb/rvv/load_store/load8_index16_seg.cc
index 596404c..7c29cd0 100644
--- a/tests/cocotb/rvv/load_store/load8_index16_seg.cc
+++ b/tests/cocotb/rvv/load_store/load8_index16_seg.cc
@@ -36,7 +36,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxseg2ei16_v_u8mf4x2(in_buf, indices, vl);
@@ -49,7 +50,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxseg2ei16_v_u8mf2x2(in_buf, indices, vl);
@@ -62,7 +64,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxseg2ei16_v_u8m1x2(in_buf, indices, vl);
@@ -75,7 +78,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vluxseg2ei16_v_u8m2x2(in_buf, indices, vl);
@@ -88,7 +92,8 @@
   asm("vsetvli zero, %[vl], e16, m8, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m8(index_buf, vl);
   auto data = __riscv_vluxseg2ei16_v_u8m4x2(in_buf, indices, vl);
@@ -102,7 +107,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxseg3ei16_v_u8mf4x3(in_buf, indices, vl);
@@ -117,7 +123,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxseg3ei16_v_u8mf2x3(in_buf, indices, vl);
@@ -132,7 +139,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxseg3ei16_v_u8m1x3(in_buf, indices, vl);
@@ -147,7 +155,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vluxseg3ei16_v_u8m2x3(in_buf, indices, vl);
@@ -163,7 +172,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxseg4ei16_v_u8mf4x4(in_buf, indices, vl);
@@ -180,7 +190,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxseg4ei16_v_u8mf2x4(in_buf, indices, vl);
@@ -197,7 +208,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxseg4ei16_v_u8m1x4(in_buf, indices, vl);
@@ -214,7 +226,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vluxseg4ei16_v_u8m2x4(in_buf, indices, vl);
@@ -232,7 +245,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxseg5ei16_v_u8mf4x5(in_buf, indices, vl);
@@ -251,7 +265,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxseg5ei16_v_u8mf2x5(in_buf, indices, vl);
@@ -270,7 +285,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxseg5ei16_v_u8m1x5(in_buf, indices, vl);
@@ -290,7 +306,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxseg6ei16_v_u8mf4x6(in_buf, indices, vl);
@@ -311,7 +328,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxseg6ei16_v_u8mf2x6(in_buf, indices, vl);
@@ -332,7 +350,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxseg6ei16_v_u8m1x6(in_buf, indices, vl);
@@ -354,7 +373,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxseg7ei16_v_u8mf4x7(in_buf, indices, vl);
@@ -377,7 +397,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxseg7ei16_v_u8mf2x7(in_buf, indices, vl);
@@ -400,7 +421,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxseg7ei16_v_u8m1x7(in_buf, indices, vl);
@@ -424,7 +446,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vluxseg8ei16_v_u8mf4x8(in_buf, indices, vl);
@@ -449,7 +472,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vluxseg8ei16_v_u8mf2x8(in_buf, indices, vl);
@@ -474,7 +498,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vluxseg8ei16_v_u8m1x8(in_buf, indices, vl);
@@ -500,7 +525,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxseg2ei16_v_u8mf4x2(in_buf, indices, vl);
@@ -513,7 +539,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxseg2ei16_v_u8mf2x2(in_buf, indices, vl);
@@ -526,7 +553,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxseg2ei16_v_u8m1x2(in_buf, indices, vl);
@@ -539,7 +567,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vloxseg2ei16_v_u8m2x2(in_buf, indices, vl);
@@ -552,7 +581,8 @@
   asm("vsetvli zero, %[vl], e16, m8, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m8(index_buf, vl);
   auto data = __riscv_vloxseg2ei16_v_u8m4x2(in_buf, indices, vl);
@@ -566,7 +596,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxseg3ei16_v_u8mf4x3(in_buf, indices, vl);
@@ -581,7 +612,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxseg3ei16_v_u8mf2x3(in_buf, indices, vl);
@@ -596,7 +628,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxseg3ei16_v_u8m1x3(in_buf, indices, vl);
@@ -611,7 +644,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vloxseg3ei16_v_u8m2x3(in_buf, indices, vl);
@@ -627,7 +661,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxseg4ei16_v_u8mf4x4(in_buf, indices, vl);
@@ -644,7 +679,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxseg4ei16_v_u8mf2x4(in_buf, indices, vl);
@@ -661,7 +697,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxseg4ei16_v_u8m1x4(in_buf, indices, vl);
@@ -678,7 +715,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m4(index_buf, vl);
   auto data = __riscv_vloxseg4ei16_v_u8m2x4(in_buf, indices, vl);
@@ -696,7 +734,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxseg5ei16_v_u8mf4x5(in_buf, indices, vl);
@@ -715,7 +754,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxseg5ei16_v_u8mf2x5(in_buf, indices, vl);
@@ -734,7 +774,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxseg5ei16_v_u8m1x5(in_buf, indices, vl);
@@ -754,7 +795,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxseg6ei16_v_u8mf4x6(in_buf, indices, vl);
@@ -775,7 +817,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxseg6ei16_v_u8mf2x6(in_buf, indices, vl);
@@ -796,7 +839,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxseg6ei16_v_u8m1x6(in_buf, indices, vl);
@@ -818,7 +862,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxseg7ei16_v_u8mf4x7(in_buf, indices, vl);
@@ -841,7 +886,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxseg7ei16_v_u8mf2x7(in_buf, indices, vl);
@@ -864,7 +910,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxseg7ei16_v_u8m1x7(in_buf, indices, vl);
@@ -888,7 +935,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vloxseg8ei16_v_u8mf4x8(in_buf, indices, vl);
@@ -913,7 +961,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vloxseg8ei16_v_u8mf2x8(in_buf, indices, vl);
@@ -938,7 +987,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vloxseg8ei16_v_u8m1x8(in_buf, indices, vl);
diff --git a/tests/cocotb/rvv/load_store/load8_index32.cc b/tests/cocotb/rvv/load_store/load8_index32.cc
index d28cf38..ca4113c 100644
--- a/tests/cocotb/rvv/load_store/load8_index32.cc
+++ b/tests/cocotb/rvv/load_store/load8_index32.cc
@@ -36,7 +36,8 @@
   asm("vsetvli zero, %[vl], e32, m1, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m1(index_buf, vl);
   auto data = __riscv_vluxei32_v_u8mf4(in_buf, indices, vl);
@@ -48,7 +49,8 @@
   asm("vsetvli zero, %[vl], e32, m2, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m2(index_buf, vl);
   auto data = __riscv_vluxei32_v_u8mf2(in_buf, indices, vl);
@@ -60,7 +62,8 @@
   asm("vsetvli zero, %[vl], e32, m4, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m4(index_buf, vl);
   auto data = __riscv_vluxei32_v_u8m1(in_buf, indices, vl);
@@ -72,7 +75,8 @@
   asm("vsetvli zero, %[vl], e32, m8, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m8(index_buf, vl);
   auto data = __riscv_vluxei32_v_u8m2(in_buf, indices, vl);
@@ -85,7 +89,8 @@
   asm("vsetvli zero, %[vl], e32, m1, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m1(index_buf, vl);
   auto data = __riscv_vloxei32_v_u8mf4(in_buf, indices, vl);
@@ -97,7 +102,8 @@
   asm("vsetvli zero, %[vl], e32, m2, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m2(index_buf, vl);
   auto data = __riscv_vloxei32_v_u8mf2(in_buf, indices, vl);
@@ -109,7 +115,8 @@
   asm("vsetvli zero, %[vl], e32, m4, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m4(index_buf, vl);
   auto data = __riscv_vloxei32_v_u8m1(in_buf, indices, vl);
@@ -121,7 +128,8 @@
   asm("vsetvli zero, %[vl], e32, m8, ta, ma;"
       "vle32.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle32_v_u32m8(index_buf, vl);
   auto data = __riscv_vloxei32_v_u8m2(in_buf, indices, vl);
diff --git a/tests/cocotb/rvv/load_store/store16_index8.cc b/tests/cocotb/rvv/load_store/store16_index8.cc
index 1a9b19c..bca9dac 100644
--- a/tests/cocotb/rvv/load_store/store16_index8.cc
+++ b/tests/cocotb/rvv/load_store/store16_index8.cc
@@ -31,13 +31,27 @@
 extern "C" {
 // Unordered
 __attribute__((used, retain)) void vsuxei8_v_u16mf2() {
-  auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
+  vuint8mf4_t indices;
+  asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
+      "vle8.v %[index], %[index_buf];"
+      : [index] "=vr"(indices)
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
+  // TODO: Revert once compiler bug is eliminated
+  // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vle16_v_u16mf2(in_buf, vl);
   __riscv_vsuxei8_v_u16mf2(out_buf, indices, data, vl);
 }
 
 __attribute__((used, retain)) void vsuxei8_v_u16m1() {
-  auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
+  vuint8mf2_t indices;
+  asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
+      "vle8.v %[index], %[index_buf];"
+      : [index] "=vr"(indices)
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
+  // TODO: Revert once compiler bug is eliminated
+  // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vle16_v_u16m1(in_buf, vl);
   __riscv_vsuxei8_v_u16m1(out_buf, indices, data, vl);
 }
@@ -47,7 +61,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vle16_v_u16m2(in_buf, vl);
@@ -59,7 +74,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vle16_v_u16m4(in_buf, vl);
@@ -71,7 +87,8 @@
   asm("vsetvli zero, %[vl], e8, m4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m4(index_buf, vl);
   auto data = __riscv_vle16_v_u16m8(in_buf, vl);
@@ -80,13 +97,27 @@
 
 // Ordered
 __attribute__((used, retain)) void vsoxei8_v_u16mf2() {
-  auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
+  vuint8mf4_t indices;
+  asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
+      "vle8.v %[index], %[index_buf];"
+      : [index] "=vr"(indices)
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
+  // TODO: Revert once compiler bug is eliminated
+  // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vle16_v_u16mf2(in_buf, vl);
   __riscv_vsoxei8_v_u16mf2(out_buf, indices, data, vl);
 }
 
 __attribute__((used, retain)) void vsoxei8_v_u16m1() {
-  auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
+  vuint8mf2_t indices;
+  asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
+      "vle8.v %[index], %[index_buf];"
+      : [index] "=vr"(indices)
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
+  // TODO: Revert once compiler bug is eliminated
+  // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vle16_v_u16m1(in_buf, vl);
   __riscv_vsoxei8_v_u16m1(out_buf, indices, data, vl);
 }
@@ -96,7 +127,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vle16_v_u16m2(in_buf, vl);
@@ -108,7 +140,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vle16_v_u16m4(in_buf, vl);
@@ -120,7 +153,8 @@
   asm("vsetvli zero, %[vl], e8, m4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m4(index_buf, vl);
   auto data = __riscv_vle16_v_u16m8(in_buf, vl);
diff --git a/tests/cocotb/rvv/load_store/store32_index16.cc b/tests/cocotb/rvv/load_store/store32_index16.cc
index 65cbc5d..0a1df6a 100644
--- a/tests/cocotb/rvv/load_store/store32_index16.cc
+++ b/tests/cocotb/rvv/load_store/store32_index16.cc
@@ -35,7 +35,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m1(in_buf, vl);
@@ -47,7 +48,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vle32_v_u32m2(in_buf, vl);
@@ -59,7 +61,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m1(index_buf, vl);
   auto data = __riscv_vle32_v_u32m4(in_buf, vl);
@@ -71,7 +74,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16m2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m8(in_buf, vl);
@@ -84,7 +88,8 @@
   asm("vsetvli zero, %[vl], e16, mf2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u16mf2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m1(in_buf, vl);
@@ -96,7 +101,8 @@
   asm("vsetvli zero, %[vl], e16, m1, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u8mf2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m2(in_buf, vl);
@@ -108,7 +114,8 @@
   asm("vsetvli zero, %[vl], e16, m2, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u8m1(index_buf, vl);
   auto data = __riscv_vle32_v_u32m4(in_buf, vl);
@@ -120,7 +127,8 @@
   asm("vsetvli zero, %[vl], e16, m4, ta, ma;"
       "vle16.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle16_v_u8m2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m8(in_buf, vl);
diff --git a/tests/cocotb/rvv/load_store/store32_index8.cc b/tests/cocotb/rvv/load_store/store32_index8.cc
index e79ff9f..45caadb 100644
--- a/tests/cocotb/rvv/load_store/store32_index8.cc
+++ b/tests/cocotb/rvv/load_store/store32_index8.cc
@@ -35,7 +35,8 @@
   asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vle32_v_u32m1(in_buf, vl);
@@ -47,7 +48,8 @@
   asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m2(in_buf, vl);
@@ -59,7 +61,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vle32_v_u32m4(in_buf, vl);
@@ -71,7 +74,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m8(in_buf, vl);
@@ -84,7 +88,8 @@
   asm("vsetvli zero, %[vl], e8, mf4, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf4(index_buf, vl);
   auto data = __riscv_vle32_v_u32m1(in_buf, vl);
@@ -96,7 +101,8 @@
   asm("vsetvli zero, %[vl], e8, mf2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8mf2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m2(in_buf, vl);
@@ -108,7 +114,8 @@
   asm("vsetvli zero, %[vl], e8, m1, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m1(index_buf, vl);
   auto data = __riscv_vle32_v_u32m4(in_buf, vl);
@@ -120,7 +127,8 @@
   asm("vsetvli zero, %[vl], e8, m2, ta, ma;"
       "vle8.v %[index], %[index_buf];"
       : [index] "=vr"(indices)
-      : [vl] "r"(vl), [index_buf] "m"(index_buf));
+      : [vl] "r"(vl), [index_buf] "m"(index_buf)
+      : "vl", "vtype");
   // TODO: Revert once compiler bug is eliminated
   // auto indices = __riscv_vle8_v_u8m2(index_buf, vl);
   auto data = __riscv_vle32_v_u32m8(in_buf, vl);