committed by
GitHub
6 changed files with 15 additions and 36 deletions
@ -1,10 +1,5 @@ |
|||||
// vadc.vim vd, vs2, simm5, v0
|
// vadc.vim vd, vs2, simm5, v0
|
||||
VI_XI_LOOP_WITH_CARRY |
VI_XI_LOOP_WITH_CARRY |
||||
({ |
({ |
||||
auto &v0 = P.VU.elt<uint64_t>(0, midx); |
vd = (uint128_t)((op_mask & simm5) + (op_mask & vs2) + carry); |
||||
const uint128_t op_mask = (UINT64_MAX >> (64 - sew)); |
|
||||
uint64_t carry = (v0 >> mpos) & 0x1; |
|
||||
|
|
||||
uint128_t res = (op_mask & simm5) + (op_mask & vs2) + carry; |
|
||||
vd = res; |
|
||||
}) |
}) |
||||
|
|||||
@ -1,10 +1,5 @@ |
|||||
// vadc.vvm vd, vs2, rs1, v0
|
// vadc.vvm vd, vs2, rs1, v0
|
||||
VI_VV_LOOP_WITH_CARRY |
VI_VV_LOOP_WITH_CARRY |
||||
({ |
({ |
||||
auto &v0 = P.VU.elt<uint64_t>(0, midx); |
vd = (uint128_t)((op_mask & vs1) + (op_mask & vs2) + carry); |
||||
const uint128_t op_mask = (UINT64_MAX >> (64 - sew)); |
|
||||
uint64_t carry = (v0 >> mpos) & 0x1; |
|
||||
|
|
||||
uint128_t res = (op_mask & vs1) + (op_mask & vs2) + carry; |
|
||||
vd = res; |
|
||||
}) |
}) |
||||
|
|||||
@ -1,10 +1,5 @@ |
|||||
// vadc.vxm vd, vs2, rs1, v0
|
// vadc.vxm vd, vs2, rs1, v0
|
||||
VI_XI_LOOP_WITH_CARRY |
VI_XI_LOOP_WITH_CARRY |
||||
({ |
({ |
||||
auto &v0 = P.VU.elt<uint64_t>(0, midx); |
vd = (uint128_t)((op_mask & rs1) + (op_mask & vs2) + carry); |
||||
const uint128_t op_mask = (UINT64_MAX >> (64 - sew)); |
|
||||
uint64_t carry = (v0 >> mpos) & 0x1; |
|
||||
|
|
||||
uint128_t res = (op_mask & rs1) + (op_mask & vs2) + carry; |
|
||||
vd = res; |
|
||||
}) |
}) |
||||
|
|||||
@ -1,10 +1,5 @@ |
|||||
// vsbc.vvm vd, vs2, rs1, v0
|
// vsbc.vvm vd, vs2, rs1, v0
|
||||
VI_VV_LOOP_WITH_CARRY |
VI_VV_LOOP_WITH_CARRY |
||||
({ |
({ |
||||
auto &v0 = P.VU.elt<uint64_t>(0, midx); |
vd = (uint128_t)((op_mask & vs2) - (op_mask & vs1) - carry); |
||||
const uint128_t op_mask = (UINT64_MAX >> (64 - sew)); |
|
||||
uint64_t carry = (v0 >> mpos) & 0x1; |
|
||||
|
|
||||
uint128_t res = (op_mask & vs2) - (op_mask & vs1) - carry; |
|
||||
vd = res; |
|
||||
}) |
}) |
||||
|
|||||
@ -1,10 +1,5 @@ |
|||||
// vsbc.vxm vd, vs2, rs1, v0
|
// vsbc.vxm vd, vs2, rs1, v0
|
||||
VI_XI_LOOP_WITH_CARRY |
VI_XI_LOOP_WITH_CARRY |
||||
({ |
({ |
||||
auto &v0 = P.VU.elt<uint64_t>(0, midx); |
vd = (uint128_t)((op_mask & vs2) - (op_mask & rs1) - carry); |
||||
const uint128_t op_mask = (UINT64_MAX >> (64 - sew)); |
|
||||
uint64_t carry = (v0 >> mpos) & 0x1; |
|
||||
|
|
||||
uint128_t res = (op_mask & vs2) - (op_mask & rs1) - carry; |
|
||||
vd = res; |
|
||||
}) |
}) |
||||
|
|||||
Loading…
Reference in new issue