1*85e42db1SCraig Topper; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*85e42db1SCraig Topper; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v \ 3*85e42db1SCraig Topper; RUN: -verify-machineinstrs | FileCheck %s 4*85e42db1SCraig Topper; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v \ 5*85e42db1SCraig Topper; RUN: -verify-machineinstrs | FileCheck %s 6*85e42db1SCraig Topperdeclare <vscale x 1 x i1> @llvm.riscv.vmsof.nxv1i1( 7*85e42db1SCraig Topper <vscale x 1 x i1>, 8*85e42db1SCraig Topper iXLen); 9*85e42db1SCraig Topper 10*85e42db1SCraig Topperdefine <vscale x 1 x i1> @intrinsic_vmsof_m_nxv1i1(<vscale x 1 x i1> %0, iXLen %1) nounwind { 11*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_m_nxv1i1: 12*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 13*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, mu 14*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v8, v0 15*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v8 16*85e42db1SCraig Topper; CHECK-NEXT: ret 17*85e42db1SCraig Topperentry: 18*85e42db1SCraig Topper %a = call <vscale x 1 x i1> @llvm.riscv.vmsof.nxv1i1( 19*85e42db1SCraig Topper <vscale x 1 x i1> %0, 20*85e42db1SCraig Topper iXLen %1) 21*85e42db1SCraig Topper ret <vscale x 1 x i1> %a 22*85e42db1SCraig Topper} 23*85e42db1SCraig Topper 24*85e42db1SCraig Topperdeclare <vscale x 1 x i1> @llvm.riscv.vmsof.mask.nxv1i1( 25*85e42db1SCraig Topper <vscale x 1 x i1>, 26*85e42db1SCraig Topper <vscale x 1 x i1>, 27*85e42db1SCraig Topper <vscale x 1 x i1>, 28*85e42db1SCraig Topper iXLen); 29*85e42db1SCraig Topper 30*85e42db1SCraig Topperdefine <vscale x 1 x i1> @intrinsic_vmsof_mask_m_nxv1i1_nxv1i1(<vscale x 1 x i1> %0, <vscale x 1 x i1> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind { 31*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_mask_m_nxv1i1_nxv1i1: 32*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 33*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v10, v0 34*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, mf8, tu, mu 35*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v9 36*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v10, v8, v0.t 37*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v10 38*85e42db1SCraig Topper; CHECK-NEXT: ret 39*85e42db1SCraig Topperentry: 40*85e42db1SCraig Topper %a = call <vscale x 1 x i1> @llvm.riscv.vmsof.mask.nxv1i1( 41*85e42db1SCraig Topper <vscale x 1 x i1> %0, 42*85e42db1SCraig Topper <vscale x 1 x i1> %1, 43*85e42db1SCraig Topper <vscale x 1 x i1> %2, 44*85e42db1SCraig Topper iXLen %3) 45*85e42db1SCraig Topper ret <vscale x 1 x i1> %a 46*85e42db1SCraig Topper} 47*85e42db1SCraig Topper 48*85e42db1SCraig Topperdeclare <vscale x 2 x i1> @llvm.riscv.vmsof.nxv2i1( 49*85e42db1SCraig Topper <vscale x 2 x i1>, 50*85e42db1SCraig Topper iXLen); 51*85e42db1SCraig Topper 52*85e42db1SCraig Topperdefine <vscale x 2 x i1> @intrinsic_vmsof_m_nxv2i1(<vscale x 2 x i1> %0, iXLen %1) nounwind { 53*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_m_nxv2i1: 54*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 55*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, mu 56*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v8, v0 57*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v8 58*85e42db1SCraig Topper; CHECK-NEXT: ret 59*85e42db1SCraig Topperentry: 60*85e42db1SCraig Topper %a = call <vscale x 2 x i1> @llvm.riscv.vmsof.nxv2i1( 61*85e42db1SCraig Topper <vscale x 2 x i1> %0, 62*85e42db1SCraig Topper iXLen %1) 63*85e42db1SCraig Topper ret <vscale x 2 x i1> %a 64*85e42db1SCraig Topper} 65*85e42db1SCraig Topper 66*85e42db1SCraig Topperdeclare <vscale x 2 x i1> @llvm.riscv.vmsof.mask.nxv2i1( 67*85e42db1SCraig Topper <vscale x 2 x i1>, 68*85e42db1SCraig Topper <vscale x 2 x i1>, 69*85e42db1SCraig Topper <vscale x 2 x i1>, 70*85e42db1SCraig Topper iXLen); 71*85e42db1SCraig Topper 72*85e42db1SCraig Topperdefine <vscale x 2 x i1> @intrinsic_vmsof_mask_m_nxv2i1_nxv2i1(<vscale x 2 x i1> %0, <vscale x 2 x i1> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind { 73*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_mask_m_nxv2i1_nxv2i1: 74*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 75*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v10, v0 76*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, mf4, tu, mu 77*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v9 78*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v10, v8, v0.t 79*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v10 80*85e42db1SCraig Topper; CHECK-NEXT: ret 81*85e42db1SCraig Topperentry: 82*85e42db1SCraig Topper %a = call <vscale x 2 x i1> @llvm.riscv.vmsof.mask.nxv2i1( 83*85e42db1SCraig Topper <vscale x 2 x i1> %0, 84*85e42db1SCraig Topper <vscale x 2 x i1> %1, 85*85e42db1SCraig Topper <vscale x 2 x i1> %2, 86*85e42db1SCraig Topper iXLen %3) 87*85e42db1SCraig Topper ret <vscale x 2 x i1> %a 88*85e42db1SCraig Topper} 89*85e42db1SCraig Topper 90*85e42db1SCraig Topperdeclare <vscale x 4 x i1> @llvm.riscv.vmsof.nxv4i1( 91*85e42db1SCraig Topper <vscale x 4 x i1>, 92*85e42db1SCraig Topper iXLen); 93*85e42db1SCraig Topper 94*85e42db1SCraig Topperdefine <vscale x 4 x i1> @intrinsic_vmsof_m_nxv4i1(<vscale x 4 x i1> %0, iXLen %1) nounwind { 95*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_m_nxv4i1: 96*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 97*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, mu 98*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v8, v0 99*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v8 100*85e42db1SCraig Topper; CHECK-NEXT: ret 101*85e42db1SCraig Topperentry: 102*85e42db1SCraig Topper %a = call <vscale x 4 x i1> @llvm.riscv.vmsof.nxv4i1( 103*85e42db1SCraig Topper <vscale x 4 x i1> %0, 104*85e42db1SCraig Topper iXLen %1) 105*85e42db1SCraig Topper ret <vscale x 4 x i1> %a 106*85e42db1SCraig Topper} 107*85e42db1SCraig Topper 108*85e42db1SCraig Topperdeclare <vscale x 4 x i1> @llvm.riscv.vmsof.mask.nxv4i1( 109*85e42db1SCraig Topper <vscale x 4 x i1>, 110*85e42db1SCraig Topper <vscale x 4 x i1>, 111*85e42db1SCraig Topper <vscale x 4 x i1>, 112*85e42db1SCraig Topper iXLen); 113*85e42db1SCraig Topper 114*85e42db1SCraig Topperdefine <vscale x 4 x i1> @intrinsic_vmsof_mask_m_nxv4i1_nxv4i1(<vscale x 4 x i1> %0, <vscale x 4 x i1> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind { 115*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_mask_m_nxv4i1_nxv4i1: 116*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 117*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v10, v0 118*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, mf2, tu, mu 119*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v9 120*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v10, v8, v0.t 121*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v10 122*85e42db1SCraig Topper; CHECK-NEXT: ret 123*85e42db1SCraig Topperentry: 124*85e42db1SCraig Topper %a = call <vscale x 4 x i1> @llvm.riscv.vmsof.mask.nxv4i1( 125*85e42db1SCraig Topper <vscale x 4 x i1> %0, 126*85e42db1SCraig Topper <vscale x 4 x i1> %1, 127*85e42db1SCraig Topper <vscale x 4 x i1> %2, 128*85e42db1SCraig Topper iXLen %3) 129*85e42db1SCraig Topper ret <vscale x 4 x i1> %a 130*85e42db1SCraig Topper} 131*85e42db1SCraig Topper 132*85e42db1SCraig Topperdeclare <vscale x 8 x i1> @llvm.riscv.vmsof.nxv8i1( 133*85e42db1SCraig Topper <vscale x 8 x i1>, 134*85e42db1SCraig Topper iXLen); 135*85e42db1SCraig Topper 136*85e42db1SCraig Topperdefine <vscale x 8 x i1> @intrinsic_vmsof_m_nxv8i1(<vscale x 8 x i1> %0, iXLen %1) nounwind { 137*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_m_nxv8i1: 138*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 139*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, mu 140*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v8, v0 141*85e42db1SCraig Topper; CHECK-NEXT: vmv.v.v v0, v8 142*85e42db1SCraig Topper; CHECK-NEXT: ret 143*85e42db1SCraig Topperentry: 144*85e42db1SCraig Topper %a = call <vscale x 8 x i1> @llvm.riscv.vmsof.nxv8i1( 145*85e42db1SCraig Topper <vscale x 8 x i1> %0, 146*85e42db1SCraig Topper iXLen %1) 147*85e42db1SCraig Topper ret <vscale x 8 x i1> %a 148*85e42db1SCraig Topper} 149*85e42db1SCraig Topper 150*85e42db1SCraig Topperdeclare <vscale x 8 x i1> @llvm.riscv.vmsof.mask.nxv8i1( 151*85e42db1SCraig Topper <vscale x 8 x i1>, 152*85e42db1SCraig Topper <vscale x 8 x i1>, 153*85e42db1SCraig Topper <vscale x 8 x i1>, 154*85e42db1SCraig Topper iXLen); 155*85e42db1SCraig Topper 156*85e42db1SCraig Topperdefine <vscale x 8 x i1> @intrinsic_vmsof_mask_m_nxv8i1_nxv8i1(<vscale x 8 x i1> %0, <vscale x 8 x i1> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind { 157*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_mask_m_nxv8i1_nxv8i1: 158*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 159*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v10, v0 160*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m1, tu, mu 161*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v9 162*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v10, v8, v0.t 163*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v10 164*85e42db1SCraig Topper; CHECK-NEXT: ret 165*85e42db1SCraig Topperentry: 166*85e42db1SCraig Topper %a = call <vscale x 8 x i1> @llvm.riscv.vmsof.mask.nxv8i1( 167*85e42db1SCraig Topper <vscale x 8 x i1> %0, 168*85e42db1SCraig Topper <vscale x 8 x i1> %1, 169*85e42db1SCraig Topper <vscale x 8 x i1> %2, 170*85e42db1SCraig Topper iXLen %3) 171*85e42db1SCraig Topper ret <vscale x 8 x i1> %a 172*85e42db1SCraig Topper} 173*85e42db1SCraig Topper 174*85e42db1SCraig Topperdeclare <vscale x 16 x i1> @llvm.riscv.vmsof.nxv16i1( 175*85e42db1SCraig Topper <vscale x 16 x i1>, 176*85e42db1SCraig Topper iXLen); 177*85e42db1SCraig Topper 178*85e42db1SCraig Topperdefine <vscale x 16 x i1> @intrinsic_vmsof_m_nxv16i1(<vscale x 16 x i1> %0, iXLen %1) nounwind { 179*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_m_nxv16i1: 180*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 181*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, mu 182*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v8, v0 183*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v8 184*85e42db1SCraig Topper; CHECK-NEXT: ret 185*85e42db1SCraig Topperentry: 186*85e42db1SCraig Topper %a = call <vscale x 16 x i1> @llvm.riscv.vmsof.nxv16i1( 187*85e42db1SCraig Topper <vscale x 16 x i1> %0, 188*85e42db1SCraig Topper iXLen %1) 189*85e42db1SCraig Topper ret <vscale x 16 x i1> %a 190*85e42db1SCraig Topper} 191*85e42db1SCraig Topper 192*85e42db1SCraig Topperdeclare <vscale x 16 x i1> @llvm.riscv.vmsof.mask.nxv16i1( 193*85e42db1SCraig Topper <vscale x 16 x i1>, 194*85e42db1SCraig Topper <vscale x 16 x i1>, 195*85e42db1SCraig Topper <vscale x 16 x i1>, 196*85e42db1SCraig Topper iXLen); 197*85e42db1SCraig Topper 198*85e42db1SCraig Topperdefine <vscale x 16 x i1> @intrinsic_vmsof_mask_m_nxv16i1_nxv16i1(<vscale x 16 x i1> %0, <vscale x 16 x i1> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind { 199*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_mask_m_nxv16i1_nxv16i1: 200*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 201*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v10, v0 202*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m2, tu, mu 203*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v9 204*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v10, v8, v0.t 205*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v10 206*85e42db1SCraig Topper; CHECK-NEXT: ret 207*85e42db1SCraig Topperentry: 208*85e42db1SCraig Topper %a = call <vscale x 16 x i1> @llvm.riscv.vmsof.mask.nxv16i1( 209*85e42db1SCraig Topper <vscale x 16 x i1> %0, 210*85e42db1SCraig Topper <vscale x 16 x i1> %1, 211*85e42db1SCraig Topper <vscale x 16 x i1> %2, 212*85e42db1SCraig Topper iXLen %3) 213*85e42db1SCraig Topper ret <vscale x 16 x i1> %a 214*85e42db1SCraig Topper} 215*85e42db1SCraig Topper 216*85e42db1SCraig Topperdeclare <vscale x 32 x i1> @llvm.riscv.vmsof.nxv32i1( 217*85e42db1SCraig Topper <vscale x 32 x i1>, 218*85e42db1SCraig Topper iXLen); 219*85e42db1SCraig Topper 220*85e42db1SCraig Topperdefine <vscale x 32 x i1> @intrinsic_vmsof_m_nxv32i1(<vscale x 32 x i1> %0, iXLen %1) nounwind { 221*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_m_nxv32i1: 222*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 223*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, mu 224*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v8, v0 225*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v8 226*85e42db1SCraig Topper; CHECK-NEXT: ret 227*85e42db1SCraig Topperentry: 228*85e42db1SCraig Topper %a = call <vscale x 32 x i1> @llvm.riscv.vmsof.nxv32i1( 229*85e42db1SCraig Topper <vscale x 32 x i1> %0, 230*85e42db1SCraig Topper iXLen %1) 231*85e42db1SCraig Topper ret <vscale x 32 x i1> %a 232*85e42db1SCraig Topper} 233*85e42db1SCraig Topper 234*85e42db1SCraig Topperdeclare <vscale x 32 x i1> @llvm.riscv.vmsof.mask.nxv32i1( 235*85e42db1SCraig Topper <vscale x 32 x i1>, 236*85e42db1SCraig Topper <vscale x 32 x i1>, 237*85e42db1SCraig Topper <vscale x 32 x i1>, 238*85e42db1SCraig Topper iXLen); 239*85e42db1SCraig Topper 240*85e42db1SCraig Topperdefine <vscale x 32 x i1> @intrinsic_vmsof_mask_m_nxv32i1_nxv32i1(<vscale x 32 x i1> %0, <vscale x 32 x i1> %1, <vscale x 32 x i1> %2, iXLen %3) nounwind { 241*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_mask_m_nxv32i1_nxv32i1: 242*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 243*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v10, v0 244*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m4, tu, mu 245*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v9 246*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v10, v8, v0.t 247*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v10 248*85e42db1SCraig Topper; CHECK-NEXT: ret 249*85e42db1SCraig Topperentry: 250*85e42db1SCraig Topper %a = call <vscale x 32 x i1> @llvm.riscv.vmsof.mask.nxv32i1( 251*85e42db1SCraig Topper <vscale x 32 x i1> %0, 252*85e42db1SCraig Topper <vscale x 32 x i1> %1, 253*85e42db1SCraig Topper <vscale x 32 x i1> %2, 254*85e42db1SCraig Topper iXLen %3) 255*85e42db1SCraig Topper ret <vscale x 32 x i1> %a 256*85e42db1SCraig Topper} 257*85e42db1SCraig Topper 258*85e42db1SCraig Topperdeclare <vscale x 64 x i1> @llvm.riscv.vmsof.nxv64i1( 259*85e42db1SCraig Topper <vscale x 64 x i1>, 260*85e42db1SCraig Topper iXLen); 261*85e42db1SCraig Topper 262*85e42db1SCraig Topperdefine <vscale x 64 x i1> @intrinsic_vmsof_m_nxv64i1(<vscale x 64 x i1> %0, iXLen %1) nounwind { 263*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_m_nxv64i1: 264*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 265*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, mu 266*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v8, v0 267*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v8 268*85e42db1SCraig Topper; CHECK-NEXT: ret 269*85e42db1SCraig Topperentry: 270*85e42db1SCraig Topper %a = call <vscale x 64 x i1> @llvm.riscv.vmsof.nxv64i1( 271*85e42db1SCraig Topper <vscale x 64 x i1> %0, 272*85e42db1SCraig Topper iXLen %1) 273*85e42db1SCraig Topper ret <vscale x 64 x i1> %a 274*85e42db1SCraig Topper} 275*85e42db1SCraig Topper 276*85e42db1SCraig Topperdeclare <vscale x 64 x i1> @llvm.riscv.vmsof.mask.nxv64i1( 277*85e42db1SCraig Topper <vscale x 64 x i1>, 278*85e42db1SCraig Topper <vscale x 64 x i1>, 279*85e42db1SCraig Topper <vscale x 64 x i1>, 280*85e42db1SCraig Topper iXLen); 281*85e42db1SCraig Topper 282*85e42db1SCraig Topperdefine <vscale x 64 x i1> @intrinsic_vmsof_mask_m_nxv64i1_nxv64i1(<vscale x 64 x i1> %0, <vscale x 64 x i1> %1, <vscale x 64 x i1> %2, iXLen %3) nounwind { 283*85e42db1SCraig Topper; CHECK-LABEL: intrinsic_vmsof_mask_m_nxv64i1_nxv64i1: 284*85e42db1SCraig Topper; CHECK: # %bb.0: # %entry 285*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v10, v0 286*85e42db1SCraig Topper; CHECK-NEXT: vsetvli zero, a0, e8, m8, tu, mu 287*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v9 288*85e42db1SCraig Topper; CHECK-NEXT: vmsof.m v10, v8, v0.t 289*85e42db1SCraig Topper; CHECK-NEXT: vmv1r.v v0, v10 290*85e42db1SCraig Topper; CHECK-NEXT: ret 291*85e42db1SCraig Topperentry: 292*85e42db1SCraig Topper %a = call <vscale x 64 x i1> @llvm.riscv.vmsof.mask.nxv64i1( 293*85e42db1SCraig Topper <vscale x 64 x i1> %0, 294*85e42db1SCraig Topper <vscale x 64 x i1> %1, 295*85e42db1SCraig Topper <vscale x 64 x i1> %2, 296*85e42db1SCraig Topper iXLen %3) 297*85e42db1SCraig Topper ret <vscale x 64 x i1> %a 298*85e42db1SCraig Topper} 299