xref: /llvm-project/llvm/test/CodeGen/RISCV/rvv/vwmaccu.ll (revision f2bdc29f3e5dd4d8d65081094f8afc789d58706a)
10fd212c9SJim Lin; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
20fd212c9SJim Lin; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v,+d \
30fd212c9SJim Lin; RUN:   -verify-machineinstrs | FileCheck %s
40fd212c9SJim Lin; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v,+d \
50fd212c9SJim Lin; RUN:   -verify-machineinstrs | FileCheck %s
6*f2bdc29fSJim Lin
70fd212c9SJim Lindeclare <vscale x 1 x i16> @llvm.riscv.vwmaccu.nxv1i16.nxv1i8(
80fd212c9SJim Lin  <vscale x 1 x i16>,
90fd212c9SJim Lin  <vscale x 1 x i8>,
100fd212c9SJim Lin  <vscale x 1 x i8>,
110fd212c9SJim Lin  iXLen,
120fd212c9SJim Lin  iXLen);
130fd212c9SJim Lin
140fd212c9SJim Lindefine <vscale x 1 x i16>  @intrinsic_vwmaccu_vv_nxv1i16_nxv1i8_nxv1i8(<vscale x 1 x i16> %0, <vscale x 1 x i8> %1, <vscale x 1 x i8> %2, iXLen %3) nounwind {
150fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv1i16_nxv1i8_nxv1i8:
160fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
170fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, tu, ma
180fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10
190fd212c9SJim Lin; CHECK-NEXT:    ret
200fd212c9SJim Linentry:
210fd212c9SJim Lin  %a = call <vscale x 1 x i16> @llvm.riscv.vwmaccu.nxv1i16.nxv1i8(
220fd212c9SJim Lin    <vscale x 1 x i16> %0,
230fd212c9SJim Lin    <vscale x 1 x i8> %1,
240fd212c9SJim Lin    <vscale x 1 x i8> %2,
250fd212c9SJim Lin    iXLen %3, iXLen 0)
260fd212c9SJim Lin
270fd212c9SJim Lin  ret <vscale x 1 x i16> %a
280fd212c9SJim Lin}
290fd212c9SJim Lin
300fd212c9SJim Lindeclare <vscale x 1 x i16> @llvm.riscv.vwmaccu.mask.nxv1i16.nxv1i8(
310fd212c9SJim Lin  <vscale x 1 x i16>,
320fd212c9SJim Lin  <vscale x 1 x i8>,
330fd212c9SJim Lin  <vscale x 1 x i8>,
340fd212c9SJim Lin  <vscale x 1 x i1>,
350fd212c9SJim Lin  iXLen, iXLen);
360fd212c9SJim Lin
370fd212c9SJim Lindefine <vscale x 1 x i16>  @intrinsic_vwmaccu_mask_vv_nxv1i16_nxv1i8_nxv1i8(<vscale x 1 x i16> %0, <vscale x 1 x i8> %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
380fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv1i16_nxv1i8_nxv1i8:
390fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
400fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, tu, mu
410fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10, v0.t
420fd212c9SJim Lin; CHECK-NEXT:    ret
430fd212c9SJim Linentry:
440fd212c9SJim Lin  %a = call <vscale x 1 x i16> @llvm.riscv.vwmaccu.mask.nxv1i16.nxv1i8(
450fd212c9SJim Lin    <vscale x 1 x i16> %0,
460fd212c9SJim Lin    <vscale x 1 x i8> %1,
470fd212c9SJim Lin    <vscale x 1 x i8> %2,
480fd212c9SJim Lin    <vscale x 1 x i1> %3,
490fd212c9SJim Lin    iXLen %4, iXLen 0)
500fd212c9SJim Lin
510fd212c9SJim Lin  ret <vscale x 1 x i16> %a
520fd212c9SJim Lin}
530fd212c9SJim Lin
540fd212c9SJim Lindeclare <vscale x 2 x i16> @llvm.riscv.vwmaccu.nxv2i16.nxv2i8(
550fd212c9SJim Lin  <vscale x 2 x i16>,
560fd212c9SJim Lin  <vscale x 2 x i8>,
570fd212c9SJim Lin  <vscale x 2 x i8>,
580fd212c9SJim Lin  iXLen,
590fd212c9SJim Lin  iXLen);
600fd212c9SJim Lin
610fd212c9SJim Lindefine <vscale x 2 x i16>  @intrinsic_vwmaccu_vv_nxv2i16_nxv2i8_nxv2i8(<vscale x 2 x i16> %0, <vscale x 2 x i8> %1, <vscale x 2 x i8> %2, iXLen %3) nounwind {
620fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv2i16_nxv2i8_nxv2i8:
630fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
640fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, tu, ma
650fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10
660fd212c9SJim Lin; CHECK-NEXT:    ret
670fd212c9SJim Linentry:
680fd212c9SJim Lin  %a = call <vscale x 2 x i16> @llvm.riscv.vwmaccu.nxv2i16.nxv2i8(
690fd212c9SJim Lin    <vscale x 2 x i16> %0,
700fd212c9SJim Lin    <vscale x 2 x i8> %1,
710fd212c9SJim Lin    <vscale x 2 x i8> %2,
720fd212c9SJim Lin    iXLen %3, iXLen 0)
730fd212c9SJim Lin
740fd212c9SJim Lin  ret <vscale x 2 x i16> %a
750fd212c9SJim Lin}
760fd212c9SJim Lin
770fd212c9SJim Lindeclare <vscale x 2 x i16> @llvm.riscv.vwmaccu.mask.nxv2i16.nxv2i8(
780fd212c9SJim Lin  <vscale x 2 x i16>,
790fd212c9SJim Lin  <vscale x 2 x i8>,
800fd212c9SJim Lin  <vscale x 2 x i8>,
810fd212c9SJim Lin  <vscale x 2 x i1>,
820fd212c9SJim Lin  iXLen, iXLen);
830fd212c9SJim Lin
840fd212c9SJim Lindefine <vscale x 2 x i16>  @intrinsic_vwmaccu_mask_vv_nxv2i16_nxv2i8_nxv2i8(<vscale x 2 x i16> %0, <vscale x 2 x i8> %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
850fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv2i16_nxv2i8_nxv2i8:
860fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
870fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, tu, mu
880fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10, v0.t
890fd212c9SJim Lin; CHECK-NEXT:    ret
900fd212c9SJim Linentry:
910fd212c9SJim Lin  %a = call <vscale x 2 x i16> @llvm.riscv.vwmaccu.mask.nxv2i16.nxv2i8(
920fd212c9SJim Lin    <vscale x 2 x i16> %0,
930fd212c9SJim Lin    <vscale x 2 x i8> %1,
940fd212c9SJim Lin    <vscale x 2 x i8> %2,
950fd212c9SJim Lin    <vscale x 2 x i1> %3,
960fd212c9SJim Lin    iXLen %4, iXLen 0)
970fd212c9SJim Lin
980fd212c9SJim Lin  ret <vscale x 2 x i16> %a
990fd212c9SJim Lin}
1000fd212c9SJim Lin
1010fd212c9SJim Lindeclare <vscale x 4 x i16> @llvm.riscv.vwmaccu.nxv4i16.nxv4i8(
1020fd212c9SJim Lin  <vscale x 4 x i16>,
1030fd212c9SJim Lin  <vscale x 4 x i8>,
1040fd212c9SJim Lin  <vscale x 4 x i8>,
1050fd212c9SJim Lin  iXLen,
1060fd212c9SJim Lin  iXLen);
1070fd212c9SJim Lin
1080fd212c9SJim Lindefine <vscale x 4 x i16>  @intrinsic_vwmaccu_vv_nxv4i16_nxv4i8_nxv4i8(<vscale x 4 x i16> %0, <vscale x 4 x i8> %1, <vscale x 4 x i8> %2, iXLen %3) nounwind {
1090fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv4i16_nxv4i8_nxv4i8:
1100fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
1110fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, tu, ma
1120fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10
1130fd212c9SJim Lin; CHECK-NEXT:    ret
1140fd212c9SJim Linentry:
1150fd212c9SJim Lin  %a = call <vscale x 4 x i16> @llvm.riscv.vwmaccu.nxv4i16.nxv4i8(
1160fd212c9SJim Lin    <vscale x 4 x i16> %0,
1170fd212c9SJim Lin    <vscale x 4 x i8> %1,
1180fd212c9SJim Lin    <vscale x 4 x i8> %2,
1190fd212c9SJim Lin    iXLen %3, iXLen 0)
1200fd212c9SJim Lin
1210fd212c9SJim Lin  ret <vscale x 4 x i16> %a
1220fd212c9SJim Lin}
1230fd212c9SJim Lin
1240fd212c9SJim Lindeclare <vscale x 4 x i16> @llvm.riscv.vwmaccu.mask.nxv4i16.nxv4i8(
1250fd212c9SJim Lin  <vscale x 4 x i16>,
1260fd212c9SJim Lin  <vscale x 4 x i8>,
1270fd212c9SJim Lin  <vscale x 4 x i8>,
1280fd212c9SJim Lin  <vscale x 4 x i1>,
1290fd212c9SJim Lin  iXLen, iXLen);
1300fd212c9SJim Lin
1310fd212c9SJim Lindefine <vscale x 4 x i16>  @intrinsic_vwmaccu_mask_vv_nxv4i16_nxv4i8_nxv4i8(<vscale x 4 x i16> %0, <vscale x 4 x i8> %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
1320fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv4i16_nxv4i8_nxv4i8:
1330fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
1340fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, tu, mu
1350fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10, v0.t
1360fd212c9SJim Lin; CHECK-NEXT:    ret
1370fd212c9SJim Linentry:
1380fd212c9SJim Lin  %a = call <vscale x 4 x i16> @llvm.riscv.vwmaccu.mask.nxv4i16.nxv4i8(
1390fd212c9SJim Lin    <vscale x 4 x i16> %0,
1400fd212c9SJim Lin    <vscale x 4 x i8> %1,
1410fd212c9SJim Lin    <vscale x 4 x i8> %2,
1420fd212c9SJim Lin    <vscale x 4 x i1> %3,
1430fd212c9SJim Lin    iXLen %4, iXLen 0)
1440fd212c9SJim Lin
1450fd212c9SJim Lin  ret <vscale x 4 x i16> %a
1460fd212c9SJim Lin}
1470fd212c9SJim Lin
1480fd212c9SJim Lindeclare <vscale x 8 x i16> @llvm.riscv.vwmaccu.nxv8i16.nxv8i8(
1490fd212c9SJim Lin  <vscale x 8 x i16>,
1500fd212c9SJim Lin  <vscale x 8 x i8>,
1510fd212c9SJim Lin  <vscale x 8 x i8>,
1520fd212c9SJim Lin  iXLen,
1530fd212c9SJim Lin  iXLen);
1540fd212c9SJim Lin
1550fd212c9SJim Lindefine <vscale x 8 x i16>  @intrinsic_vwmaccu_vv_nxv8i16_nxv8i8_nxv8i8(<vscale x 8 x i16> %0, <vscale x 8 x i8> %1, <vscale x 8 x i8> %2, iXLen %3) nounwind {
1560fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv8i16_nxv8i8_nxv8i8:
1570fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
1580fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, m1, tu, ma
1590fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v10, v11
1600fd212c9SJim Lin; CHECK-NEXT:    ret
1610fd212c9SJim Linentry:
1620fd212c9SJim Lin  %a = call <vscale x 8 x i16> @llvm.riscv.vwmaccu.nxv8i16.nxv8i8(
1630fd212c9SJim Lin    <vscale x 8 x i16> %0,
1640fd212c9SJim Lin    <vscale x 8 x i8> %1,
1650fd212c9SJim Lin    <vscale x 8 x i8> %2,
1660fd212c9SJim Lin    iXLen %3, iXLen 0)
1670fd212c9SJim Lin
1680fd212c9SJim Lin  ret <vscale x 8 x i16> %a
1690fd212c9SJim Lin}
1700fd212c9SJim Lin
1710fd212c9SJim Lindeclare <vscale x 8 x i16> @llvm.riscv.vwmaccu.mask.nxv8i16.nxv8i8(
1720fd212c9SJim Lin  <vscale x 8 x i16>,
1730fd212c9SJim Lin  <vscale x 8 x i8>,
1740fd212c9SJim Lin  <vscale x 8 x i8>,
1750fd212c9SJim Lin  <vscale x 8 x i1>,
1760fd212c9SJim Lin  iXLen, iXLen);
1770fd212c9SJim Lin
1780fd212c9SJim Lindefine <vscale x 8 x i16>  @intrinsic_vwmaccu_mask_vv_nxv8i16_nxv8i8_nxv8i8(<vscale x 8 x i16> %0, <vscale x 8 x i8> %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
1790fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv8i16_nxv8i8_nxv8i8:
1800fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
1810fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, m1, tu, mu
1820fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v10, v11, v0.t
1830fd212c9SJim Lin; CHECK-NEXT:    ret
1840fd212c9SJim Linentry:
1850fd212c9SJim Lin  %a = call <vscale x 8 x i16> @llvm.riscv.vwmaccu.mask.nxv8i16.nxv8i8(
1860fd212c9SJim Lin    <vscale x 8 x i16> %0,
1870fd212c9SJim Lin    <vscale x 8 x i8> %1,
1880fd212c9SJim Lin    <vscale x 8 x i8> %2,
1890fd212c9SJim Lin    <vscale x 8 x i1> %3,
1900fd212c9SJim Lin    iXLen %4, iXLen 0)
1910fd212c9SJim Lin
1920fd212c9SJim Lin  ret <vscale x 8 x i16> %a
1930fd212c9SJim Lin}
1940fd212c9SJim Lin
1950fd212c9SJim Lindeclare <vscale x 16 x i16> @llvm.riscv.vwmaccu.nxv16i16.nxv16i8(
1960fd212c9SJim Lin  <vscale x 16 x i16>,
1970fd212c9SJim Lin  <vscale x 16 x i8>,
1980fd212c9SJim Lin  <vscale x 16 x i8>,
1990fd212c9SJim Lin  iXLen,
2000fd212c9SJim Lin  iXLen);
2010fd212c9SJim Lin
2020fd212c9SJim Lindefine <vscale x 16 x i16>  @intrinsic_vwmaccu_vv_nxv16i16_nxv16i8_nxv16i8(<vscale x 16 x i16> %0, <vscale x 16 x i8> %1, <vscale x 16 x i8> %2, iXLen %3) nounwind {
2030fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv16i16_nxv16i8_nxv16i8:
2040fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
2050fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, m2, tu, ma
2060fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v12, v14
2070fd212c9SJim Lin; CHECK-NEXT:    ret
2080fd212c9SJim Linentry:
2090fd212c9SJim Lin  %a = call <vscale x 16 x i16> @llvm.riscv.vwmaccu.nxv16i16.nxv16i8(
2100fd212c9SJim Lin    <vscale x 16 x i16> %0,
2110fd212c9SJim Lin    <vscale x 16 x i8> %1,
2120fd212c9SJim Lin    <vscale x 16 x i8> %2,
2130fd212c9SJim Lin    iXLen %3, iXLen 0)
2140fd212c9SJim Lin
2150fd212c9SJim Lin  ret <vscale x 16 x i16> %a
2160fd212c9SJim Lin}
2170fd212c9SJim Lin
2180fd212c9SJim Lindeclare <vscale x 16 x i16> @llvm.riscv.vwmaccu.mask.nxv16i16.nxv16i8(
2190fd212c9SJim Lin  <vscale x 16 x i16>,
2200fd212c9SJim Lin  <vscale x 16 x i8>,
2210fd212c9SJim Lin  <vscale x 16 x i8>,
2220fd212c9SJim Lin  <vscale x 16 x i1>,
2230fd212c9SJim Lin  iXLen, iXLen);
2240fd212c9SJim Lin
2250fd212c9SJim Lindefine <vscale x 16 x i16>  @intrinsic_vwmaccu_mask_vv_nxv16i16_nxv16i8_nxv16i8(<vscale x 16 x i16> %0, <vscale x 16 x i8> %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
2260fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv16i16_nxv16i8_nxv16i8:
2270fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
2280fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, m2, tu, mu
2290fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v12, v14, v0.t
2300fd212c9SJim Lin; CHECK-NEXT:    ret
2310fd212c9SJim Linentry:
2320fd212c9SJim Lin  %a = call <vscale x 16 x i16> @llvm.riscv.vwmaccu.mask.nxv16i16.nxv16i8(
2330fd212c9SJim Lin    <vscale x 16 x i16> %0,
2340fd212c9SJim Lin    <vscale x 16 x i8> %1,
2350fd212c9SJim Lin    <vscale x 16 x i8> %2,
2360fd212c9SJim Lin    <vscale x 16 x i1> %3,
2370fd212c9SJim Lin    iXLen %4, iXLen 0)
2380fd212c9SJim Lin
2390fd212c9SJim Lin  ret <vscale x 16 x i16> %a
2400fd212c9SJim Lin}
2410fd212c9SJim Lin
2420fd212c9SJim Lindeclare <vscale x 32 x i16> @llvm.riscv.vwmaccu.nxv32i16.nxv32i8(
2430fd212c9SJim Lin  <vscale x 32 x i16>,
2440fd212c9SJim Lin  <vscale x 32 x i8>,
2450fd212c9SJim Lin  <vscale x 32 x i8>,
2460fd212c9SJim Lin  iXLen,
2470fd212c9SJim Lin  iXLen);
2480fd212c9SJim Lin
2490fd212c9SJim Lindefine <vscale x 32 x i16>  @intrinsic_vwmaccu_vv_nxv32i16_nxv32i8_nxv32i8(<vscale x 32 x i16> %0, <vscale x 32 x i8> %1, <vscale x 32 x i8> %2, iXLen %3) nounwind {
2500fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv32i16_nxv32i8_nxv32i8:
2510fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
2520fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, m4, tu, ma
2530fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v16, v20
2540fd212c9SJim Lin; CHECK-NEXT:    ret
2550fd212c9SJim Linentry:
2560fd212c9SJim Lin  %a = call <vscale x 32 x i16> @llvm.riscv.vwmaccu.nxv32i16.nxv32i8(
2570fd212c9SJim Lin    <vscale x 32 x i16> %0,
2580fd212c9SJim Lin    <vscale x 32 x i8> %1,
2590fd212c9SJim Lin    <vscale x 32 x i8> %2,
2600fd212c9SJim Lin    iXLen %3, iXLen 0)
2610fd212c9SJim Lin
2620fd212c9SJim Lin  ret <vscale x 32 x i16> %a
2630fd212c9SJim Lin}
2640fd212c9SJim Lin
2650fd212c9SJim Lindeclare <vscale x 32 x i16> @llvm.riscv.vwmaccu.mask.nxv32i16.nxv32i8(
2660fd212c9SJim Lin  <vscale x 32 x i16>,
2670fd212c9SJim Lin  <vscale x 32 x i8>,
2680fd212c9SJim Lin  <vscale x 32 x i8>,
2690fd212c9SJim Lin  <vscale x 32 x i1>,
2700fd212c9SJim Lin  iXLen, iXLen);
2710fd212c9SJim Lin
2720fd212c9SJim Lindefine <vscale x 32 x i16>  @intrinsic_vwmaccu_mask_vv_nxv32i16_nxv32i8_nxv32i8(<vscale x 32 x i16> %0, <vscale x 32 x i8> %1, <vscale x 32 x i8> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {
2730fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv32i16_nxv32i8_nxv32i8:
2740fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
2750fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e8, m4, tu, mu
2760fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v16, v20, v0.t
2770fd212c9SJim Lin; CHECK-NEXT:    ret
2780fd212c9SJim Linentry:
2790fd212c9SJim Lin  %a = call <vscale x 32 x i16> @llvm.riscv.vwmaccu.mask.nxv32i16.nxv32i8(
2800fd212c9SJim Lin    <vscale x 32 x i16> %0,
2810fd212c9SJim Lin    <vscale x 32 x i8> %1,
2820fd212c9SJim Lin    <vscale x 32 x i8> %2,
2830fd212c9SJim Lin    <vscale x 32 x i1> %3,
2840fd212c9SJim Lin    iXLen %4, iXLen 0)
2850fd212c9SJim Lin
2860fd212c9SJim Lin  ret <vscale x 32 x i16> %a
2870fd212c9SJim Lin}
2880fd212c9SJim Lin
2890fd212c9SJim Lindeclare <vscale x 1 x i32> @llvm.riscv.vwmaccu.nxv1i32.nxv1i16(
2900fd212c9SJim Lin  <vscale x 1 x i32>,
2910fd212c9SJim Lin  <vscale x 1 x i16>,
2920fd212c9SJim Lin  <vscale x 1 x i16>,
2930fd212c9SJim Lin  iXLen,
2940fd212c9SJim Lin  iXLen);
2950fd212c9SJim Lin
2960fd212c9SJim Lindefine <vscale x 1 x i32>  @intrinsic_vwmaccu_vv_nxv1i32_nxv1i16_nxv1i16(<vscale x 1 x i32> %0, <vscale x 1 x i16> %1, <vscale x 1 x i16> %2, iXLen %3) nounwind {
2970fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv1i32_nxv1i16_nxv1i16:
2980fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
2990fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, tu, ma
3000fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10
3010fd212c9SJim Lin; CHECK-NEXT:    ret
3020fd212c9SJim Linentry:
3030fd212c9SJim Lin  %a = call <vscale x 1 x i32> @llvm.riscv.vwmaccu.nxv1i32.nxv1i16(
3040fd212c9SJim Lin    <vscale x 1 x i32> %0,
3050fd212c9SJim Lin    <vscale x 1 x i16> %1,
3060fd212c9SJim Lin    <vscale x 1 x i16> %2,
3070fd212c9SJim Lin    iXLen %3, iXLen 0)
3080fd212c9SJim Lin
3090fd212c9SJim Lin  ret <vscale x 1 x i32> %a
3100fd212c9SJim Lin}
3110fd212c9SJim Lin
3120fd212c9SJim Lindeclare <vscale x 1 x i32> @llvm.riscv.vwmaccu.mask.nxv1i32.nxv1i16(
3130fd212c9SJim Lin  <vscale x 1 x i32>,
3140fd212c9SJim Lin  <vscale x 1 x i16>,
3150fd212c9SJim Lin  <vscale x 1 x i16>,
3160fd212c9SJim Lin  <vscale x 1 x i1>,
3170fd212c9SJim Lin  iXLen, iXLen);
3180fd212c9SJim Lin
3190fd212c9SJim Lindefine <vscale x 1 x i32>  @intrinsic_vwmaccu_mask_vv_nxv1i32_nxv1i16_nxv1i16(<vscale x 1 x i32> %0, <vscale x 1 x i16> %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
3200fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv1i32_nxv1i16_nxv1i16:
3210fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
3220fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, tu, mu
3230fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10, v0.t
3240fd212c9SJim Lin; CHECK-NEXT:    ret
3250fd212c9SJim Linentry:
3260fd212c9SJim Lin  %a = call <vscale x 1 x i32> @llvm.riscv.vwmaccu.mask.nxv1i32.nxv1i16(
3270fd212c9SJim Lin    <vscale x 1 x i32> %0,
3280fd212c9SJim Lin    <vscale x 1 x i16> %1,
3290fd212c9SJim Lin    <vscale x 1 x i16> %2,
3300fd212c9SJim Lin    <vscale x 1 x i1> %3,
3310fd212c9SJim Lin    iXLen %4, iXLen 0)
3320fd212c9SJim Lin
3330fd212c9SJim Lin  ret <vscale x 1 x i32> %a
3340fd212c9SJim Lin}
3350fd212c9SJim Lin
3360fd212c9SJim Lindeclare <vscale x 2 x i32> @llvm.riscv.vwmaccu.nxv2i32.nxv2i16(
3370fd212c9SJim Lin  <vscale x 2 x i32>,
3380fd212c9SJim Lin  <vscale x 2 x i16>,
3390fd212c9SJim Lin  <vscale x 2 x i16>,
3400fd212c9SJim Lin  iXLen,
3410fd212c9SJim Lin  iXLen);
3420fd212c9SJim Lin
3430fd212c9SJim Lindefine <vscale x 2 x i32>  @intrinsic_vwmaccu_vv_nxv2i32_nxv2i16_nxv2i16(<vscale x 2 x i32> %0, <vscale x 2 x i16> %1, <vscale x 2 x i16> %2, iXLen %3) nounwind {
3440fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv2i32_nxv2i16_nxv2i16:
3450fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
3460fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, tu, ma
3470fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10
3480fd212c9SJim Lin; CHECK-NEXT:    ret
3490fd212c9SJim Linentry:
3500fd212c9SJim Lin  %a = call <vscale x 2 x i32> @llvm.riscv.vwmaccu.nxv2i32.nxv2i16(
3510fd212c9SJim Lin    <vscale x 2 x i32> %0,
3520fd212c9SJim Lin    <vscale x 2 x i16> %1,
3530fd212c9SJim Lin    <vscale x 2 x i16> %2,
3540fd212c9SJim Lin    iXLen %3, iXLen 0)
3550fd212c9SJim Lin
3560fd212c9SJim Lin  ret <vscale x 2 x i32> %a
3570fd212c9SJim Lin}
3580fd212c9SJim Lin
3590fd212c9SJim Lindeclare <vscale x 2 x i32> @llvm.riscv.vwmaccu.mask.nxv2i32.nxv2i16(
3600fd212c9SJim Lin  <vscale x 2 x i32>,
3610fd212c9SJim Lin  <vscale x 2 x i16>,
3620fd212c9SJim Lin  <vscale x 2 x i16>,
3630fd212c9SJim Lin  <vscale x 2 x i1>,
3640fd212c9SJim Lin  iXLen, iXLen);
3650fd212c9SJim Lin
3660fd212c9SJim Lindefine <vscale x 2 x i32>  @intrinsic_vwmaccu_mask_vv_nxv2i32_nxv2i16_nxv2i16(<vscale x 2 x i32> %0, <vscale x 2 x i16> %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
3670fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv2i32_nxv2i16_nxv2i16:
3680fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
3690fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, tu, mu
3700fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10, v0.t
3710fd212c9SJim Lin; CHECK-NEXT:    ret
3720fd212c9SJim Linentry:
3730fd212c9SJim Lin  %a = call <vscale x 2 x i32> @llvm.riscv.vwmaccu.mask.nxv2i32.nxv2i16(
3740fd212c9SJim Lin    <vscale x 2 x i32> %0,
3750fd212c9SJim Lin    <vscale x 2 x i16> %1,
3760fd212c9SJim Lin    <vscale x 2 x i16> %2,
3770fd212c9SJim Lin    <vscale x 2 x i1> %3,
3780fd212c9SJim Lin    iXLen %4, iXLen 0)
3790fd212c9SJim Lin
3800fd212c9SJim Lin  ret <vscale x 2 x i32> %a
3810fd212c9SJim Lin}
3820fd212c9SJim Lin
3830fd212c9SJim Lindeclare <vscale x 4 x i32> @llvm.riscv.vwmaccu.nxv4i32.nxv4i16(
3840fd212c9SJim Lin  <vscale x 4 x i32>,
3850fd212c9SJim Lin  <vscale x 4 x i16>,
3860fd212c9SJim Lin  <vscale x 4 x i16>,
3870fd212c9SJim Lin  iXLen,
3880fd212c9SJim Lin  iXLen);
3890fd212c9SJim Lin
3900fd212c9SJim Lindefine <vscale x 4 x i32>  @intrinsic_vwmaccu_vv_nxv4i32_nxv4i16_nxv4i16(<vscale x 4 x i32> %0, <vscale x 4 x i16> %1, <vscale x 4 x i16> %2, iXLen %3) nounwind {
3910fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv4i32_nxv4i16_nxv4i16:
3920fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
3930fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, m1, tu, ma
3940fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v10, v11
3950fd212c9SJim Lin; CHECK-NEXT:    ret
3960fd212c9SJim Linentry:
3970fd212c9SJim Lin  %a = call <vscale x 4 x i32> @llvm.riscv.vwmaccu.nxv4i32.nxv4i16(
3980fd212c9SJim Lin    <vscale x 4 x i32> %0,
3990fd212c9SJim Lin    <vscale x 4 x i16> %1,
4000fd212c9SJim Lin    <vscale x 4 x i16> %2,
4010fd212c9SJim Lin    iXLen %3, iXLen 0)
4020fd212c9SJim Lin
4030fd212c9SJim Lin  ret <vscale x 4 x i32> %a
4040fd212c9SJim Lin}
4050fd212c9SJim Lin
4060fd212c9SJim Lindeclare <vscale x 4 x i32> @llvm.riscv.vwmaccu.mask.nxv4i32.nxv4i16(
4070fd212c9SJim Lin  <vscale x 4 x i32>,
4080fd212c9SJim Lin  <vscale x 4 x i16>,
4090fd212c9SJim Lin  <vscale x 4 x i16>,
4100fd212c9SJim Lin  <vscale x 4 x i1>,
4110fd212c9SJim Lin  iXLen, iXLen);
4120fd212c9SJim Lin
4130fd212c9SJim Lindefine <vscale x 4 x i32>  @intrinsic_vwmaccu_mask_vv_nxv4i32_nxv4i16_nxv4i16(<vscale x 4 x i32> %0, <vscale x 4 x i16> %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
4140fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv4i32_nxv4i16_nxv4i16:
4150fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
4160fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, m1, tu, mu
4170fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v10, v11, v0.t
4180fd212c9SJim Lin; CHECK-NEXT:    ret
4190fd212c9SJim Linentry:
4200fd212c9SJim Lin  %a = call <vscale x 4 x i32> @llvm.riscv.vwmaccu.mask.nxv4i32.nxv4i16(
4210fd212c9SJim Lin    <vscale x 4 x i32> %0,
4220fd212c9SJim Lin    <vscale x 4 x i16> %1,
4230fd212c9SJim Lin    <vscale x 4 x i16> %2,
4240fd212c9SJim Lin    <vscale x 4 x i1> %3,
4250fd212c9SJim Lin    iXLen %4, iXLen 0)
4260fd212c9SJim Lin
4270fd212c9SJim Lin  ret <vscale x 4 x i32> %a
4280fd212c9SJim Lin}
4290fd212c9SJim Lin
4300fd212c9SJim Lindeclare <vscale x 8 x i32> @llvm.riscv.vwmaccu.nxv8i32.nxv8i16(
4310fd212c9SJim Lin  <vscale x 8 x i32>,
4320fd212c9SJim Lin  <vscale x 8 x i16>,
4330fd212c9SJim Lin  <vscale x 8 x i16>,
4340fd212c9SJim Lin  iXLen,
4350fd212c9SJim Lin  iXLen);
4360fd212c9SJim Lin
4370fd212c9SJim Lindefine <vscale x 8 x i32>  @intrinsic_vwmaccu_vv_nxv8i32_nxv8i16_nxv8i16(<vscale x 8 x i32> %0, <vscale x 8 x i16> %1, <vscale x 8 x i16> %2, iXLen %3) nounwind {
4380fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv8i32_nxv8i16_nxv8i16:
4390fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
4400fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, m2, tu, ma
4410fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v12, v14
4420fd212c9SJim Lin; CHECK-NEXT:    ret
4430fd212c9SJim Linentry:
4440fd212c9SJim Lin  %a = call <vscale x 8 x i32> @llvm.riscv.vwmaccu.nxv8i32.nxv8i16(
4450fd212c9SJim Lin    <vscale x 8 x i32> %0,
4460fd212c9SJim Lin    <vscale x 8 x i16> %1,
4470fd212c9SJim Lin    <vscale x 8 x i16> %2,
4480fd212c9SJim Lin    iXLen %3, iXLen 0)
4490fd212c9SJim Lin
4500fd212c9SJim Lin  ret <vscale x 8 x i32> %a
4510fd212c9SJim Lin}
4520fd212c9SJim Lin
4530fd212c9SJim Lindeclare <vscale x 8 x i32> @llvm.riscv.vwmaccu.mask.nxv8i32.nxv8i16(
4540fd212c9SJim Lin  <vscale x 8 x i32>,
4550fd212c9SJim Lin  <vscale x 8 x i16>,
4560fd212c9SJim Lin  <vscale x 8 x i16>,
4570fd212c9SJim Lin  <vscale x 8 x i1>,
4580fd212c9SJim Lin  iXLen, iXLen);
4590fd212c9SJim Lin
4600fd212c9SJim Lindefine <vscale x 8 x i32>  @intrinsic_vwmaccu_mask_vv_nxv8i32_nxv8i16_nxv8i16(<vscale x 8 x i32> %0, <vscale x 8 x i16> %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
4610fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv8i32_nxv8i16_nxv8i16:
4620fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
4630fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, m2, tu, mu
4640fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v12, v14, v0.t
4650fd212c9SJim Lin; CHECK-NEXT:    ret
4660fd212c9SJim Linentry:
4670fd212c9SJim Lin  %a = call <vscale x 8 x i32> @llvm.riscv.vwmaccu.mask.nxv8i32.nxv8i16(
4680fd212c9SJim Lin    <vscale x 8 x i32> %0,
4690fd212c9SJim Lin    <vscale x 8 x i16> %1,
4700fd212c9SJim Lin    <vscale x 8 x i16> %2,
4710fd212c9SJim Lin    <vscale x 8 x i1> %3,
4720fd212c9SJim Lin    iXLen %4, iXLen 0)
4730fd212c9SJim Lin
4740fd212c9SJim Lin  ret <vscale x 8 x i32> %a
4750fd212c9SJim Lin}
4760fd212c9SJim Lin
4770fd212c9SJim Lindeclare <vscale x 16 x i32> @llvm.riscv.vwmaccu.nxv16i32.nxv16i16(
4780fd212c9SJim Lin  <vscale x 16 x i32>,
4790fd212c9SJim Lin  <vscale x 16 x i16>,
4800fd212c9SJim Lin  <vscale x 16 x i16>,
4810fd212c9SJim Lin  iXLen,
4820fd212c9SJim Lin  iXLen);
4830fd212c9SJim Lin
4840fd212c9SJim Lindefine <vscale x 16 x i32>  @intrinsic_vwmaccu_vv_nxv16i32_nxv16i16_nxv16i16(<vscale x 16 x i32> %0, <vscale x 16 x i16> %1, <vscale x 16 x i16> %2, iXLen %3) nounwind {
4850fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv16i32_nxv16i16_nxv16i16:
4860fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
4870fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, m4, tu, ma
4880fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v16, v20
4890fd212c9SJim Lin; CHECK-NEXT:    ret
4900fd212c9SJim Linentry:
4910fd212c9SJim Lin  %a = call <vscale x 16 x i32> @llvm.riscv.vwmaccu.nxv16i32.nxv16i16(
4920fd212c9SJim Lin    <vscale x 16 x i32> %0,
4930fd212c9SJim Lin    <vscale x 16 x i16> %1,
4940fd212c9SJim Lin    <vscale x 16 x i16> %2,
4950fd212c9SJim Lin    iXLen %3, iXLen 0)
4960fd212c9SJim Lin
4970fd212c9SJim Lin  ret <vscale x 16 x i32> %a
4980fd212c9SJim Lin}
4990fd212c9SJim Lin
5000fd212c9SJim Lindeclare <vscale x 16 x i32> @llvm.riscv.vwmaccu.mask.nxv16i32.nxv16i16(
5010fd212c9SJim Lin  <vscale x 16 x i32>,
5020fd212c9SJim Lin  <vscale x 16 x i16>,
5030fd212c9SJim Lin  <vscale x 16 x i16>,
5040fd212c9SJim Lin  <vscale x 16 x i1>,
5050fd212c9SJim Lin  iXLen, iXLen);
5060fd212c9SJim Lin
5070fd212c9SJim Lindefine <vscale x 16 x i32>  @intrinsic_vwmaccu_mask_vv_nxv16i32_nxv16i16_nxv16i16(<vscale x 16 x i32> %0, <vscale x 16 x i16> %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
5080fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv16i32_nxv16i16_nxv16i16:
5090fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
5100fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e16, m4, tu, mu
5110fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v16, v20, v0.t
5120fd212c9SJim Lin; CHECK-NEXT:    ret
5130fd212c9SJim Linentry:
5140fd212c9SJim Lin  %a = call <vscale x 16 x i32> @llvm.riscv.vwmaccu.mask.nxv16i32.nxv16i16(
5150fd212c9SJim Lin    <vscale x 16 x i32> %0,
5160fd212c9SJim Lin    <vscale x 16 x i16> %1,
5170fd212c9SJim Lin    <vscale x 16 x i16> %2,
5180fd212c9SJim Lin    <vscale x 16 x i1> %3,
5190fd212c9SJim Lin    iXLen %4, iXLen 0)
5200fd212c9SJim Lin
5210fd212c9SJim Lin  ret <vscale x 16 x i32> %a
5220fd212c9SJim Lin}
5230fd212c9SJim Lin
5240fd212c9SJim Lindeclare <vscale x 1 x i64> @llvm.riscv.vwmaccu.nxv1i64.nxv1i32(
5250fd212c9SJim Lin  <vscale x 1 x i64>,
5260fd212c9SJim Lin  <vscale x 1 x i32>,
5270fd212c9SJim Lin  <vscale x 1 x i32>,
5280fd212c9SJim Lin  iXLen,
5290fd212c9SJim Lin  iXLen);
5300fd212c9SJim Lin
5310fd212c9SJim Lindefine <vscale x 1 x i64>  @intrinsic_vwmaccu_vv_nxv1i64_nxv1i32_nxv1i32(<vscale x 1 x i64> %0, <vscale x 1 x i32> %1, <vscale x 1 x i32> %2, iXLen %3) nounwind {
5320fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv1i64_nxv1i32_nxv1i32:
5330fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
5340fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, tu, ma
5350fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10
5360fd212c9SJim Lin; CHECK-NEXT:    ret
5370fd212c9SJim Linentry:
5380fd212c9SJim Lin  %a = call <vscale x 1 x i64> @llvm.riscv.vwmaccu.nxv1i64.nxv1i32(
5390fd212c9SJim Lin    <vscale x 1 x i64> %0,
5400fd212c9SJim Lin    <vscale x 1 x i32> %1,
5410fd212c9SJim Lin    <vscale x 1 x i32> %2,
5420fd212c9SJim Lin    iXLen %3, iXLen 0)
5430fd212c9SJim Lin
5440fd212c9SJim Lin  ret <vscale x 1 x i64> %a
5450fd212c9SJim Lin}
5460fd212c9SJim Lin
5470fd212c9SJim Lindeclare <vscale x 1 x i64> @llvm.riscv.vwmaccu.mask.nxv1i64.nxv1i32(
5480fd212c9SJim Lin  <vscale x 1 x i64>,
5490fd212c9SJim Lin  <vscale x 1 x i32>,
5500fd212c9SJim Lin  <vscale x 1 x i32>,
5510fd212c9SJim Lin  <vscale x 1 x i1>,
5520fd212c9SJim Lin  iXLen, iXLen);
5530fd212c9SJim Lin
5540fd212c9SJim Lindefine <vscale x 1 x i64>  @intrinsic_vwmaccu_mask_vv_nxv1i64_nxv1i32_nxv1i32(<vscale x 1 x i64> %0, <vscale x 1 x i32> %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
5550fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv1i64_nxv1i32_nxv1i32:
5560fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
5570fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, tu, mu
5580fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v9, v10, v0.t
5590fd212c9SJim Lin; CHECK-NEXT:    ret
5600fd212c9SJim Linentry:
5610fd212c9SJim Lin  %a = call <vscale x 1 x i64> @llvm.riscv.vwmaccu.mask.nxv1i64.nxv1i32(
5620fd212c9SJim Lin    <vscale x 1 x i64> %0,
5630fd212c9SJim Lin    <vscale x 1 x i32> %1,
5640fd212c9SJim Lin    <vscale x 1 x i32> %2,
5650fd212c9SJim Lin    <vscale x 1 x i1> %3,
5660fd212c9SJim Lin    iXLen %4, iXLen 0)
5670fd212c9SJim Lin
5680fd212c9SJim Lin  ret <vscale x 1 x i64> %a
5690fd212c9SJim Lin}
5700fd212c9SJim Lin
5710fd212c9SJim Lindeclare <vscale x 2 x i64> @llvm.riscv.vwmaccu.nxv2i64.nxv2i32(
5720fd212c9SJim Lin  <vscale x 2 x i64>,
5730fd212c9SJim Lin  <vscale x 2 x i32>,
5740fd212c9SJim Lin  <vscale x 2 x i32>,
5750fd212c9SJim Lin  iXLen,
5760fd212c9SJim Lin  iXLen);
5770fd212c9SJim Lin
5780fd212c9SJim Lindefine <vscale x 2 x i64>  @intrinsic_vwmaccu_vv_nxv2i64_nxv2i32_nxv2i32(<vscale x 2 x i64> %0, <vscale x 2 x i32> %1, <vscale x 2 x i32> %2, iXLen %3) nounwind {
5790fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv2i64_nxv2i32_nxv2i32:
5800fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
5810fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, m1, tu, ma
5820fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v10, v11
5830fd212c9SJim Lin; CHECK-NEXT:    ret
5840fd212c9SJim Linentry:
5850fd212c9SJim Lin  %a = call <vscale x 2 x i64> @llvm.riscv.vwmaccu.nxv2i64.nxv2i32(
5860fd212c9SJim Lin    <vscale x 2 x i64> %0,
5870fd212c9SJim Lin    <vscale x 2 x i32> %1,
5880fd212c9SJim Lin    <vscale x 2 x i32> %2,
5890fd212c9SJim Lin    iXLen %3, iXLen 0)
5900fd212c9SJim Lin
5910fd212c9SJim Lin  ret <vscale x 2 x i64> %a
5920fd212c9SJim Lin}
5930fd212c9SJim Lin
5940fd212c9SJim Lindeclare <vscale x 2 x i64> @llvm.riscv.vwmaccu.mask.nxv2i64.nxv2i32(
5950fd212c9SJim Lin  <vscale x 2 x i64>,
5960fd212c9SJim Lin  <vscale x 2 x i32>,
5970fd212c9SJim Lin  <vscale x 2 x i32>,
5980fd212c9SJim Lin  <vscale x 2 x i1>,
5990fd212c9SJim Lin  iXLen, iXLen);
6000fd212c9SJim Lin
6010fd212c9SJim Lindefine <vscale x 2 x i64>  @intrinsic_vwmaccu_mask_vv_nxv2i64_nxv2i32_nxv2i32(<vscale x 2 x i64> %0, <vscale x 2 x i32> %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
6020fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv2i64_nxv2i32_nxv2i32:
6030fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
6040fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, m1, tu, mu
6050fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v10, v11, v0.t
6060fd212c9SJim Lin; CHECK-NEXT:    ret
6070fd212c9SJim Linentry:
6080fd212c9SJim Lin  %a = call <vscale x 2 x i64> @llvm.riscv.vwmaccu.mask.nxv2i64.nxv2i32(
6090fd212c9SJim Lin    <vscale x 2 x i64> %0,
6100fd212c9SJim Lin    <vscale x 2 x i32> %1,
6110fd212c9SJim Lin    <vscale x 2 x i32> %2,
6120fd212c9SJim Lin    <vscale x 2 x i1> %3,
6130fd212c9SJim Lin    iXLen %4, iXLen 0)
6140fd212c9SJim Lin
6150fd212c9SJim Lin  ret <vscale x 2 x i64> %a
6160fd212c9SJim Lin}
6170fd212c9SJim Lin
6180fd212c9SJim Lindeclare <vscale x 4 x i64> @llvm.riscv.vwmaccu.nxv4i64.nxv4i32(
6190fd212c9SJim Lin  <vscale x 4 x i64>,
6200fd212c9SJim Lin  <vscale x 4 x i32>,
6210fd212c9SJim Lin  <vscale x 4 x i32>,
6220fd212c9SJim Lin  iXLen,
6230fd212c9SJim Lin  iXLen);
6240fd212c9SJim Lin
6250fd212c9SJim Lindefine <vscale x 4 x i64>  @intrinsic_vwmaccu_vv_nxv4i64_nxv4i32_nxv4i32(<vscale x 4 x i64> %0, <vscale x 4 x i32> %1, <vscale x 4 x i32> %2, iXLen %3) nounwind {
6260fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv4i64_nxv4i32_nxv4i32:
6270fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
6280fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, m2, tu, ma
6290fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v12, v14
6300fd212c9SJim Lin; CHECK-NEXT:    ret
6310fd212c9SJim Linentry:
6320fd212c9SJim Lin  %a = call <vscale x 4 x i64> @llvm.riscv.vwmaccu.nxv4i64.nxv4i32(
6330fd212c9SJim Lin    <vscale x 4 x i64> %0,
6340fd212c9SJim Lin    <vscale x 4 x i32> %1,
6350fd212c9SJim Lin    <vscale x 4 x i32> %2,
6360fd212c9SJim Lin    iXLen %3, iXLen 0)
6370fd212c9SJim Lin
6380fd212c9SJim Lin  ret <vscale x 4 x i64> %a
6390fd212c9SJim Lin}
6400fd212c9SJim Lin
6410fd212c9SJim Lindeclare <vscale x 4 x i64> @llvm.riscv.vwmaccu.mask.nxv4i64.nxv4i32(
6420fd212c9SJim Lin  <vscale x 4 x i64>,
6430fd212c9SJim Lin  <vscale x 4 x i32>,
6440fd212c9SJim Lin  <vscale x 4 x i32>,
6450fd212c9SJim Lin  <vscale x 4 x i1>,
6460fd212c9SJim Lin  iXLen, iXLen);
6470fd212c9SJim Lin
6480fd212c9SJim Lindefine <vscale x 4 x i64>  @intrinsic_vwmaccu_mask_vv_nxv4i64_nxv4i32_nxv4i32(<vscale x 4 x i64> %0, <vscale x 4 x i32> %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
6490fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv4i64_nxv4i32_nxv4i32:
6500fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
6510fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, m2, tu, mu
6520fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v12, v14, v0.t
6530fd212c9SJim Lin; CHECK-NEXT:    ret
6540fd212c9SJim Linentry:
6550fd212c9SJim Lin  %a = call <vscale x 4 x i64> @llvm.riscv.vwmaccu.mask.nxv4i64.nxv4i32(
6560fd212c9SJim Lin    <vscale x 4 x i64> %0,
6570fd212c9SJim Lin    <vscale x 4 x i32> %1,
6580fd212c9SJim Lin    <vscale x 4 x i32> %2,
6590fd212c9SJim Lin    <vscale x 4 x i1> %3,
6600fd212c9SJim Lin    iXLen %4, iXLen 0)
6610fd212c9SJim Lin
6620fd212c9SJim Lin  ret <vscale x 4 x i64> %a
6630fd212c9SJim Lin}
6640fd212c9SJim Lin
6650fd212c9SJim Lindeclare <vscale x 8 x i64> @llvm.riscv.vwmaccu.nxv8i64.nxv8i32(
6660fd212c9SJim Lin  <vscale x 8 x i64>,
6670fd212c9SJim Lin  <vscale x 8 x i32>,
6680fd212c9SJim Lin  <vscale x 8 x i32>,
6690fd212c9SJim Lin  iXLen,
6700fd212c9SJim Lin  iXLen);
6710fd212c9SJim Lin
6720fd212c9SJim Lindefine <vscale x 8 x i64>  @intrinsic_vwmaccu_vv_nxv8i64_nxv8i32_nxv8i32(<vscale x 8 x i64> %0, <vscale x 8 x i32> %1, <vscale x 8 x i32> %2, iXLen %3) nounwind {
6730fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vv_nxv8i64_nxv8i32_nxv8i32:
6740fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
6750fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, m4, tu, ma
6760fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v16, v20
6770fd212c9SJim Lin; CHECK-NEXT:    ret
6780fd212c9SJim Linentry:
6790fd212c9SJim Lin  %a = call <vscale x 8 x i64> @llvm.riscv.vwmaccu.nxv8i64.nxv8i32(
6800fd212c9SJim Lin    <vscale x 8 x i64> %0,
6810fd212c9SJim Lin    <vscale x 8 x i32> %1,
6820fd212c9SJim Lin    <vscale x 8 x i32> %2,
6830fd212c9SJim Lin    iXLen %3, iXLen 0)
6840fd212c9SJim Lin
6850fd212c9SJim Lin  ret <vscale x 8 x i64> %a
6860fd212c9SJim Lin}
6870fd212c9SJim Lin
6880fd212c9SJim Lindeclare <vscale x 8 x i64> @llvm.riscv.vwmaccu.mask.nxv8i64.nxv8i32(
6890fd212c9SJim Lin  <vscale x 8 x i64>,
6900fd212c9SJim Lin  <vscale x 8 x i32>,
6910fd212c9SJim Lin  <vscale x 8 x i32>,
6920fd212c9SJim Lin  <vscale x 8 x i1>,
6930fd212c9SJim Lin  iXLen, iXLen);
6940fd212c9SJim Lin
6950fd212c9SJim Lindefine <vscale x 8 x i64>  @intrinsic_vwmaccu_mask_vv_nxv8i64_nxv8i32_nxv8i32(<vscale x 8 x i64> %0, <vscale x 8 x i32> %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
6960fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vv_nxv8i64_nxv8i32_nxv8i32:
6970fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
6980fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a0, e32, m4, tu, mu
6990fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vv v8, v16, v20, v0.t
7000fd212c9SJim Lin; CHECK-NEXT:    ret
7010fd212c9SJim Linentry:
7020fd212c9SJim Lin  %a = call <vscale x 8 x i64> @llvm.riscv.vwmaccu.mask.nxv8i64.nxv8i32(
7030fd212c9SJim Lin    <vscale x 8 x i64> %0,
7040fd212c9SJim Lin    <vscale x 8 x i32> %1,
7050fd212c9SJim Lin    <vscale x 8 x i32> %2,
7060fd212c9SJim Lin    <vscale x 8 x i1> %3,
7070fd212c9SJim Lin    iXLen %4, iXLen 0)
7080fd212c9SJim Lin
7090fd212c9SJim Lin  ret <vscale x 8 x i64> %a
7100fd212c9SJim Lin}
7110fd212c9SJim Lin
7120fd212c9SJim Lindeclare <vscale x 1 x i16> @llvm.riscv.vwmaccu.nxv1i16.i8(
7130fd212c9SJim Lin  <vscale x 1 x i16>,
7140fd212c9SJim Lin  i8,
7150fd212c9SJim Lin  <vscale x 1 x i8>,
7160fd212c9SJim Lin  iXLen,
7170fd212c9SJim Lin  iXLen);
7180fd212c9SJim Lin
7190fd212c9SJim Lindefine <vscale x 1 x i16>  @intrinsic_vwmaccu_vx_nxv1i16_i8_nxv1i8(<vscale x 1 x i16> %0, i8 %1, <vscale x 1 x i8> %2, iXLen %3) nounwind {
7200fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv1i16_i8_nxv1i8:
7210fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
7220fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, tu, ma
7230fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9
7240fd212c9SJim Lin; CHECK-NEXT:    ret
7250fd212c9SJim Linentry:
7260fd212c9SJim Lin  %a = call <vscale x 1 x i16> @llvm.riscv.vwmaccu.nxv1i16.i8(
7270fd212c9SJim Lin    <vscale x 1 x i16> %0,
7280fd212c9SJim Lin    i8 %1,
7290fd212c9SJim Lin    <vscale x 1 x i8> %2,
7300fd212c9SJim Lin    iXLen %3, iXLen 0)
7310fd212c9SJim Lin
7320fd212c9SJim Lin  ret <vscale x 1 x i16> %a
7330fd212c9SJim Lin}
7340fd212c9SJim Lin
7350fd212c9SJim Lindeclare <vscale x 1 x i16> @llvm.riscv.vwmaccu.mask.nxv1i16.i8(
7360fd212c9SJim Lin  <vscale x 1 x i16>,
7370fd212c9SJim Lin  i8,
7380fd212c9SJim Lin  <vscale x 1 x i8>,
7390fd212c9SJim Lin  <vscale x 1 x i1>,
7400fd212c9SJim Lin  iXLen, iXLen);
7410fd212c9SJim Lin
7420fd212c9SJim Lindefine <vscale x 1 x i16> @intrinsic_vwmaccu_mask_vx_nxv1i16_i8_nxv1i8(<vscale x 1 x i16> %0, i8 %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
7430fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv1i16_i8_nxv1i8:
7440fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
7450fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, tu, mu
7460fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9, v0.t
7470fd212c9SJim Lin; CHECK-NEXT:    ret
7480fd212c9SJim Linentry:
7490fd212c9SJim Lin  %a = call <vscale x 1 x i16> @llvm.riscv.vwmaccu.mask.nxv1i16.i8(
7500fd212c9SJim Lin    <vscale x 1 x i16> %0,
7510fd212c9SJim Lin    i8 %1,
7520fd212c9SJim Lin    <vscale x 1 x i8> %2,
7530fd212c9SJim Lin    <vscale x 1 x i1> %3,
7540fd212c9SJim Lin    iXLen %4, iXLen 0)
7550fd212c9SJim Lin
7560fd212c9SJim Lin  ret <vscale x 1 x i16> %a
7570fd212c9SJim Lin}
7580fd212c9SJim Lin
7590fd212c9SJim Lindeclare <vscale x 2 x i16> @llvm.riscv.vwmaccu.nxv2i16.i8(
7600fd212c9SJim Lin  <vscale x 2 x i16>,
7610fd212c9SJim Lin  i8,
7620fd212c9SJim Lin  <vscale x 2 x i8>,
7630fd212c9SJim Lin  iXLen,
7640fd212c9SJim Lin  iXLen);
7650fd212c9SJim Lin
7660fd212c9SJim Lindefine <vscale x 2 x i16>  @intrinsic_vwmaccu_vx_nxv2i16_i8_nxv2i8(<vscale x 2 x i16> %0, i8 %1, <vscale x 2 x i8> %2, iXLen %3) nounwind {
7670fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv2i16_i8_nxv2i8:
7680fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
7690fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, tu, ma
7700fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9
7710fd212c9SJim Lin; CHECK-NEXT:    ret
7720fd212c9SJim Linentry:
7730fd212c9SJim Lin  %a = call <vscale x 2 x i16> @llvm.riscv.vwmaccu.nxv2i16.i8(
7740fd212c9SJim Lin    <vscale x 2 x i16> %0,
7750fd212c9SJim Lin    i8 %1,
7760fd212c9SJim Lin    <vscale x 2 x i8> %2,
7770fd212c9SJim Lin    iXLen %3, iXLen 0)
7780fd212c9SJim Lin
7790fd212c9SJim Lin  ret <vscale x 2 x i16> %a
7800fd212c9SJim Lin}
7810fd212c9SJim Lin
7820fd212c9SJim Lindeclare <vscale x 2 x i16> @llvm.riscv.vwmaccu.mask.nxv2i16.i8(
7830fd212c9SJim Lin  <vscale x 2 x i16>,
7840fd212c9SJim Lin  i8,
7850fd212c9SJim Lin  <vscale x 2 x i8>,
7860fd212c9SJim Lin  <vscale x 2 x i1>,
7870fd212c9SJim Lin  iXLen, iXLen);
7880fd212c9SJim Lin
7890fd212c9SJim Lindefine <vscale x 2 x i16> @intrinsic_vwmaccu_mask_vx_nxv2i16_i8_nxv2i8(<vscale x 2 x i16> %0, i8 %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
7900fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv2i16_i8_nxv2i8:
7910fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
7920fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, tu, mu
7930fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9, v0.t
7940fd212c9SJim Lin; CHECK-NEXT:    ret
7950fd212c9SJim Linentry:
7960fd212c9SJim Lin  %a = call <vscale x 2 x i16> @llvm.riscv.vwmaccu.mask.nxv2i16.i8(
7970fd212c9SJim Lin    <vscale x 2 x i16> %0,
7980fd212c9SJim Lin    i8 %1,
7990fd212c9SJim Lin    <vscale x 2 x i8> %2,
8000fd212c9SJim Lin    <vscale x 2 x i1> %3,
8010fd212c9SJim Lin    iXLen %4, iXLen 0)
8020fd212c9SJim Lin
8030fd212c9SJim Lin  ret <vscale x 2 x i16> %a
8040fd212c9SJim Lin}
8050fd212c9SJim Lin
8060fd212c9SJim Lindeclare <vscale x 4 x i16> @llvm.riscv.vwmaccu.nxv4i16.i8(
8070fd212c9SJim Lin  <vscale x 4 x i16>,
8080fd212c9SJim Lin  i8,
8090fd212c9SJim Lin  <vscale x 4 x i8>,
8100fd212c9SJim Lin  iXLen,
8110fd212c9SJim Lin  iXLen);
8120fd212c9SJim Lin
8130fd212c9SJim Lindefine <vscale x 4 x i16>  @intrinsic_vwmaccu_vx_nxv4i16_i8_nxv4i8(<vscale x 4 x i16> %0, i8 %1, <vscale x 4 x i8> %2, iXLen %3) nounwind {
8140fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv4i16_i8_nxv4i8:
8150fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
8160fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, tu, ma
8170fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9
8180fd212c9SJim Lin; CHECK-NEXT:    ret
8190fd212c9SJim Linentry:
8200fd212c9SJim Lin  %a = call <vscale x 4 x i16> @llvm.riscv.vwmaccu.nxv4i16.i8(
8210fd212c9SJim Lin    <vscale x 4 x i16> %0,
8220fd212c9SJim Lin    i8 %1,
8230fd212c9SJim Lin    <vscale x 4 x i8> %2,
8240fd212c9SJim Lin    iXLen %3, iXLen 0)
8250fd212c9SJim Lin
8260fd212c9SJim Lin  ret <vscale x 4 x i16> %a
8270fd212c9SJim Lin}
8280fd212c9SJim Lin
8290fd212c9SJim Lindeclare <vscale x 4 x i16> @llvm.riscv.vwmaccu.mask.nxv4i16.i8(
8300fd212c9SJim Lin  <vscale x 4 x i16>,
8310fd212c9SJim Lin  i8,
8320fd212c9SJim Lin  <vscale x 4 x i8>,
8330fd212c9SJim Lin  <vscale x 4 x i1>,
8340fd212c9SJim Lin  iXLen, iXLen);
8350fd212c9SJim Lin
8360fd212c9SJim Lindefine <vscale x 4 x i16> @intrinsic_vwmaccu_mask_vx_nxv4i16_i8_nxv4i8(<vscale x 4 x i16> %0, i8 %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
8370fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv4i16_i8_nxv4i8:
8380fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
8390fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, tu, mu
8400fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9, v0.t
8410fd212c9SJim Lin; CHECK-NEXT:    ret
8420fd212c9SJim Linentry:
8430fd212c9SJim Lin  %a = call <vscale x 4 x i16> @llvm.riscv.vwmaccu.mask.nxv4i16.i8(
8440fd212c9SJim Lin    <vscale x 4 x i16> %0,
8450fd212c9SJim Lin    i8 %1,
8460fd212c9SJim Lin    <vscale x 4 x i8> %2,
8470fd212c9SJim Lin    <vscale x 4 x i1> %3,
8480fd212c9SJim Lin    iXLen %4, iXLen 0)
8490fd212c9SJim Lin
8500fd212c9SJim Lin  ret <vscale x 4 x i16> %a
8510fd212c9SJim Lin}
8520fd212c9SJim Lin
8530fd212c9SJim Lindeclare <vscale x 8 x i16> @llvm.riscv.vwmaccu.nxv8i16.i8(
8540fd212c9SJim Lin  <vscale x 8 x i16>,
8550fd212c9SJim Lin  i8,
8560fd212c9SJim Lin  <vscale x 8 x i8>,
8570fd212c9SJim Lin  iXLen,
8580fd212c9SJim Lin  iXLen);
8590fd212c9SJim Lin
8600fd212c9SJim Lindefine <vscale x 8 x i16>  @intrinsic_vwmaccu_vx_nxv8i16_i8_nxv8i8(<vscale x 8 x i16> %0, i8 %1, <vscale x 8 x i8> %2, iXLen %3) nounwind {
8610fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv8i16_i8_nxv8i8:
8620fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
8630fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, m1, tu, ma
8640fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v10
8650fd212c9SJim Lin; CHECK-NEXT:    ret
8660fd212c9SJim Linentry:
8670fd212c9SJim Lin  %a = call <vscale x 8 x i16> @llvm.riscv.vwmaccu.nxv8i16.i8(
8680fd212c9SJim Lin    <vscale x 8 x i16> %0,
8690fd212c9SJim Lin    i8 %1,
8700fd212c9SJim Lin    <vscale x 8 x i8> %2,
8710fd212c9SJim Lin    iXLen %3, iXLen 0)
8720fd212c9SJim Lin
8730fd212c9SJim Lin  ret <vscale x 8 x i16> %a
8740fd212c9SJim Lin}
8750fd212c9SJim Lin
8760fd212c9SJim Lindeclare <vscale x 8 x i16> @llvm.riscv.vwmaccu.mask.nxv8i16.i8(
8770fd212c9SJim Lin  <vscale x 8 x i16>,
8780fd212c9SJim Lin  i8,
8790fd212c9SJim Lin  <vscale x 8 x i8>,
8800fd212c9SJim Lin  <vscale x 8 x i1>,
8810fd212c9SJim Lin  iXLen, iXLen);
8820fd212c9SJim Lin
8830fd212c9SJim Lindefine <vscale x 8 x i16> @intrinsic_vwmaccu_mask_vx_nxv8i16_i8_nxv8i8(<vscale x 8 x i16> %0, i8 %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
8840fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv8i16_i8_nxv8i8:
8850fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
8860fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, m1, tu, mu
8870fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v10, v0.t
8880fd212c9SJim Lin; CHECK-NEXT:    ret
8890fd212c9SJim Linentry:
8900fd212c9SJim Lin  %a = call <vscale x 8 x i16> @llvm.riscv.vwmaccu.mask.nxv8i16.i8(
8910fd212c9SJim Lin    <vscale x 8 x i16> %0,
8920fd212c9SJim Lin    i8 %1,
8930fd212c9SJim Lin    <vscale x 8 x i8> %2,
8940fd212c9SJim Lin    <vscale x 8 x i1> %3,
8950fd212c9SJim Lin    iXLen %4, iXLen 0)
8960fd212c9SJim Lin
8970fd212c9SJim Lin  ret <vscale x 8 x i16> %a
8980fd212c9SJim Lin}
8990fd212c9SJim Lin
9000fd212c9SJim Lindeclare <vscale x 16 x i16> @llvm.riscv.vwmaccu.nxv16i16.i8(
9010fd212c9SJim Lin  <vscale x 16 x i16>,
9020fd212c9SJim Lin  i8,
9030fd212c9SJim Lin  <vscale x 16 x i8>,
9040fd212c9SJim Lin  iXLen,
9050fd212c9SJim Lin  iXLen);
9060fd212c9SJim Lin
9070fd212c9SJim Lindefine <vscale x 16 x i16>  @intrinsic_vwmaccu_vx_nxv16i16_i8_nxv16i8(<vscale x 16 x i16> %0, i8 %1, <vscale x 16 x i8> %2, iXLen %3) nounwind {
9080fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv16i16_i8_nxv16i8:
9090fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
9100fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, m2, tu, ma
9110fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v12
9120fd212c9SJim Lin; CHECK-NEXT:    ret
9130fd212c9SJim Linentry:
9140fd212c9SJim Lin  %a = call <vscale x 16 x i16> @llvm.riscv.vwmaccu.nxv16i16.i8(
9150fd212c9SJim Lin    <vscale x 16 x i16> %0,
9160fd212c9SJim Lin    i8 %1,
9170fd212c9SJim Lin    <vscale x 16 x i8> %2,
9180fd212c9SJim Lin    iXLen %3, iXLen 0)
9190fd212c9SJim Lin
9200fd212c9SJim Lin  ret <vscale x 16 x i16> %a
9210fd212c9SJim Lin}
9220fd212c9SJim Lin
9230fd212c9SJim Lindeclare <vscale x 16 x i16> @llvm.riscv.vwmaccu.mask.nxv16i16.i8(
9240fd212c9SJim Lin  <vscale x 16 x i16>,
9250fd212c9SJim Lin  i8,
9260fd212c9SJim Lin  <vscale x 16 x i8>,
9270fd212c9SJim Lin  <vscale x 16 x i1>,
9280fd212c9SJim Lin  iXLen, iXLen);
9290fd212c9SJim Lin
9300fd212c9SJim Lindefine <vscale x 16 x i16> @intrinsic_vwmaccu_mask_vx_nxv16i16_i8_nxv16i8(<vscale x 16 x i16> %0, i8 %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
9310fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv16i16_i8_nxv16i8:
9320fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
9330fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, m2, tu, mu
9340fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v12, v0.t
9350fd212c9SJim Lin; CHECK-NEXT:    ret
9360fd212c9SJim Linentry:
9370fd212c9SJim Lin  %a = call <vscale x 16 x i16> @llvm.riscv.vwmaccu.mask.nxv16i16.i8(
9380fd212c9SJim Lin    <vscale x 16 x i16> %0,
9390fd212c9SJim Lin    i8 %1,
9400fd212c9SJim Lin    <vscale x 16 x i8> %2,
9410fd212c9SJim Lin    <vscale x 16 x i1> %3,
9420fd212c9SJim Lin    iXLen %4, iXLen 0)
9430fd212c9SJim Lin
9440fd212c9SJim Lin  ret <vscale x 16 x i16> %a
9450fd212c9SJim Lin}
9460fd212c9SJim Lin
9470fd212c9SJim Lindeclare <vscale x 32 x i16> @llvm.riscv.vwmaccu.nxv32i16.i8(
9480fd212c9SJim Lin  <vscale x 32 x i16>,
9490fd212c9SJim Lin  i8,
9500fd212c9SJim Lin  <vscale x 32 x i8>,
9510fd212c9SJim Lin  iXLen,
9520fd212c9SJim Lin  iXLen);
9530fd212c9SJim Lin
9540fd212c9SJim Lindefine <vscale x 32 x i16>  @intrinsic_vwmaccu_vx_nxv32i16_i8_nxv32i8(<vscale x 32 x i16> %0, i8 %1, <vscale x 32 x i8> %2, iXLen %3) nounwind {
9550fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv32i16_i8_nxv32i8:
9560fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
9570fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, m4, tu, ma
9580fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v16
9590fd212c9SJim Lin; CHECK-NEXT:    ret
9600fd212c9SJim Linentry:
9610fd212c9SJim Lin  %a = call <vscale x 32 x i16> @llvm.riscv.vwmaccu.nxv32i16.i8(
9620fd212c9SJim Lin    <vscale x 32 x i16> %0,
9630fd212c9SJim Lin    i8 %1,
9640fd212c9SJim Lin    <vscale x 32 x i8> %2,
9650fd212c9SJim Lin    iXLen %3, iXLen 0)
9660fd212c9SJim Lin
9670fd212c9SJim Lin  ret <vscale x 32 x i16> %a
9680fd212c9SJim Lin}
9690fd212c9SJim Lin
9700fd212c9SJim Lindeclare <vscale x 32 x i16> @llvm.riscv.vwmaccu.mask.nxv32i16.i8(
9710fd212c9SJim Lin  <vscale x 32 x i16>,
9720fd212c9SJim Lin  i8,
9730fd212c9SJim Lin  <vscale x 32 x i8>,
9740fd212c9SJim Lin  <vscale x 32 x i1>,
9750fd212c9SJim Lin  iXLen, iXLen);
9760fd212c9SJim Lin
9770fd212c9SJim Lindefine <vscale x 32 x i16> @intrinsic_vwmaccu_mask_vx_nxv32i16_i8_nxv32i8(<vscale x 32 x i16> %0, i8 %1, <vscale x 32 x i8> %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {
9780fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv32i16_i8_nxv32i8:
9790fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
9800fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e8, m4, tu, mu
9810fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v16, v0.t
9820fd212c9SJim Lin; CHECK-NEXT:    ret
9830fd212c9SJim Linentry:
9840fd212c9SJim Lin  %a = call <vscale x 32 x i16> @llvm.riscv.vwmaccu.mask.nxv32i16.i8(
9850fd212c9SJim Lin    <vscale x 32 x i16> %0,
9860fd212c9SJim Lin    i8 %1,
9870fd212c9SJim Lin    <vscale x 32 x i8> %2,
9880fd212c9SJim Lin    <vscale x 32 x i1> %3,
9890fd212c9SJim Lin    iXLen %4, iXLen 0)
9900fd212c9SJim Lin
9910fd212c9SJim Lin  ret <vscale x 32 x i16> %a
9920fd212c9SJim Lin}
9930fd212c9SJim Lin
9940fd212c9SJim Lindeclare <vscale x 1 x i32> @llvm.riscv.vwmaccu.nxv1i32.i16(
9950fd212c9SJim Lin  <vscale x 1 x i32>,
9960fd212c9SJim Lin  i16,
9970fd212c9SJim Lin  <vscale x 1 x i16>,
9980fd212c9SJim Lin  iXLen,
9990fd212c9SJim Lin  iXLen);
10000fd212c9SJim Lin
10010fd212c9SJim Lindefine <vscale x 1 x i32>  @intrinsic_vwmaccu_vx_nxv1i32_i16_nxv1i16(<vscale x 1 x i32> %0, i16 %1, <vscale x 1 x i16> %2, iXLen %3) nounwind {
10020fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv1i32_i16_nxv1i16:
10030fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
10040fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, tu, ma
10050fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9
10060fd212c9SJim Lin; CHECK-NEXT:    ret
10070fd212c9SJim Linentry:
10080fd212c9SJim Lin  %a = call <vscale x 1 x i32> @llvm.riscv.vwmaccu.nxv1i32.i16(
10090fd212c9SJim Lin    <vscale x 1 x i32> %0,
10100fd212c9SJim Lin    i16 %1,
10110fd212c9SJim Lin    <vscale x 1 x i16> %2,
10120fd212c9SJim Lin    iXLen %3, iXLen 0)
10130fd212c9SJim Lin
10140fd212c9SJim Lin  ret <vscale x 1 x i32> %a
10150fd212c9SJim Lin}
10160fd212c9SJim Lin
10170fd212c9SJim Lindeclare <vscale x 1 x i32> @llvm.riscv.vwmaccu.mask.nxv1i32.i16(
10180fd212c9SJim Lin  <vscale x 1 x i32>,
10190fd212c9SJim Lin  i16,
10200fd212c9SJim Lin  <vscale x 1 x i16>,
10210fd212c9SJim Lin  <vscale x 1 x i1>,
10220fd212c9SJim Lin  iXLen, iXLen);
10230fd212c9SJim Lin
10240fd212c9SJim Lindefine <vscale x 1 x i32> @intrinsic_vwmaccu_mask_vx_nxv1i32_i16_nxv1i16(<vscale x 1 x i32> %0, i16 %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
10250fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv1i32_i16_nxv1i16:
10260fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
10270fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, tu, mu
10280fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9, v0.t
10290fd212c9SJim Lin; CHECK-NEXT:    ret
10300fd212c9SJim Linentry:
10310fd212c9SJim Lin  %a = call <vscale x 1 x i32> @llvm.riscv.vwmaccu.mask.nxv1i32.i16(
10320fd212c9SJim Lin    <vscale x 1 x i32> %0,
10330fd212c9SJim Lin    i16 %1,
10340fd212c9SJim Lin    <vscale x 1 x i16> %2,
10350fd212c9SJim Lin    <vscale x 1 x i1> %3,
10360fd212c9SJim Lin    iXLen %4, iXLen 0)
10370fd212c9SJim Lin
10380fd212c9SJim Lin  ret <vscale x 1 x i32> %a
10390fd212c9SJim Lin}
10400fd212c9SJim Lin
10410fd212c9SJim Lindeclare <vscale x 2 x i32> @llvm.riscv.vwmaccu.nxv2i32.i16(
10420fd212c9SJim Lin  <vscale x 2 x i32>,
10430fd212c9SJim Lin  i16,
10440fd212c9SJim Lin  <vscale x 2 x i16>,
10450fd212c9SJim Lin  iXLen,
10460fd212c9SJim Lin  iXLen);
10470fd212c9SJim Lin
10480fd212c9SJim Lindefine <vscale x 2 x i32>  @intrinsic_vwmaccu_vx_nxv2i32_i16_nxv2i16(<vscale x 2 x i32> %0, i16 %1, <vscale x 2 x i16> %2, iXLen %3) nounwind {
10490fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv2i32_i16_nxv2i16:
10500fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
10510fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, tu, ma
10520fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9
10530fd212c9SJim Lin; CHECK-NEXT:    ret
10540fd212c9SJim Linentry:
10550fd212c9SJim Lin  %a = call <vscale x 2 x i32> @llvm.riscv.vwmaccu.nxv2i32.i16(
10560fd212c9SJim Lin    <vscale x 2 x i32> %0,
10570fd212c9SJim Lin    i16 %1,
10580fd212c9SJim Lin    <vscale x 2 x i16> %2,
10590fd212c9SJim Lin    iXLen %3, iXLen 0)
10600fd212c9SJim Lin
10610fd212c9SJim Lin  ret <vscale x 2 x i32> %a
10620fd212c9SJim Lin}
10630fd212c9SJim Lin
10640fd212c9SJim Lindeclare <vscale x 2 x i32> @llvm.riscv.vwmaccu.mask.nxv2i32.i16(
10650fd212c9SJim Lin  <vscale x 2 x i32>,
10660fd212c9SJim Lin  i16,
10670fd212c9SJim Lin  <vscale x 2 x i16>,
10680fd212c9SJim Lin  <vscale x 2 x i1>,
10690fd212c9SJim Lin  iXLen, iXLen);
10700fd212c9SJim Lin
10710fd212c9SJim Lindefine <vscale x 2 x i32> @intrinsic_vwmaccu_mask_vx_nxv2i32_i16_nxv2i16(<vscale x 2 x i32> %0, i16 %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
10720fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv2i32_i16_nxv2i16:
10730fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
10740fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, tu, mu
10750fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9, v0.t
10760fd212c9SJim Lin; CHECK-NEXT:    ret
10770fd212c9SJim Linentry:
10780fd212c9SJim Lin  %a = call <vscale x 2 x i32> @llvm.riscv.vwmaccu.mask.nxv2i32.i16(
10790fd212c9SJim Lin    <vscale x 2 x i32> %0,
10800fd212c9SJim Lin    i16 %1,
10810fd212c9SJim Lin    <vscale x 2 x i16> %2,
10820fd212c9SJim Lin    <vscale x 2 x i1> %3,
10830fd212c9SJim Lin    iXLen %4, iXLen 0)
10840fd212c9SJim Lin
10850fd212c9SJim Lin  ret <vscale x 2 x i32> %a
10860fd212c9SJim Lin}
10870fd212c9SJim Lin
10880fd212c9SJim Lindeclare <vscale x 4 x i32> @llvm.riscv.vwmaccu.nxv4i32.i16(
10890fd212c9SJim Lin  <vscale x 4 x i32>,
10900fd212c9SJim Lin  i16,
10910fd212c9SJim Lin  <vscale x 4 x i16>,
10920fd212c9SJim Lin  iXLen,
10930fd212c9SJim Lin  iXLen);
10940fd212c9SJim Lin
10950fd212c9SJim Lindefine <vscale x 4 x i32>  @intrinsic_vwmaccu_vx_nxv4i32_i16_nxv4i16(<vscale x 4 x i32> %0, i16 %1, <vscale x 4 x i16> %2, iXLen %3) nounwind {
10960fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv4i32_i16_nxv4i16:
10970fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
10980fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, m1, tu, ma
10990fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v10
11000fd212c9SJim Lin; CHECK-NEXT:    ret
11010fd212c9SJim Linentry:
11020fd212c9SJim Lin  %a = call <vscale x 4 x i32> @llvm.riscv.vwmaccu.nxv4i32.i16(
11030fd212c9SJim Lin    <vscale x 4 x i32> %0,
11040fd212c9SJim Lin    i16 %1,
11050fd212c9SJim Lin    <vscale x 4 x i16> %2,
11060fd212c9SJim Lin    iXLen %3, iXLen 0)
11070fd212c9SJim Lin
11080fd212c9SJim Lin  ret <vscale x 4 x i32> %a
11090fd212c9SJim Lin}
11100fd212c9SJim Lin
11110fd212c9SJim Lindeclare <vscale x 4 x i32> @llvm.riscv.vwmaccu.mask.nxv4i32.i16(
11120fd212c9SJim Lin  <vscale x 4 x i32>,
11130fd212c9SJim Lin  i16,
11140fd212c9SJim Lin  <vscale x 4 x i16>,
11150fd212c9SJim Lin  <vscale x 4 x i1>,
11160fd212c9SJim Lin  iXLen, iXLen);
11170fd212c9SJim Lin
11180fd212c9SJim Lindefine <vscale x 4 x i32> @intrinsic_vwmaccu_mask_vx_nxv4i32_i16_nxv4i16(<vscale x 4 x i32> %0, i16 %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
11190fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv4i32_i16_nxv4i16:
11200fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
11210fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, m1, tu, mu
11220fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v10, v0.t
11230fd212c9SJim Lin; CHECK-NEXT:    ret
11240fd212c9SJim Linentry:
11250fd212c9SJim Lin  %a = call <vscale x 4 x i32> @llvm.riscv.vwmaccu.mask.nxv4i32.i16(
11260fd212c9SJim Lin    <vscale x 4 x i32> %0,
11270fd212c9SJim Lin    i16 %1,
11280fd212c9SJim Lin    <vscale x 4 x i16> %2,
11290fd212c9SJim Lin    <vscale x 4 x i1> %3,
11300fd212c9SJim Lin    iXLen %4, iXLen 0)
11310fd212c9SJim Lin
11320fd212c9SJim Lin  ret <vscale x 4 x i32> %a
11330fd212c9SJim Lin}
11340fd212c9SJim Lin
11350fd212c9SJim Lindeclare <vscale x 8 x i32> @llvm.riscv.vwmaccu.nxv8i32.i16(
11360fd212c9SJim Lin  <vscale x 8 x i32>,
11370fd212c9SJim Lin  i16,
11380fd212c9SJim Lin  <vscale x 8 x i16>,
11390fd212c9SJim Lin  iXLen,
11400fd212c9SJim Lin  iXLen);
11410fd212c9SJim Lin
11420fd212c9SJim Lindefine <vscale x 8 x i32>  @intrinsic_vwmaccu_vx_nxv8i32_i16_nxv8i16(<vscale x 8 x i32> %0, i16 %1, <vscale x 8 x i16> %2, iXLen %3) nounwind {
11430fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv8i32_i16_nxv8i16:
11440fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
11450fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, m2, tu, ma
11460fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v12
11470fd212c9SJim Lin; CHECK-NEXT:    ret
11480fd212c9SJim Linentry:
11490fd212c9SJim Lin  %a = call <vscale x 8 x i32> @llvm.riscv.vwmaccu.nxv8i32.i16(
11500fd212c9SJim Lin    <vscale x 8 x i32> %0,
11510fd212c9SJim Lin    i16 %1,
11520fd212c9SJim Lin    <vscale x 8 x i16> %2,
11530fd212c9SJim Lin    iXLen %3, iXLen 0)
11540fd212c9SJim Lin
11550fd212c9SJim Lin  ret <vscale x 8 x i32> %a
11560fd212c9SJim Lin}
11570fd212c9SJim Lin
11580fd212c9SJim Lindeclare <vscale x 8 x i32> @llvm.riscv.vwmaccu.mask.nxv8i32.i16(
11590fd212c9SJim Lin  <vscale x 8 x i32>,
11600fd212c9SJim Lin  i16,
11610fd212c9SJim Lin  <vscale x 8 x i16>,
11620fd212c9SJim Lin  <vscale x 8 x i1>,
11630fd212c9SJim Lin  iXLen, iXLen);
11640fd212c9SJim Lin
11650fd212c9SJim Lindefine <vscale x 8 x i32> @intrinsic_vwmaccu_mask_vx_nxv8i32_i16_nxv8i16(<vscale x 8 x i32> %0, i16 %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
11660fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv8i32_i16_nxv8i16:
11670fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
11680fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, m2, tu, mu
11690fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v12, v0.t
11700fd212c9SJim Lin; CHECK-NEXT:    ret
11710fd212c9SJim Linentry:
11720fd212c9SJim Lin  %a = call <vscale x 8 x i32> @llvm.riscv.vwmaccu.mask.nxv8i32.i16(
11730fd212c9SJim Lin    <vscale x 8 x i32> %0,
11740fd212c9SJim Lin    i16 %1,
11750fd212c9SJim Lin    <vscale x 8 x i16> %2,
11760fd212c9SJim Lin    <vscale x 8 x i1> %3,
11770fd212c9SJim Lin    iXLen %4, iXLen 0)
11780fd212c9SJim Lin
11790fd212c9SJim Lin  ret <vscale x 8 x i32> %a
11800fd212c9SJim Lin}
11810fd212c9SJim Lin
11820fd212c9SJim Lindeclare <vscale x 16 x i32> @llvm.riscv.vwmaccu.nxv16i32.i16(
11830fd212c9SJim Lin  <vscale x 16 x i32>,
11840fd212c9SJim Lin  i16,
11850fd212c9SJim Lin  <vscale x 16 x i16>,
11860fd212c9SJim Lin  iXLen,
11870fd212c9SJim Lin  iXLen);
11880fd212c9SJim Lin
11890fd212c9SJim Lindefine <vscale x 16 x i32>  @intrinsic_vwmaccu_vx_nxv16i32_i16_nxv16i16(<vscale x 16 x i32> %0, i16 %1, <vscale x 16 x i16> %2, iXLen %3) nounwind {
11900fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv16i32_i16_nxv16i16:
11910fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
11920fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, m4, tu, ma
11930fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v16
11940fd212c9SJim Lin; CHECK-NEXT:    ret
11950fd212c9SJim Linentry:
11960fd212c9SJim Lin  %a = call <vscale x 16 x i32> @llvm.riscv.vwmaccu.nxv16i32.i16(
11970fd212c9SJim Lin    <vscale x 16 x i32> %0,
11980fd212c9SJim Lin    i16 %1,
11990fd212c9SJim Lin    <vscale x 16 x i16> %2,
12000fd212c9SJim Lin    iXLen %3, iXLen 0)
12010fd212c9SJim Lin
12020fd212c9SJim Lin  ret <vscale x 16 x i32> %a
12030fd212c9SJim Lin}
12040fd212c9SJim Lin
12050fd212c9SJim Lindeclare <vscale x 16 x i32> @llvm.riscv.vwmaccu.mask.nxv16i32.i16(
12060fd212c9SJim Lin  <vscale x 16 x i32>,
12070fd212c9SJim Lin  i16,
12080fd212c9SJim Lin  <vscale x 16 x i16>,
12090fd212c9SJim Lin  <vscale x 16 x i1>,
12100fd212c9SJim Lin  iXLen, iXLen);
12110fd212c9SJim Lin
12120fd212c9SJim Lindefine <vscale x 16 x i32> @intrinsic_vwmaccu_mask_vx_nxv16i32_i16_nxv16i16(<vscale x 16 x i32> %0, i16 %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
12130fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv16i32_i16_nxv16i16:
12140fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
12150fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e16, m4, tu, mu
12160fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v16, v0.t
12170fd212c9SJim Lin; CHECK-NEXT:    ret
12180fd212c9SJim Linentry:
12190fd212c9SJim Lin  %a = call <vscale x 16 x i32> @llvm.riscv.vwmaccu.mask.nxv16i32.i16(
12200fd212c9SJim Lin    <vscale x 16 x i32> %0,
12210fd212c9SJim Lin    i16 %1,
12220fd212c9SJim Lin    <vscale x 16 x i16> %2,
12230fd212c9SJim Lin    <vscale x 16 x i1> %3,
12240fd212c9SJim Lin    iXLen %4, iXLen 0)
12250fd212c9SJim Lin
12260fd212c9SJim Lin  ret <vscale x 16 x i32> %a
12270fd212c9SJim Lin}
12280fd212c9SJim Lin
12290fd212c9SJim Lindeclare <vscale x 1 x i64> @llvm.riscv.vwmaccu.nxv1i64.i32(
12300fd212c9SJim Lin  <vscale x 1 x i64>,
12310fd212c9SJim Lin  i32,
12320fd212c9SJim Lin  <vscale x 1 x i32>,
12330fd212c9SJim Lin  iXLen,
12340fd212c9SJim Lin  iXLen);
12350fd212c9SJim Lin
12360fd212c9SJim Lindefine <vscale x 1 x i64>  @intrinsic_vwmaccu_vx_nxv1i64_i32_nxv1i32(<vscale x 1 x i64> %0, i32 %1, <vscale x 1 x i32> %2, iXLen %3) nounwind {
12370fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv1i64_i32_nxv1i32:
12380fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
12390fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, tu, ma
12400fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9
12410fd212c9SJim Lin; CHECK-NEXT:    ret
12420fd212c9SJim Linentry:
12430fd212c9SJim Lin  %a = call <vscale x 1 x i64> @llvm.riscv.vwmaccu.nxv1i64.i32(
12440fd212c9SJim Lin    <vscale x 1 x i64> %0,
12450fd212c9SJim Lin    i32 %1,
12460fd212c9SJim Lin    <vscale x 1 x i32> %2,
12470fd212c9SJim Lin    iXLen %3, iXLen 0)
12480fd212c9SJim Lin
12490fd212c9SJim Lin  ret <vscale x 1 x i64> %a
12500fd212c9SJim Lin}
12510fd212c9SJim Lin
12520fd212c9SJim Lindeclare <vscale x 1 x i64> @llvm.riscv.vwmaccu.mask.nxv1i64.i32(
12530fd212c9SJim Lin  <vscale x 1 x i64>,
12540fd212c9SJim Lin  i32,
12550fd212c9SJim Lin  <vscale x 1 x i32>,
12560fd212c9SJim Lin  <vscale x 1 x i1>,
12570fd212c9SJim Lin  iXLen, iXLen);
12580fd212c9SJim Lin
12590fd212c9SJim Lindefine <vscale x 1 x i64> @intrinsic_vwmaccu_mask_vx_nxv1i64_i32_nxv1i32(<vscale x 1 x i64> %0, i32 %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
12600fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv1i64_i32_nxv1i32:
12610fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
12620fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, tu, mu
12630fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v9, v0.t
12640fd212c9SJim Lin; CHECK-NEXT:    ret
12650fd212c9SJim Linentry:
12660fd212c9SJim Lin  %a = call <vscale x 1 x i64> @llvm.riscv.vwmaccu.mask.nxv1i64.i32(
12670fd212c9SJim Lin    <vscale x 1 x i64> %0,
12680fd212c9SJim Lin    i32 %1,
12690fd212c9SJim Lin    <vscale x 1 x i32> %2,
12700fd212c9SJim Lin    <vscale x 1 x i1> %3,
12710fd212c9SJim Lin    iXLen %4, iXLen 0)
12720fd212c9SJim Lin
12730fd212c9SJim Lin  ret <vscale x 1 x i64> %a
12740fd212c9SJim Lin}
12750fd212c9SJim Lin
12760fd212c9SJim Lindeclare <vscale x 2 x i64> @llvm.riscv.vwmaccu.nxv2i64.i32(
12770fd212c9SJim Lin  <vscale x 2 x i64>,
12780fd212c9SJim Lin  i32,
12790fd212c9SJim Lin  <vscale x 2 x i32>,
12800fd212c9SJim Lin  iXLen,
12810fd212c9SJim Lin  iXLen);
12820fd212c9SJim Lin
12830fd212c9SJim Lindefine <vscale x 2 x i64>  @intrinsic_vwmaccu_vx_nxv2i64_i32_nxv2i32(<vscale x 2 x i64> %0, i32 %1, <vscale x 2 x i32> %2, iXLen %3) nounwind {
12840fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv2i64_i32_nxv2i32:
12850fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
12860fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, m1, tu, ma
12870fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v10
12880fd212c9SJim Lin; CHECK-NEXT:    ret
12890fd212c9SJim Linentry:
12900fd212c9SJim Lin  %a = call <vscale x 2 x i64> @llvm.riscv.vwmaccu.nxv2i64.i32(
12910fd212c9SJim Lin    <vscale x 2 x i64> %0,
12920fd212c9SJim Lin    i32 %1,
12930fd212c9SJim Lin    <vscale x 2 x i32> %2,
12940fd212c9SJim Lin    iXLen %3, iXLen 0)
12950fd212c9SJim Lin
12960fd212c9SJim Lin  ret <vscale x 2 x i64> %a
12970fd212c9SJim Lin}
12980fd212c9SJim Lin
12990fd212c9SJim Lindeclare <vscale x 2 x i64> @llvm.riscv.vwmaccu.mask.nxv2i64.i32(
13000fd212c9SJim Lin  <vscale x 2 x i64>,
13010fd212c9SJim Lin  i32,
13020fd212c9SJim Lin  <vscale x 2 x i32>,
13030fd212c9SJim Lin  <vscale x 2 x i1>,
13040fd212c9SJim Lin  iXLen, iXLen);
13050fd212c9SJim Lin
13060fd212c9SJim Lindefine <vscale x 2 x i64> @intrinsic_vwmaccu_mask_vx_nxv2i64_i32_nxv2i32(<vscale x 2 x i64> %0, i32 %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
13070fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv2i64_i32_nxv2i32:
13080fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
13090fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, m1, tu, mu
13100fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v10, v0.t
13110fd212c9SJim Lin; CHECK-NEXT:    ret
13120fd212c9SJim Linentry:
13130fd212c9SJim Lin  %a = call <vscale x 2 x i64> @llvm.riscv.vwmaccu.mask.nxv2i64.i32(
13140fd212c9SJim Lin    <vscale x 2 x i64> %0,
13150fd212c9SJim Lin    i32 %1,
13160fd212c9SJim Lin    <vscale x 2 x i32> %2,
13170fd212c9SJim Lin    <vscale x 2 x i1> %3,
13180fd212c9SJim Lin    iXLen %4, iXLen 0)
13190fd212c9SJim Lin
13200fd212c9SJim Lin  ret <vscale x 2 x i64> %a
13210fd212c9SJim Lin}
13220fd212c9SJim Lin
13230fd212c9SJim Lindeclare <vscale x 4 x i64> @llvm.riscv.vwmaccu.nxv4i64.i32(
13240fd212c9SJim Lin  <vscale x 4 x i64>,
13250fd212c9SJim Lin  i32,
13260fd212c9SJim Lin  <vscale x 4 x i32>,
13270fd212c9SJim Lin  iXLen,
13280fd212c9SJim Lin  iXLen);
13290fd212c9SJim Lin
13300fd212c9SJim Lindefine <vscale x 4 x i64>  @intrinsic_vwmaccu_vx_nxv4i64_i32_nxv4i32(<vscale x 4 x i64> %0, i32 %1, <vscale x 4 x i32> %2, iXLen %3) nounwind {
13310fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv4i64_i32_nxv4i32:
13320fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
13330fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, m2, tu, ma
13340fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v12
13350fd212c9SJim Lin; CHECK-NEXT:    ret
13360fd212c9SJim Linentry:
13370fd212c9SJim Lin  %a = call <vscale x 4 x i64> @llvm.riscv.vwmaccu.nxv4i64.i32(
13380fd212c9SJim Lin    <vscale x 4 x i64> %0,
13390fd212c9SJim Lin    i32 %1,
13400fd212c9SJim Lin    <vscale x 4 x i32> %2,
13410fd212c9SJim Lin    iXLen %3, iXLen 0)
13420fd212c9SJim Lin
13430fd212c9SJim Lin  ret <vscale x 4 x i64> %a
13440fd212c9SJim Lin}
13450fd212c9SJim Lin
13460fd212c9SJim Lindeclare <vscale x 4 x i64> @llvm.riscv.vwmaccu.mask.nxv4i64.i32(
13470fd212c9SJim Lin  <vscale x 4 x i64>,
13480fd212c9SJim Lin  i32,
13490fd212c9SJim Lin  <vscale x 4 x i32>,
13500fd212c9SJim Lin  <vscale x 4 x i1>,
13510fd212c9SJim Lin  iXLen, iXLen);
13520fd212c9SJim Lin
13530fd212c9SJim Lindefine <vscale x 4 x i64> @intrinsic_vwmaccu_mask_vx_nxv4i64_i32_nxv4i32(<vscale x 4 x i64> %0, i32 %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
13540fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv4i64_i32_nxv4i32:
13550fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
13560fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, m2, tu, mu
13570fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v12, v0.t
13580fd212c9SJim Lin; CHECK-NEXT:    ret
13590fd212c9SJim Linentry:
13600fd212c9SJim Lin  %a = call <vscale x 4 x i64> @llvm.riscv.vwmaccu.mask.nxv4i64.i32(
13610fd212c9SJim Lin    <vscale x 4 x i64> %0,
13620fd212c9SJim Lin    i32 %1,
13630fd212c9SJim Lin    <vscale x 4 x i32> %2,
13640fd212c9SJim Lin    <vscale x 4 x i1> %3,
13650fd212c9SJim Lin    iXLen %4, iXLen 0)
13660fd212c9SJim Lin
13670fd212c9SJim Lin  ret <vscale x 4 x i64> %a
13680fd212c9SJim Lin}
13690fd212c9SJim Lin
13700fd212c9SJim Lindeclare <vscale x 8 x i64> @llvm.riscv.vwmaccu.nxv8i64.i32(
13710fd212c9SJim Lin  <vscale x 8 x i64>,
13720fd212c9SJim Lin  i32,
13730fd212c9SJim Lin  <vscale x 8 x i32>,
13740fd212c9SJim Lin  iXLen,
13750fd212c9SJim Lin  iXLen);
13760fd212c9SJim Lin
13770fd212c9SJim Lindefine <vscale x 8 x i64>  @intrinsic_vwmaccu_vx_nxv8i64_i32_nxv8i32(<vscale x 8 x i64> %0, i32 %1, <vscale x 8 x i32> %2, iXLen %3) nounwind {
13780fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_vx_nxv8i64_i32_nxv8i32:
13790fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
13800fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, m4, tu, ma
13810fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v16
13820fd212c9SJim Lin; CHECK-NEXT:    ret
13830fd212c9SJim Linentry:
13840fd212c9SJim Lin  %a = call <vscale x 8 x i64> @llvm.riscv.vwmaccu.nxv8i64.i32(
13850fd212c9SJim Lin    <vscale x 8 x i64> %0,
13860fd212c9SJim Lin    i32 %1,
13870fd212c9SJim Lin    <vscale x 8 x i32> %2,
13880fd212c9SJim Lin    iXLen %3, iXLen 0)
13890fd212c9SJim Lin
13900fd212c9SJim Lin  ret <vscale x 8 x i64> %a
13910fd212c9SJim Lin}
13920fd212c9SJim Lin
13930fd212c9SJim Lindeclare <vscale x 8 x i64> @llvm.riscv.vwmaccu.mask.nxv8i64.i32(
13940fd212c9SJim Lin  <vscale x 8 x i64>,
13950fd212c9SJim Lin  i32,
13960fd212c9SJim Lin  <vscale x 8 x i32>,
13970fd212c9SJim Lin  <vscale x 8 x i1>,
13980fd212c9SJim Lin  iXLen, iXLen);
13990fd212c9SJim Lin
14000fd212c9SJim Lindefine <vscale x 8 x i64> @intrinsic_vwmaccu_mask_vx_nxv8i64_i32_nxv8i32(<vscale x 8 x i64> %0, i32 %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
14010fd212c9SJim Lin; CHECK-LABEL: intrinsic_vwmaccu_mask_vx_nxv8i64_i32_nxv8i32:
14020fd212c9SJim Lin; CHECK:       # %bb.0: # %entry
14030fd212c9SJim Lin; CHECK-NEXT:    vsetvli zero, a1, e32, m4, tu, mu
14040fd212c9SJim Lin; CHECK-NEXT:    vwmaccu.vx v8, a0, v16, v0.t
14050fd212c9SJim Lin; CHECK-NEXT:    ret
14060fd212c9SJim Linentry:
14070fd212c9SJim Lin  %a = call <vscale x 8 x i64> @llvm.riscv.vwmaccu.mask.nxv8i64.i32(
14080fd212c9SJim Lin    <vscale x 8 x i64> %0,
14090fd212c9SJim Lin    i32 %1,
14100fd212c9SJim Lin    <vscale x 8 x i32> %2,
14110fd212c9SJim Lin    <vscale x 8 x i1> %3,
14120fd212c9SJim Lin    iXLen %4, iXLen 0)
14130fd212c9SJim Lin
14140fd212c9SJim Lin  ret <vscale x 8 x i64> %a
14150fd212c9SJim Lin}
1416