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