; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=riscv32 -mattr=+v -target-abi=ilp32 \ ; RUN: -verify-machineinstrs < %s | FileCheck %s ; RUN: llc -mtriple=riscv64 -mattr=+v -target-abi=lp64 \ ; RUN: -verify-machineinstrs < %s | FileCheck %s declare @llvm.vp.zext.nxv1i32.nxv1i16(, , i32) declare @llvm.vp.mul.nxv1i32(, , , i32) declare @llvm.vp.add.nxv1i32(, , , i32) declare @llvm.vp.merge.nxv1i32(, , , i32) define @vwmacc_vv_nxv1i32_unmasked_tu( %a, ; CHECK-LABEL: vwmacc_vv_nxv1i32_unmasked_tu: ; CHECK: # %bb.0: ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, tu, ma ; CHECK-NEXT: vwmaccu.vv v10, v8, v9 ; CHECK-NEXT: vmv1r.v v8, v10 ; CHECK-NEXT: ret %b, %c, i32 zeroext %evl) { %splat = insertelement poison, i1 -1, i32 0 %allones = shufflevector %splat, poison, zeroinitializer %aext = call @llvm.vp.zext.nxv1i32.nxv1i16( %a, %allones, i32 %evl) %bext = call @llvm.vp.zext.nxv1i32.nxv1i16( %b, %allones, i32 %evl) %abmul = call @llvm.vp.mul.nxv1i32( %aext, %bext, %allones, i32 %evl) %cadd = call @llvm.vp.add.nxv1i32( %abmul, %c, %allones, i32 %evl) %ret = call @llvm.vp.merge.nxv1i32( %allones, %cadd, %c, i32 %evl) ret %ret }