Browse Source

Remove redundant set_vxsat calls

Signed-off-by: Andrew Waterman <andrew@sifive.com>
pull/2352/head
Andrew Waterman 2 weeks ago
parent
commit
8b5f2b2158
Failed to extract signature
  1. 1
      riscv/insns/pnclipp_b.h
  2. 1
      riscv/insns/pnclipp_h.h
  3. 3
      riscv/insns/pnclipp_w.h
  4. 1
      riscv/insns/pnclipup_b.h
  5. 1
      riscv/insns/pnclipup_h.h
  6. 3
      riscv/insns/pnclipup_w.h

1
riscv/insns/pnclipp_b.h

@ -6,7 +6,6 @@ reg_t s_high = RS2;
for (int i = 0; i < 8; i++) {
sreg_t s_h = (i < 4) ? P_FIELD(s_low, i, 16) : P_FIELD(s_high, i - 4, 16);
sreg_t sat_val = P_SAT(8, s_h);
if (sat_val != s_h) P.set_vxsat();
rd_tmp = set_field(rd_tmp, make_mask64(i * 8, 8), (uint8_t)sat_val);
}
WRITE_RD(rd_tmp);

1
riscv/insns/pnclipp_h.h

@ -6,7 +6,6 @@ reg_t s_high = RS2;
for (int i = 0; i < 4; i++) {
sreg_t s_w = (i < 2) ? P_FIELD(s_low, i, 32) : P_FIELD(s_high, i - 2, 32);
sreg_t sat_val = P_SAT(16, s_w);
if (sat_val != s_w) P.set_vxsat();
rd_tmp = set_field(rd_tmp, make_mask64(i * 16, 16), (uint16_t)sat_val);
}
WRITE_RD(rd_tmp);

3
riscv/insns/pnclipp_w.h

@ -4,10 +4,7 @@ int64_t s1 = (int64_t)RS1;
int64_t s2 = (int64_t)RS2;
sreg_t sat_w0 = P_SAT(32, s1);
if (sat_w0 != s1) P.set_vxsat();
sreg_t sat_w1 = P_SAT(32, s2);
if (sat_w1 != s2) P.set_vxsat();
WRITE_RD(((uint64_t)(uint32_t)sat_w1 << 32) | (uint32_t)sat_w0);

1
riscv/insns/pnclipup_b.h

@ -6,7 +6,6 @@ reg_t s_high = RS2;
for (int i = 0; i < 8; i++) {
reg_t s_h = (i < 4) ? P_UFIELD(s_low, i, 16) : P_UFIELD(s_high, i - 4, 16);
reg_t sat_val = P_USAT_FULL(8, s_h);
if (sat_val != s_h) P.set_vxsat();
rd_tmp = set_field(rd_tmp, make_mask64(i * 8, 8), (uint8_t)sat_val);
}
WRITE_RD(rd_tmp);

1
riscv/insns/pnclipup_h.h

@ -6,7 +6,6 @@ reg_t s_high = RS2;
for (int i = 0; i < 4; i++) {
reg_t s_w = (i < 2) ? P_UFIELD(s_low, i, 32) : P_UFIELD(s_high, i - 2, 32);
reg_t sat_val = P_USAT_FULL(16, s_w);
if (sat_val != s_w) P.set_vxsat();
rd_tmp = set_field(rd_tmp, make_mask64(i * 16, 16), (uint16_t)sat_val);
}
WRITE_RD(rd_tmp);

3
riscv/insns/pnclipup_w.h

@ -4,10 +4,7 @@ uint64_t s1 = RS1;
uint64_t s2 = RS2;
reg_t sat_w0 = P_USAT_FULL(32, s1);
if (sat_w0 != s1) P.set_vxsat();
reg_t sat_w1 = P_USAT_FULL(32, s2);
if (sat_w1 != s2) P.set_vxsat();
WRITE_RD(((uint64_t)(uint32_t)sat_w1 << 32) | (uint32_t)sat_w0);

Loading…
Cancel
Save