27 changed files with 76 additions and 22 deletions
@ -1,4 +1,6 @@ |
|||||
P_RD_RS1_RS2_LOOP(8,8,8, { |
P_RD_RS1_RS2_LOOP(8,8,8, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_add<int8_t, uint8_t>(p_rs1, p_rs2, sat)); |
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, { |
P_RD_RS1_RS2_LOOP(16,16,16, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_add<int16_t, uint16_t>(p_rs1, p_rs2, sat)); |
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, { |
P_RD_RS1_RS2_ULOOP(8,8,8, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_addu<uint8_t>(p_rs1, p_rs2, sat)); |
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, { |
P_RD_RS1_RS2_ULOOP(16,16,16, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_addu<uint16_t>(p_rs1, p_rs2, sat)); |
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, { |
P_RD_RS1_RS2_LOOP(8,8,8, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_sub<int8_t, uint8_t>(p_rs1, p_rs2, sat)); |
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, { |
P_RD_RS1_RS2_LOOP(16,16,16, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_sub<int16_t, uint16_t>(p_rs1, p_rs2, sat)); |
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, { |
P_RD_RS1_RS2_ULOOP(8,8,8, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_subu<uint8_t>(p_rs1, p_rs2, sat)); |
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, { |
P_RD_RS1_RS2_ULOOP(16,16,16, { |
||||
bool sat = false; |
bool sat = false; |
||||
p_rd = (sat_subu<uint16_t>(p_rs1, p_rs2, sat)); |
p_rd = (sat_subu<uint16_t>(p_rs1, p_rs2, sat)); |
||||
}) |
if (sat) |
||||
|
P.set_vxsat(); |
||||
|
}) |
||||
|
|||||
@ -1,4 +1,7 @@ |
|||||
require_extension('P'); |
require_extension('P'); |
||||
require_rv32; |
require_rv32; |
||||
bool sat = false; |
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