Browse Source
Merge pull request #1915 from chihminchao/fix_undefined_behavior
cosim: right shift can't be applied on negative number
pull/1896/head
Andrew Waterman
1 year ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with
8 additions and
8 deletions
-
riscv/insns/vnsra_wi.h
-
riscv/insns/vsll_vi.h
-
riscv/insns/vsll_vv.h
-
riscv/insns/vsll_vx.h
-
riscv/insns/vsrl_vi.h
-
riscv/insns/vssra_vi.h
-
riscv/insns/vssrl_vi.h
|
|
|
@ -1,5 +1,5 @@ |
|
|
|
// vnsra.vi vd, vs2, zimm5
|
|
|
|
VI_VI_LOOP_NSHIFT |
|
|
|
({ |
|
|
|
vd = vs2 >> (zimm5 & (sew * 2 - 1) & 0x1f); |
|
|
|
vd = vs2 >> (zimm5 & (sew * 2 - 1)); |
|
|
|
}) |
|
|
|
|
|
|
|
@ -1,5 +1,5 @@ |
|
|
|
// vsll.vi vd, vs2, zimm5
|
|
|
|
VI_VI_LOOP |
|
|
|
VI_VI_ULOOP |
|
|
|
({ |
|
|
|
vd = vs2 << (simm5 & (sew - 1) & 0x1f); |
|
|
|
vd = vs2 << (zimm5 & (sew - 1)); |
|
|
|
}) |
|
|
|
|
|
|
|
@ -1,5 +1,5 @@ |
|
|
|
// vsll
|
|
|
|
VI_VV_LOOP |
|
|
|
VI_VV_ULOOP |
|
|
|
({ |
|
|
|
vd = vs2 << (vs1 & (sew - 1)); |
|
|
|
}) |
|
|
|
|
|
|
|
@ -1,5 +1,5 @@ |
|
|
|
// vsll
|
|
|
|
VI_VX_LOOP |
|
|
|
VI_VX_ULOOP |
|
|
|
({ |
|
|
|
vd = vs2 << (rs1 & (sew - 1)); |
|
|
|
}) |
|
|
|
|
|
|
|
@ -1,5 +1,5 @@ |
|
|
|
// vsrl.vi vd, vs2, zimm5
|
|
|
|
VI_VI_ULOOP |
|
|
|
({ |
|
|
|
vd = vs2 >> (zimm5 & (sew - 1) & 0x1f); |
|
|
|
vd = vs2 >> (zimm5 & (sew - 1)); |
|
|
|
}) |
|
|
|
|
|
|
|
@ -2,7 +2,7 @@ |
|
|
|
VI_VI_LOOP |
|
|
|
({ |
|
|
|
VRM xrm = P.VU.get_vround_mode(); |
|
|
|
int sh = simm5 & (sew - 1) & 0x1f; |
|
|
|
int sh = simm5 & (sew - 1); |
|
|
|
int128_t val = vs2; |
|
|
|
|
|
|
|
INT_ROUNDING(val, xrm, sh); |
|
|
|
|
|
|
|
@ -2,7 +2,7 @@ |
|
|
|
VI_VI_ULOOP |
|
|
|
({ |
|
|
|
VRM xrm = P.VU.get_vround_mode(); |
|
|
|
int sh = zimm5 & (sew - 1) & 0x1f; |
|
|
|
int sh = zimm5 & (sew - 1); |
|
|
|
uint128_t val = vs2; |
|
|
|
|
|
|
|
INT_ROUNDING(val, xrm, sh); |
|
|
|
|