@@ -1202,10 +1202,10 @@ reg_t index[P.VU.vlmax]; \
12021202
12031203#define VI_LD (stride, offset, elt_width, is_mask_ldst ) \
12041204 const reg_t nf = insn.v_nf () + 1 ; \
1205+ VI_CHECK_LOAD (elt_width, is_mask_ldst); \
12051206 const reg_t vl = is_mask_ldst ? ((P.VU .vl ->read () + 7 ) / 8 ) : P.VU .vl ->read (); \
12061207 const reg_t baseAddr = RS1; \
12071208 const reg_t vd = insn.rd (); \
1208- VI_CHECK_LOAD (elt_width, is_mask_ldst); \
12091209 for (reg_t i = 0 ; i < vl; ++i) { \
12101210 VI_ELEMENT_SKIP; \
12111211 VI_STRIP (i); \
@@ -1220,12 +1220,12 @@ reg_t index[P.VU.vlmax]; \
12201220
12211221#define VI_LD_INDEX (elt_width, is_seg ) \
12221222 const reg_t nf = insn.v_nf () + 1 ; \
1223+ VI_CHECK_LD_INDEX (elt_width); \
12231224 const reg_t vl = P.VU .vl ->read (); \
12241225 const reg_t baseAddr = RS1; \
12251226 const reg_t vd = insn.rd (); \
12261227 if (!is_seg) \
12271228 require (nf == 1 ); \
1228- VI_CHECK_LD_INDEX (elt_width); \
12291229 VI_DUPLICATE_VREG (insn.rs2 (), elt_width); \
12301230 for (reg_t i = 0 ; i < vl; ++i) { \
12311231 VI_ELEMENT_SKIP; \
@@ -1256,10 +1256,10 @@ reg_t index[P.VU.vlmax]; \
12561256
12571257#define VI_ST (stride, offset, elt_width, is_mask_ldst ) \
12581258 const reg_t nf = insn.v_nf () + 1 ; \
1259+ VI_CHECK_STORE (elt_width, is_mask_ldst); \
12591260 const reg_t vl = is_mask_ldst ? ((P.VU .vl ->read () + 7 ) / 8 ) : P.VU .vl ->read (); \
12601261 const reg_t baseAddr = RS1; \
12611262 const reg_t vs3 = insn.rd (); \
1262- VI_CHECK_STORE (elt_width, is_mask_ldst); \
12631263 for (reg_t i = 0 ; i < vl; ++i) { \
12641264 VI_STRIP (i) \
12651265 VI_ELEMENT_SKIP; \
@@ -1274,12 +1274,12 @@ reg_t index[P.VU.vlmax]; \
12741274
12751275#define VI_ST_INDEX (elt_width, is_seg ) \
12761276 const reg_t nf = insn.v_nf () + 1 ; \
1277+ VI_CHECK_ST_INDEX (elt_width); \
12771278 const reg_t vl = P.VU .vl ->read (); \
12781279 const reg_t baseAddr = RS1; \
12791280 const reg_t vs3 = insn.rd (); \
12801281 if (!is_seg) \
12811282 require (nf == 1 ); \
1282- VI_CHECK_ST_INDEX (elt_width); \
12831283 VI_DUPLICATE_VREG (insn.rs2 (), elt_width); \
12841284 for (reg_t i = 0 ; i < vl; ++i) { \
12851285 VI_STRIP (i) \
@@ -1310,10 +1310,10 @@ reg_t index[P.VU.vlmax]; \
13101310
13111311#define VI_LDST_FF (elt_width ) \
13121312 const reg_t nf = insn.v_nf () + 1 ; \
1313+ VI_CHECK_LOAD (elt_width, false ); \
13131314 const reg_t vl = p->VU .vl ->read (); \
13141315 const reg_t baseAddr = RS1; \
13151316 const reg_t rd_num = insn.rd (); \
1316- VI_CHECK_LOAD (elt_width, false ); \
13171317 bool early_stop = false ; \
13181318 for (reg_t i = p->VU .vstart ->read (); i < vl; ++i) { \
13191319 VI_STRIP (i); \
0 commit comments