Browse Source

zve: correct the constraint for widening and floating configuraiton

Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
pull/2153/head
Chih-Min Chao 9 months ago
parent
commit
b59f916de9
  1. 10
      riscv/v_ext_macros.h

10
riscv/v_ext_macros.h

@ -1790,8 +1790,15 @@ VI_VX_ULOOP({ \
}; \ }; \
VI_VFP_LOOP_CMP_END \ VI_VFP_LOOP_CMP_END \
#define VI_CHECK_VFP_WIDE \
if (P.VU.vsew == e16) \
require(p->get_isa().get_zvf()); \
else if (P.VU.vsew == e32) \
require(p->get_isa().get_zvd()); \
#define VI_VFP_VF_LOOP_WIDE(BODY16, BODY32) \ #define VI_VFP_VF_LOOP_WIDE(BODY16, BODY32) \
VI_CHECK_DSS(false); \ VI_CHECK_DSS(false); \
VI_CHECK_VFP_WIDE \
VI_VFP_LOOP_BASE \ VI_VFP_LOOP_BASE \
switch (P.VU.vsew) { \ switch (P.VU.vsew) { \
case e16: { \ case e16: { \
@ -1841,6 +1848,7 @@ VI_VX_ULOOP({ \
#define VI_VFP_VV_LOOP_WIDE(BODY16, BODY32) \ #define VI_VFP_VV_LOOP_WIDE(BODY16, BODY32) \
VI_CHECK_DSS(true); \ VI_CHECK_DSS(true); \
VI_CHECK_VFP_WIDE \
VI_VFP_LOOP_BASE \ VI_VFP_LOOP_BASE \
switch (P.VU.vsew) { \ switch (P.VU.vsew) { \
case e16: { \ case e16: { \
@ -1890,6 +1898,7 @@ VI_VX_ULOOP({ \
#define VI_VFP_WF_LOOP_WIDE(BODY16, BODY32) \ #define VI_VFP_WF_LOOP_WIDE(BODY16, BODY32) \
VI_CHECK_DDS(false); \ VI_CHECK_DDS(false); \
VI_CHECK_VFP_WIDE \
VI_VFP_LOOP_BASE \ VI_VFP_LOOP_BASE \
switch (P.VU.vsew) { \ switch (P.VU.vsew) { \
case e16: { \ case e16: { \
@ -1918,6 +1927,7 @@ VI_VX_ULOOP({ \
#define VI_VFP_WV_LOOP_WIDE(BODY16, BODY32) \ #define VI_VFP_WV_LOOP_WIDE(BODY16, BODY32) \
VI_CHECK_DDS(true); \ VI_CHECK_DDS(true); \
VI_CHECK_VFP_WIDE \
VI_VFP_LOOP_BASE \ VI_VFP_LOOP_BASE \
switch (P.VU.vsew) { \ switch (P.VU.vsew) { \
case e16: { \ case e16: { \

Loading…
Cancel
Save