@@ -1202,10 +1202,10 @@ reg_t index[P.VU.vlmax]; \
1202
1202
1203
1203
#define VI_LD (stride, offset, elt_width, is_mask_ldst ) \
1204
1204
const reg_t nf = insn.v_nf () + 1 ; \
1205
+ VI_CHECK_LOAD (elt_width, is_mask_ldst); \
1205
1206
const reg_t vl = is_mask_ldst ? ((P.VU .vl ->read () + 7 ) / 8 ) : P.VU .vl ->read (); \
1206
1207
const reg_t baseAddr = RS1; \
1207
1208
const reg_t vd = insn.rd (); \
1208
- VI_CHECK_LOAD (elt_width, is_mask_ldst); \
1209
1209
for (reg_t i = 0 ; i < vl; ++i) { \
1210
1210
VI_ELEMENT_SKIP; \
1211
1211
VI_STRIP (i); \
@@ -1220,12 +1220,12 @@ reg_t index[P.VU.vlmax]; \
1220
1220
1221
1221
#define VI_LD_INDEX (elt_width, is_seg ) \
1222
1222
const reg_t nf = insn.v_nf () + 1 ; \
1223
+ VI_CHECK_LD_INDEX (elt_width); \
1223
1224
const reg_t vl = P.VU .vl ->read (); \
1224
1225
const reg_t baseAddr = RS1; \
1225
1226
const reg_t vd = insn.rd (); \
1226
1227
if (!is_seg) \
1227
1228
require (nf == 1 ); \
1228
- VI_CHECK_LD_INDEX (elt_width); \
1229
1229
VI_DUPLICATE_VREG (insn.rs2 (), elt_width); \
1230
1230
for (reg_t i = 0 ; i < vl; ++i) { \
1231
1231
VI_ELEMENT_SKIP; \
@@ -1256,10 +1256,10 @@ reg_t index[P.VU.vlmax]; \
1256
1256
1257
1257
#define VI_ST (stride, offset, elt_width, is_mask_ldst ) \
1258
1258
const reg_t nf = insn.v_nf () + 1 ; \
1259
+ VI_CHECK_STORE (elt_width, is_mask_ldst); \
1259
1260
const reg_t vl = is_mask_ldst ? ((P.VU .vl ->read () + 7 ) / 8 ) : P.VU .vl ->read (); \
1260
1261
const reg_t baseAddr = RS1; \
1261
1262
const reg_t vs3 = insn.rd (); \
1262
- VI_CHECK_STORE (elt_width, is_mask_ldst); \
1263
1263
for (reg_t i = 0 ; i < vl; ++i) { \
1264
1264
VI_STRIP (i) \
1265
1265
VI_ELEMENT_SKIP; \
@@ -1274,12 +1274,12 @@ reg_t index[P.VU.vlmax]; \
1274
1274
1275
1275
#define VI_ST_INDEX (elt_width, is_seg ) \
1276
1276
const reg_t nf = insn.v_nf () + 1 ; \
1277
+ VI_CHECK_ST_INDEX (elt_width); \
1277
1278
const reg_t vl = P.VU .vl ->read (); \
1278
1279
const reg_t baseAddr = RS1; \
1279
1280
const reg_t vs3 = insn.rd (); \
1280
1281
if (!is_seg) \
1281
1282
require (nf == 1 ); \
1282
- VI_CHECK_ST_INDEX (elt_width); \
1283
1283
VI_DUPLICATE_VREG (insn.rs2 (), elt_width); \
1284
1284
for (reg_t i = 0 ; i < vl; ++i) { \
1285
1285
VI_STRIP (i) \
@@ -1310,10 +1310,10 @@ reg_t index[P.VU.vlmax]; \
1310
1310
1311
1311
#define VI_LDST_FF (elt_width ) \
1312
1312
const reg_t nf = insn.v_nf () + 1 ; \
1313
+ VI_CHECK_LOAD (elt_width, false ); \
1313
1314
const reg_t vl = p->VU .vl ->read (); \
1314
1315
const reg_t baseAddr = RS1; \
1315
1316
const reg_t rd_num = insn.rd (); \
1316
- VI_CHECK_LOAD (elt_width, false ); \
1317
1317
bool early_stop = false ; \
1318
1318
for (reg_t i = p->VU .vstart ->read (); i < vl; ++i) { \
1319
1319
VI_STRIP (i); \
0 commit comments