class binop : public function_base
{
public:
- bool has_rounding_mode_operand_p () const override
- {
- return CODE == SS_PLUS || CODE == SS_MINUS || CODE == US_PLUS
- || CODE == US_MINUS;
- }
-
rtx expand (function_expander &e) const override
{
switch (e.op_info->op)
;; Defines rounding mode of an fixed-point operation.
(define_attr "vxrm_mode" "rnu,rne,rdn,rod,none"
- (cond [(eq_attr "type" "vsalu,vaalu,vsmul,vsshift,vnclip")
+ (cond [(eq_attr "type" "vaalu,vsmul,vsshift,vnclip")
(cond
[(match_test "INTVAL (operands[9]) == riscv_vector::VXRM_RNU")
(const_string "rnu")
(match_operand 6 "const_int_operand" " i, i, i, i, i, i, i, i")
(match_operand 7 "const_int_operand" " i, i, i, i, i, i, i, i")
(match_operand 8 "const_int_operand" " i, i, i, i, i, i, i, i")
- (match_operand 9 "const_int_operand" " i, i, i, i, i, i, i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(any_sat_int_binop:VI
(match_operand:VI 3 "<binop_rhs1_predicate>" " vr, vr, vr, vr, vr, vr, vr, vr")
(match_operand:VI 4 "<binop_rhs2_predicate>" "<binop_rhs2_constraint>"))
(match_operand 6 "const_int_operand" " i, i, i, i")
(match_operand 7 "const_int_operand" " i, i, i, i")
(match_operand 8 "const_int_operand" " i, i, i, i")
- (match_operand 9 "const_int_operand" " i, i, i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_plus_binop:VI_QHS
(vec_duplicate:VI_QHS
(match_operand:<VEL> 4 "register_operand" " r, r, r, r"))
(match_operand 6 "const_int_operand" " i, i, i, i")
(match_operand 7 "const_int_operand" " i, i, i, i")
(match_operand 8 "const_int_operand" " i, i, i, i")
- (match_operand 9 "const_int_operand" " i, i, i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_minus_binop:VI_QHS
(match_operand:VI_QHS 3 "register_operand" " vr, vr, vr, vr")
(vec_duplicate:VI_QHS
(match_operand 6 "const_int_operand")
(match_operand 7 "const_int_operand")
(match_operand 8 "const_int_operand")
- (match_operand 9 "const_int_operand")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_plus_binop:VI_D
(vec_duplicate:VI_D
(match_operand:<VEL> 4 "reg_or_int_operand"))
[] (rtx *operands, rtx boardcast_scalar) {
emit_insn (gen_pred_<optab><mode> (operands[0], operands[1],
operands[2], operands[3], boardcast_scalar, operands[5],
- operands[6], operands[7], operands[8], operands[9]));
+ operands[6], operands[7], operands[8]));
}))
DONE;
})
(match_operand 6 "const_int_operand" " i, i, i, i")
(match_operand 7 "const_int_operand" " i, i, i, i")
(match_operand 8 "const_int_operand" " i, i, i, i")
- (match_operand 9 "const_int_operand" " i, i, i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_plus_binop:VI_D
(vec_duplicate:VI_D
(match_operand:<VEL> 4 "register_operand" " r, r, r, r"))
(match_operand 6 "const_int_operand" " i, i, i, i")
(match_operand 7 "const_int_operand" " i, i, i, i")
(match_operand 8 "const_int_operand" " i, i, i, i")
- (match_operand 9 "const_int_operand" " i, i, i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_plus_binop:VI_D
(vec_duplicate:VI_D
(sign_extend:<VEL>
(match_operand 6 "const_int_operand")
(match_operand 7 "const_int_operand")
(match_operand 8 "const_int_operand")
- (match_operand 9 "const_int_operand")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_minus_binop:VI_D
(match_operand:VI_D 3 "register_operand")
(vec_duplicate:VI_D
[] (rtx *operands, rtx boardcast_scalar) {
emit_insn (gen_pred_<optab><mode> (operands[0], operands[1],
operands[2], operands[3], boardcast_scalar, operands[5],
- operands[6], operands[7], operands[8], operands[9]));
+ operands[6], operands[7], operands[8]));
}))
DONE;
})
(match_operand 6 "const_int_operand" " i, i, i, i")
(match_operand 7 "const_int_operand" " i, i, i, i")
(match_operand 8 "const_int_operand" " i, i, i, i")
- (match_operand 9 "const_int_operand" " i, i, i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_minus_binop:VI_D
(match_operand:VI_D 3 "register_operand" " vr, vr, vr, vr")
(vec_duplicate:VI_D
(match_operand 6 "const_int_operand" " i, i, i, i")
(match_operand 7 "const_int_operand" " i, i, i, i")
(match_operand 8 "const_int_operand" " i, i, i, i")
- (match_operand 9 "const_int_operand" " i, i, i, i")
(reg:SI VL_REGNUM)
- (reg:SI VTYPE_REGNUM)
- (reg:SI VXRM_REGNUM)] UNSPEC_VPREDICATE)
+ (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
(sat_int_minus_binop:VI_D
(match_operand:VI_D 3 "register_operand" " vr, vr, vr, vr")
(vec_duplicate:VI_D
// 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
__riscv_vsetvl_e32m8(27);
-vint32m8_t var_0 = __riscv_vssub_vx_i32m8(var_59, var_1, 0, 27);
+vint32m8_t var_0 = __riscv_vssub_vx_i32m8(var_59, var_1, 27);
// -1061068412, -1776580354, -100935733, 1111812123, 840849367, 1454689778, -1416961586, 286847306, 2118070565, 1965230406, -1040658036, 587048909, 1667471177, -1452995359, 1549864288, 1955648606, -1153689461, -105253108, 1792194502, -341148625, 630712685, -1367196047, 1561028022, -599776667, 1447136930, -480839967, -1960624419
__riscv_vsetvl_e32m8(19);
// 0
__riscv_vsetvl_e32mf2(2);
-vint32mf2_t var_2 = __riscv_vsadd_vx_i32mf2_mu(var_47, var_48, var_49, var_9, 0, 2);
+vint32mf2_t var_2 = __riscv_vsadd_vx_i32mf2_mu(var_47, var_48, var_49, var_9, 2);
// 470559939, 1961139923
__riscv_vsuxei64_v_i32mf2(var_115, var_112, var_2, 2);
if (check(k, ab, aa))
cerr << "check 8 fails" << endl;
vbool64_t var_2 = __riscv_vmsne_vx_u32mf2_b64_mu(var_55, var_56, var_3, au, 2);
- vint16mf4_t var_1 = __riscv_vssub_vv_i16mf4_mu(var_2, var_0, var_4, cg, 0, 2);
+ vint16mf4_t var_1 = __riscv_vssub_vv_i16mf4_mu(var_2, var_0, var_4, cg, 2);
vint16mf4_t var_5 = __riscv_vxor_vv_i16mf4_mu(var_46, var_1, bw, bx, 2);
vint32mf2_t var_18 = __riscv_vwmaccsu_vv_i32mf2(bf, var_1, bg, 2);
vint8mf8_t var_6 = __riscv_vncvt_x_x_w_i8mf8_mu(var_8, var_7, var_5, 1);
vuint64m1_t var_8 = __riscv_vredand_vs_u64m8_u64m1_tum(var_13, var_58, var_0, var_59, 1);
__riscv_vse64_v_i64m8(var_74, var_3, 2);
vuint64m8_t var_10 = __riscv_vmadd_vv_u64m8_mu(var_13, var_6, var_51, var_52, 13);
- vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 0, 13);
+ vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 13);
vuint64m1_t var_9 = __riscv_vadd_vv_u64m1_mu(var_54, var_8, var_55, var_56, 1);
vuint64m1_t var_11 = __riscv_vredxor_vs_u64m4_u64m1_tum(var_46, var_8, var_47, var_48, 1);
if(!check(var_74, var_129, var_130)) {cerr << "check 128 fails" << endl; return_value = 1;}
vuint64m1_t var_8 = __riscv_vredand_vs_u64m8_u64m1_tum(var_13, var_58, var_0, var_59, 1);
__riscv_vse64_v_i64m8(var_74, var_3, 2);
vuint64m8_t var_10 = __riscv_vmacc_vv_u64m8_mu(var_13, var_6, var_51, var_52, 13);
- vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 0, 13);
+ vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 13);
vuint64m1_t var_9 = __riscv_vadd_vv_u64m1_mu(var_54, var_8, var_55, var_56, 1);
vuint64m1_t var_11 = __riscv_vredxor_vs_u64m4_u64m1_tum(var_46, var_8, var_47, var_48, 1);
if(!check(var_74, var_129, var_130)) {cerr << "check 128 fails" << endl; return_value = 1;}
vuint64m1_t var_8 = __riscv_vredand_vs_u64m8_u64m1_tum(var_13, var_58, var_0, var_59, 1);
__riscv_vse64_v_i64m8(var_74, var_3, 2);
vuint64m8_t var_10 = __riscv_vnmsub_vv_u64m8_mu(var_13, var_6, var_51, var_52, 13);
- vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 0, 13);
+ vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 13);
vuint64m1_t var_9 = __riscv_vadd_vv_u64m1_mu(var_54, var_8, var_55, var_56, 1);
vuint64m1_t var_11 = __riscv_vredxor_vs_u64m4_u64m1_tum(var_46, var_8, var_47, var_48, 1);
if(!check(var_74, var_129, var_130)) {cerr << "check 128 fails" << endl; return_value = 1;}
vuint64m1_t var_8 = __riscv_vredand_vs_u64m8_u64m1_tum(var_13, var_58, var_0, var_59, 1);
__riscv_vse64_v_i64m8(var_74, var_3, 2);
vuint64m8_t var_10 = __riscv_vnmsac_vv_u64m8_mu(var_13, var_6, var_51, var_52, 13);
- vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 0, 13);
+ vuint64m8_t var_15 = __riscv_vssubu_vv_u64m8_mu(var_33, var_6, var_34, var_35, 13);
vuint64m1_t var_9 = __riscv_vadd_vv_u64m1_mu(var_54, var_8, var_55, var_56, 1);
vuint64m1_t var_11 = __riscv_vredxor_vs_u64m4_u64m1_tum(var_46, var_8, var_47, var_48, 1);
if(!check(var_74, var_129, var_130)) {cerr << "check 128 fails" << endl; return_value = 1;}
vuint8mf8_t var_19 = __riscv_vsub_vx_u8mf8_tumu(var_20, var_21, var_22, var_73, 2);
// 225, 96
-vuint32mf2_t var_16 = __riscv_vssubu_vx_u32mf2_tumu(var_33, var_34, var_35, var_74, 0, 2);
+vuint32mf2_t var_16 = __riscv_vssubu_vx_u32mf2_tumu(var_33, var_34, var_35, var_74, 2);
// 3077557042, 4186139873
__riscv_vsetvl_e64m4(2);
vbool16_t var_49 = __riscv_vmseq_vv_i32m2_b16(var_50, var_51, 8);
// 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-vint16m1_t var_13 = __riscv_vsadd_vx_i16m1(var_0, var_60, 0, 8);
+vint16m1_t var_13 = __riscv_vsadd_vx_i16m1(var_0, var_60, 8);
// -9364, 32767, 11538, -10536, 32767, 30906, 30906, 4977
__riscv_vsetvl_e16m8(7);
vint8m4_t var_5 = __riscv_vnsra_wv_i8m4(var_12, var_48, 43);
// 0, -2, -5, -7, 0, -3, -1, -1, 0, 0, -5, -90, -1, 0, -15, -1, 0, 0, 0, 0, 0, 0, -3, -1, -3, 0, 0, -13, 0, -1, -1, -1, 0, -1, 39, 0, 0, -2, 0, 0, -24, -45, 1
-vint16m8_t var_4 = __riscv_vssub_vx_i16m8_mu(var_6, var_12, var_49, var_10, 0, 43);
+vint16m8_t var_4 = __riscv_vssub_vx_i16m8_mu(var_6, var_12, var_49, var_10, 43);
// -27921, -25052, -17, -20337, 15054, 1382, -12, -16, 16159, -32768, 17832, -12646, 16746, 20, -15, -16, 4, 7798, 14967, 3, -29916, 11, -6168, -32768, 14361, -14023, -32768, -12646, 10, -12646, 18748, -12646, 8473, -32768, -32768, 16, -32768, -14720, -11479, 6985, -24591, -28243, 11
__riscv_vsetvl_e16m8(16);
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, x, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1_tu (v3, v2, x, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, x, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
for (int i = 0; i < n; i++) {
vint64m1_t v = __riscv_vle64_v_i64m1 (in + i + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + i + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, x, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1_tu (v3, v2, x, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, x, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_i64m1 (out + i + 2, v4, 4);
}
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, -16, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, -16, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, -16, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, -16, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 15, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 15, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 15, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 15, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 16, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 16, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 16, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 16, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAA, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAAA, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAAAAAAAAAAA, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAAAAAAAAAAA, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, x, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, x, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, x, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, x, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, -16, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, -16, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, -16, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, -16, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 15, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 15, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 15, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 15, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 16, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 16, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 16, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 16, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAA, 0,4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAA, 0,4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1 (v3, 0xAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAA, 0, 4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, 0xAAAAAAAA, 0, 4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, 0xAAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, x, 0, 4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, x, 0, 4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, x, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
for (int i = 0; i < n; i++) {
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + i + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + i + 2, 4);
- vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, x, 0, 4);
- vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, x, 0, 4);
+ vuint64m1_t v3 = __riscv_vsaddu_vx_u64m1 (v2, x, 4);
+ vuint64m1_t v4 = __riscv_vsaddu_vx_u64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_u64m1 (out + i + 2, v4, 4);
}
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, -15, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, -15, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, -15, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, -15, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 16, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 16, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 16, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 16, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 17, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 17, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 17, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 17, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAA, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAAA, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, x, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, x, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, x, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, x, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, -15, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, -15, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, -15, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, -15, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 16, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 16, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 16, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 16, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 17, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 17, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 17, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 17, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAA, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAA, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1 (v3, 0xAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAA, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, 0xAAAAAAAA, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, 0xAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, x, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, x, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, x, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
for (int i = 0; i < n; i++) {
vint64m1_t v = __riscv_vle64_v_i64m1 (in + i + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + i + 2, 4);
- vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, x, 0, 4);
- vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, x, 0, 4);
+ vint64m1_t v3 = __riscv_vssub_vx_i64m1 (v2, x, 4);
+ vint64m1_t v4 = __riscv_vssub_vx_i64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_i64m1 (out + i + 2, v4, 4);
}
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, -16, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, -16, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, -16, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, -16, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 15, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, 15, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 15, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, 15, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 16, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, 16, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 16, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, 16, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 0xAAAAAAA, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, 0xAAAAAAA, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 0xAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1 (v3, 0xAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 0xAAAAAAAA, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, 0xAAAAAAAA, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 0xAAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, 0xAAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
{
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, x, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, x, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, x, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_u64m1 (out + 2, v4, 4);
}
for (int i = 0; i < n; i++) {
vuint64m1_t v = __riscv_vle64_v_u64m1 (in + i + 1, 4);
vuint64m1_t v2 = __riscv_vle64_v_u64m1_tu (v, in + i + 2, 4);
- vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, x, 0, 4);
- vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, x, 0, 4);
+ vuint64m1_t v3 = __riscv_vssubu_vx_u64m1 (v2, x, 4);
+ vuint64m1_t v4 = __riscv_vssubu_vx_u64m1_tu (v3, v2, x, 4);
__riscv_vse64_v_u64m1 (out + i + 2, v4, 4);
}
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, -16, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, -16, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, -16, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, -16, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 15, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 15, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 15, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 15, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 16, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 16, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 16, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 16, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAA, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAAA, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAAAAAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAAAAAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, x, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, x, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, x, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, x, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, -16, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, -16, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, -16, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, -16, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 15, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 15, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 15, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 15, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 16, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 16, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 16, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 16, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
{
vint64m1_t v = __riscv_vle64_v_i64m1 (in + 1, 4);
vint64m1_t v2 = __riscv_vle64_v_i64m1_tu (v, in + 2, 4);
- vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAA, 0,4);
- vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAA, 0,4);
+ vint64m1_t v3 = __riscv_vsadd_vx_i64m1 (v2, 0xAAAAAAA, 4);
+ vint64m1_t v4 = __riscv_vsadd_vx_i64m1 (v3, 0xAAAAAAA, 4);
__riscv_vse64_v_i64m1 (out + 2, v4, 4);
}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64 -O3 -Wno-psabi" } */
+
+#include "riscv_vector.h"
+
+vint8mf8_t test_vsadd_vv_i8mf8 (vint8mf8_t op1, vint8mf8_t op2, size_t vl)
+{
+ return __riscv_vsadd_vv_i8mf8 (op1, op2, __RISCV_VXRM_RNU, vl); /* { dg-error {too many arguments to function '__riscv_vsadd_vv_i8mf8'} } */
+}
+
+vuint8mf8_t test_vsaddu_vv_u8mf8 (vuint8mf8_t op1, vuint8mf8_t op2, size_t vl)
+{
+ return __riscv_vsaddu_vv_u8mf8 (op1, op2, __RISCV_VXRM_RNU, vl); /* { dg-error {too many arguments to function '__riscv_vsaddu_vv_u8mf8'} } */
+}
+
+vint8mf8_t test_vssub_vv_i8mf8 (vint8mf8_t op1, vint8mf8_t op2, size_t vl)
+{
+ return __riscv_vssub_vv_i8mf8 (op1, op2, __RISCV_VXRM_RNU, vl); /* { dg-error {too many arguments to function '__riscv_vssub_vv_i8mf8'} } */
+}
+
+vuint8mf8_t test_vssubu_vv_u8mf8 (vuint8mf8_t op1, vuint8mf8_t op2, size_t vl)
+{
+ return __riscv_vssubu_vv_u8mf8 (op1, op2, __RISCV_VXRM_RNU, vl); /* { dg-error {too many arguments to function '__riscv_vssubu_vv_u8mf8'} } */
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64 -O3 -Wno-psabi" } */
+
+#include "riscv_vector.h"
+
+vint8mf8_t test_vaadd_vv_i8mf8 (vint8mf8_t op1, vint8mf8_t op2, size_t vl)
+{
+ return __riscv_vaadd_vv_i8mf8 (op1, op2, __RISCV_VXRM_RNU, vl);
+}
+
+vuint8mf8_t test_vaaddu_vv_u8mf8 (vuint8mf8_t op1, vuint8mf8_t op2, size_t vl)
+{
+ return __riscv_vaaddu_vv_u8mf8 (op1, op2, __RISCV_VXRM_RNU, vl);
+}
+
+vint8mf8_t test_vasub_vv_i8mf8 (vint8mf8_t op1, vint8mf8_t op2, size_t vl)
+{
+ return __riscv_vasub_vv_i8mf8 (op1, op2, __RISCV_VXRM_RNU, vl);
+}
+
+vuint8mf8_t test_vasubu_vv_u8mf8 (vuint8mf8_t op1, vuint8mf8_t op2, size_t vl)
+{
+ return __riscv_vasubu_vv_u8mf8 (op1, op2, __RISCV_VXRM_RNU, vl);
+}
+
+vint8mf8_t test_vnclip_wv_i8mf8 (vint16mf4_t op1, vuint8mf8_t shift, size_t vl)
+{
+ return __riscv_vnclip_wv_i8mf8 (op1, shift, __RISCV_VXRM_RNU, vl);
+}
+
+vuint8mf8_t test_vnclipu_wv_u8mf8 (vuint16mf4_t op1, vuint8mf8_t shift, size_t vl)
+{
+ return __riscv_vnclipu_wv_u8mf8 (op1, shift, __RISCV_VXRM_RNU, vl);
+}
+
+vint8mf8_t test_vsmul_vv_i8mf8 (vint8mf8_t op1, vint8mf8_t op2, size_t vl)
+{
+ return __riscv_vsmul_vv_i8mf8 (op1, op2, __RISCV_VXRM_RNU, vl);
+}
+
+vint8mf8_t test_vssra_vv_i8mf8 (vint8mf8_t op1, vuint8mf8_t shift, size_t vl)
+{
+ return __riscv_vssra_vv_i8mf8 (op1, shift, __RISCV_VXRM_RNU, vl);
+}
+
+vuint8mf8_t test_vssrl_vv_u8mf8 (vuint8mf8_t op1, vuint8mf8_t shift, size_t vl)
+{
+ return __riscv_vssrl_vv_u8mf8 (op1, shift, __RISCV_VXRM_RNU, vl);
+}
+
+vint8mf8_t test_vsadd_vv_i8mf8 (vint8mf8_t op1, vint8mf8_t op2, size_t vl)
+{
+ return __riscv_vsadd_vv_i8mf8 (op1, op2, vl);
+}
+vuint8mf8_t test_vsaddu_vv_u8mf8 (vuint8mf8_t op1, vuint8mf8_t op2, size_t vl)
+{
+ return __riscv_vsaddu_vv_u8mf8 (op1, op2, vl);
+}
+vint8mf8_t test_vssub_vv_i8mf8 (vint8mf8_t op1, vint8mf8_t op2, size_t vl)
+{
+ return __riscv_vssub_vv_i8mf8 (op1, op2, vl);
+}
+vuint8mf8_t test_vssubu_vv_u8mf8 (vuint8mf8_t op1, vuint8mf8_t op2, size_t vl)
+{
+ return __riscv_vssubu_vv_u8mf8 (op1, op2, vl);
+}
+
+/* { dg-final { scan-assembler-times {vaadd\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vaaddu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vasub\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vasubu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vnclip\.wv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vnclipu\.wv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vsmul\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vssra\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vssrl\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vsadd\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vsaddu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vssub\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {vssubu\.vv\s+v[0-9]+,\s*v[0-9]+,\s*v[0-9]+} 1 } } */
+/* { dg-final { scan-assembler-times {csrwi\s+vxrm,\s*0} 9 } } */
{
vint8mf4_t v = __riscv_vle8_v_i8mf4 (base1, 32);
for (int i = 0; i < n; i++){
- v = __riscv_vsadd_vv_i8mf4 (v, v, 0, 32);
+ v = __riscv_vsadd_vv_i8mf4 (v, v, 32);
v = __riscv_vle8_v_i8mf4_tu (v, base2, 32);
}
__riscv_vse8_v_i8mf4 (out, v, 32);
{
vint8mf4_t v = __riscv_vle8_v_i8mf4 (base1, 32);
for (int i = 0; i < n; i++){
- v = __riscv_vsadd_vx_i8mf4 (v, 100, 0, 32);
+ v = __riscv_vsadd_vx_i8mf4 (v, 100, 32);
v = __riscv_vle8_v_i8mf4_tu (v, base2, 32);
}
__riscv_vse8_v_i8mf4 (out, v, 32);