File tree Expand file tree Collapse file tree 14 files changed +33
-33
lines changed Expand file tree Collapse file tree 14 files changed +33
-33
lines changed Original file line number Diff line number Diff line change 11// vnclip: vd[i] = clip(round(vs2[i] + rnd) >> simm)
2- VRM xrm = P .VU .get_vround_mode ();
3- int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
4- int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
52VI_VI_LOOP_NARROW
63({
4+ VRM xrm = P .VU .get_vround_mode ();
5+ int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
6+ int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
77 int128_t result = vs2 ;
88 unsigned shift = zimm5 & ((sew * 2 ) - 1 );
99
Original file line number Diff line number Diff line change 11// vnclip: vd[i] = clip(round(vs2[i] + rnd) >> vs1[i])
2- VRM xrm = P .VU .get_vround_mode ();
3- int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
4- int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
52VI_VV_LOOP_NARROW
63({
4+ VRM xrm = P .VU .get_vround_mode ();
5+ int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
6+ int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
77 int128_t result = vs2 ;
88 unsigned shift = vs1 & ((sew * 2 ) - 1 );
99
Original file line number Diff line number Diff line change 11// vnclipu: vd[i] = clip(round(vs2[i] + rnd) >> simm)
2- VRM xrm = P .VU .get_vround_mode ();
3- uint64_t uint_max = UINT64_MAX >> (64 - P .VU .vsew );
4- uint64_t sign_mask = UINT64_MAX << P .VU .vsew ;
52VI_VI_LOOP_NARROW
63({
4+ VRM xrm = P .VU .get_vround_mode ();
5+ uint64_t uint_max = UINT64_MAX >> (64 - P .VU .vsew );
6+ uint64_t sign_mask = UINT64_MAX << P .VU .vsew ;
77 uint128_t result = vs2_u ;
88 unsigned shift = zimm5 & ((sew * 2 ) - 1 );
99
Original file line number Diff line number Diff line change 11// vnclipu: vd[i] = clip(round(vs2[i] + rnd) >> vs1[i])
2- VRM xrm = P .VU .get_vround_mode ();
3- uint64_t uint_max = UINT64_MAX >> (64 - P .VU .vsew );
4- uint64_t sign_mask = UINT64_MAX << P .VU .vsew ;
52VI_VV_LOOP_NARROW
63({
4+ VRM xrm = P .VU .get_vround_mode ();
5+ uint64_t uint_max = UINT64_MAX >> (64 - P .VU .vsew );
6+ uint64_t sign_mask = UINT64_MAX << P .VU .vsew ;
77 uint128_t result = vs2_u ;
88 unsigned shift = vs1 & ((sew * 2 ) - 1 );
99
Original file line number Diff line number Diff line change 11// vnclipu: vd[i] = clip(round(vs2[i] + rnd) >> rs1[i])
2- VRM xrm = P .VU .get_vround_mode ();
3- uint64_t uint_max = UINT64_MAX >> (64 - P .VU .vsew );
4- uint64_t sign_mask = UINT64_MAX << P .VU .vsew ;
52VI_VX_LOOP_NARROW
63({
4+ VRM xrm = P .VU .get_vround_mode ();
5+ uint64_t uint_max = UINT64_MAX >> (64 - P .VU .vsew );
6+ uint64_t sign_mask = UINT64_MAX << P .VU .vsew ;
77 uint128_t result = vs2_u ;
88 unsigned shift = rs1 & ((sew * 2 ) - 1 );
99
Original file line number Diff line number Diff line change 11// vsmul.vv vd, vs2, vs1
2- VRM xrm = P .VU .get_vround_mode ();
3- int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
4- int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
5-
62VI_VV_LOOP
73({
4+ VRM xrm = P .VU .get_vround_mode ();
5+ int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
6+ int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
7+
88 bool overflow = vs1 == vs2 && vs1 == int_min ;
99 int128_t result = (int128_t )vs1 * (int128_t )vs2 ;
1010
Original file line number Diff line number Diff line change 11// vsmul.vx vd, vs2, rs1
2- VRM xrm = P .VU .get_vround_mode ();
3- int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
4- int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
5-
62VI_VX_LOOP
73({
4+ VRM xrm = P .VU .get_vround_mode ();
5+ int64_t int_max = INT64_MAX >> (64 - P .VU .vsew );
6+ int64_t int_min = INT64_MIN >> (64 - P .VU .vsew );
7+
88 bool overflow = rs1 == vs2 && rs1 == int_min ;
99 int128_t result = (int128_t )rs1 * (int128_t )vs2 ;
1010
Original file line number Diff line number Diff line change 11// vssra.vi vd, vs2, simm5
2- VRM xrm = P .VU .get_vround_mode ();
32VI_VI_LOOP
43({
4+ VRM xrm = P .VU .get_vround_mode ();
55 int sh = simm5 & (sew - 1 ) & 0x1f ;
66 int128_t val = vs2 ;
77
Original file line number Diff line number Diff line change 11// vssra.vv vd, vs2, vs1
2- VRM xrm = P .VU .get_vround_mode ();
32VI_VV_LOOP
43({
4+ VRM xrm = P .VU .get_vround_mode ();
55 int sh = vs1 & (sew - 1 );
66 int128_t val = vs2 ;
77
Original file line number Diff line number Diff line change 11// vssra.vx vd, vs2, rs1
2- VRM xrm = P .VU .get_vround_mode ();
32VI_VX_LOOP
43({
4+ VRM xrm = P .VU .get_vround_mode ();
55 int sh = rs1 & (sew - 1 );
66 int128_t val = vs2 ;
77
You can’t perform that action at this time.
0 commit comments