27 changed files with 76 additions and 22 deletions
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_LOOP(8,8,8, { |
|||
bool sat = false; |
|||
p_rd = (sat_add<int8_t, uint8_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_LOOP(16,16,16, { |
|||
bool sat = false; |
|||
p_rd = (sat_add<int16_t, uint16_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_ULOOP(8,8,8, { |
|||
bool sat = false; |
|||
p_rd = (sat_addu<uint8_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_ULOOP(16,16,16, { |
|||
bool sat = false; |
|||
p_rd = (sat_addu<uint16_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_LOOP(8,8,8, { |
|||
bool sat = false; |
|||
p_rd = (sat_sub<int8_t, uint8_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_LOOP(16,16,16, { |
|||
bool sat = false; |
|||
p_rd = (sat_sub<int16_t, uint16_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_ULOOP(8,8,8, { |
|||
bool sat = false; |
|||
p_rd = (sat_subu<uint8_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,6 @@ |
|||
P_RD_RS1_RS2_ULOOP(16,16,16, { |
|||
bool sat = false; |
|||
p_rd = (sat_subu<uint16_t>(p_rs1, p_rs2, sat)); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
}) |
|||
@ -1,4 +1,7 @@ |
|||
require_extension('P'); |
|||
require_rv32; |
|||
bool sat = false; |
|||
WRITE_RD(sat_subu<uint32_t>(RS1, RS2, sat)); |
|||
uint32_t p_rd = sat_subu<uint32_t>(RS1, RS2, sat); |
|||
if (sat) |
|||
P.set_vxsat(); |
|||
WRITE_RD(sext32(p_rd)); |
|||
|
|||
Loading…
Reference in new issue