brintos

brintos / llvm-project-archived public Read only

0
0
Text · 52.3 KiB · e2b26ce Raw
1113 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \3; RUN:   | FileCheck %s --check-prefixes=CHECK,RV324; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \5; RUN:   | FileCheck %s --check-prefixes=CHECK,RV646 7define <vscale x 8 x i7> @vdiv_vx_nxv8i7(<vscale x 8 x i7> %a, i7 signext %b, <vscale x 8 x i1> %mask, i32 zeroext %evl) {8; CHECK-LABEL: vdiv_vx_nxv8i7:9; CHECK:       # %bb.0:10; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma11; CHECK-NEXT:    vsll.vi v8, v8, 1, v0.t12; CHECK-NEXT:    vmv.v.x v9, a013; CHECK-NEXT:    vsra.vi v8, v8, 1, v0.t14; CHECK-NEXT:    vsll.vi v9, v9, 1, v0.t15; CHECK-NEXT:    vsra.vi v9, v9, 1, v0.t16; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t17; CHECK-NEXT:    ret18  %elt.head = insertelement <vscale x 8 x i7> poison, i7 %b, i32 019  %vb = shufflevector <vscale x 8 x i7> %elt.head, <vscale x 8 x i7> poison, <vscale x 8 x i32> zeroinitializer20  %v = call <vscale x 8 x i7> @llvm.vp.sdiv.nxv8i7(<vscale x 8 x i7> %a, <vscale x 8 x i7> %vb, <vscale x 8 x i1> %mask, i32 %evl)21  ret <vscale x 8 x i7> %v22}23 24define <vscale x 1 x i8> @vdiv_vv_nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {25; CHECK-LABEL: vdiv_vv_nxv1i8:26; CHECK:       # %bb.0:27; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma28; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t29; CHECK-NEXT:    ret30  %v = call <vscale x 1 x i8> @llvm.vp.sdiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 %evl)31  ret <vscale x 1 x i8> %v32}33 34define <vscale x 1 x i8> @vdiv_vv_nxv1i8_unmasked(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, i32 zeroext %evl) {35; CHECK-LABEL: vdiv_vv_nxv1i8_unmasked:36; CHECK:       # %bb.0:37; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma38; CHECK-NEXT:    vdiv.vv v8, v8, v939; CHECK-NEXT:    ret40  %v = call <vscale x 1 x i8> @llvm.vp.sdiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)41  ret <vscale x 1 x i8> %v42}43 44define <vscale x 1 x i8> @vdiv_vx_nxv1i8(<vscale x 1 x i8> %va, i8 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {45; CHECK-LABEL: vdiv_vx_nxv1i8:46; CHECK:       # %bb.0:47; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma48; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t49; CHECK-NEXT:    ret50  %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 051  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer52  %v = call <vscale x 1 x i8> @llvm.vp.sdiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> %m, i32 %evl)53  ret <vscale x 1 x i8> %v54}55 56define <vscale x 1 x i8> @vdiv_vx_nxv1i8_unmasked(<vscale x 1 x i8> %va, i8 %b, i32 zeroext %evl) {57; CHECK-LABEL: vdiv_vx_nxv1i8_unmasked:58; CHECK:       # %bb.0:59; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma60; CHECK-NEXT:    vdiv.vx v8, v8, a061; CHECK-NEXT:    ret62  %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 063  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer64  %v = call <vscale x 1 x i8> @llvm.vp.sdiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)65  ret <vscale x 1 x i8> %v66}67 68define <vscale x 2 x i8> @vdiv_vv_nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {69; CHECK-LABEL: vdiv_vv_nxv2i8:70; CHECK:       # %bb.0:71; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma72; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t73; CHECK-NEXT:    ret74  %v = call <vscale x 2 x i8> @llvm.vp.sdiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 %evl)75  ret <vscale x 2 x i8> %v76}77 78define <vscale x 2 x i8> @vdiv_vv_nxv2i8_unmasked(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, i32 zeroext %evl) {79; CHECK-LABEL: vdiv_vv_nxv2i8_unmasked:80; CHECK:       # %bb.0:81; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma82; CHECK-NEXT:    vdiv.vv v8, v8, v983; CHECK-NEXT:    ret84  %v = call <vscale x 2 x i8> @llvm.vp.sdiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)85  ret <vscale x 2 x i8> %v86}87 88define <vscale x 2 x i8> @vdiv_vx_nxv2i8(<vscale x 2 x i8> %va, i8 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {89; CHECK-LABEL: vdiv_vx_nxv2i8:90; CHECK:       # %bb.0:91; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma92; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t93; CHECK-NEXT:    ret94  %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 095  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer96  %v = call <vscale x 2 x i8> @llvm.vp.sdiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> %m, i32 %evl)97  ret <vscale x 2 x i8> %v98}99 100define <vscale x 2 x i8> @vdiv_vx_nxv2i8_unmasked(<vscale x 2 x i8> %va, i8 %b, i32 zeroext %evl) {101; CHECK-LABEL: vdiv_vx_nxv2i8_unmasked:102; CHECK:       # %bb.0:103; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma104; CHECK-NEXT:    vdiv.vx v8, v8, a0105; CHECK-NEXT:    ret106  %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0107  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer108  %v = call <vscale x 2 x i8> @llvm.vp.sdiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)109  ret <vscale x 2 x i8> %v110}111 112define <vscale x 3 x i8> @vdiv_vv_nxv3i8(<vscale x 3 x i8> %va, <vscale x 3 x i8> %b, <vscale x 3 x i1> %m, i32 zeroext %evl) {113; CHECK-LABEL: vdiv_vv_nxv3i8:114; CHECK:       # %bb.0:115; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma116; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t117; CHECK-NEXT:    ret118  %v = call <vscale x 3 x i8> @llvm.vp.sdiv.nxv3i8(<vscale x 3 x i8> %va, <vscale x 3 x i8> %b, <vscale x 3 x i1> %m, i32 %evl)119  ret <vscale x 3 x i8> %v120}121 122define <vscale x 4 x i8> @vdiv_vv_nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {123; CHECK-LABEL: vdiv_vv_nxv4i8:124; CHECK:       # %bb.0:125; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma126; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t127; CHECK-NEXT:    ret128  %v = call <vscale x 4 x i8> @llvm.vp.sdiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 %evl)129  ret <vscale x 4 x i8> %v130}131 132define <vscale x 4 x i8> @vdiv_vv_nxv4i8_unmasked(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, i32 zeroext %evl) {133; CHECK-LABEL: vdiv_vv_nxv4i8_unmasked:134; CHECK:       # %bb.0:135; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma136; CHECK-NEXT:    vdiv.vv v8, v8, v9137; CHECK-NEXT:    ret138  %v = call <vscale x 4 x i8> @llvm.vp.sdiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)139  ret <vscale x 4 x i8> %v140}141 142define <vscale x 4 x i8> @vdiv_vx_nxv4i8(<vscale x 4 x i8> %va, i8 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {143; CHECK-LABEL: vdiv_vx_nxv4i8:144; CHECK:       # %bb.0:145; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma146; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t147; CHECK-NEXT:    ret148  %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0149  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer150  %v = call <vscale x 4 x i8> @llvm.vp.sdiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> %m, i32 %evl)151  ret <vscale x 4 x i8> %v152}153 154define <vscale x 4 x i8> @vdiv_vx_nxv4i8_unmasked(<vscale x 4 x i8> %va, i8 %b, i32 zeroext %evl) {155; CHECK-LABEL: vdiv_vx_nxv4i8_unmasked:156; CHECK:       # %bb.0:157; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma158; CHECK-NEXT:    vdiv.vx v8, v8, a0159; CHECK-NEXT:    ret160  %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0161  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer162  %v = call <vscale x 4 x i8> @llvm.vp.sdiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)163  ret <vscale x 4 x i8> %v164}165 166define <vscale x 8 x i8> @vdiv_vv_nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {167; CHECK-LABEL: vdiv_vv_nxv8i8:168; CHECK:       # %bb.0:169; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma170; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t171; CHECK-NEXT:    ret172  %v = call <vscale x 8 x i8> @llvm.vp.sdiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 %evl)173  ret <vscale x 8 x i8> %v174}175 176define <vscale x 8 x i8> @vdiv_vv_nxv8i8_unmasked(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, i32 zeroext %evl) {177; CHECK-LABEL: vdiv_vv_nxv8i8_unmasked:178; CHECK:       # %bb.0:179; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma180; CHECK-NEXT:    vdiv.vv v8, v8, v9181; CHECK-NEXT:    ret182  %v = call <vscale x 8 x i8> @llvm.vp.sdiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)183  ret <vscale x 8 x i8> %v184}185 186define <vscale x 8 x i8> @vdiv_vx_nxv8i8(<vscale x 8 x i8> %va, i8 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {187; CHECK-LABEL: vdiv_vx_nxv8i8:188; CHECK:       # %bb.0:189; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma190; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t191; CHECK-NEXT:    ret192  %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0193  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer194  %v = call <vscale x 8 x i8> @llvm.vp.sdiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> %m, i32 %evl)195  ret <vscale x 8 x i8> %v196}197 198define <vscale x 8 x i8> @vdiv_vx_nxv8i8_unmasked(<vscale x 8 x i8> %va, i8 %b, i32 zeroext %evl) {199; CHECK-LABEL: vdiv_vx_nxv8i8_unmasked:200; CHECK:       # %bb.0:201; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma202; CHECK-NEXT:    vdiv.vx v8, v8, a0203; CHECK-NEXT:    ret204  %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0205  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer206  %v = call <vscale x 8 x i8> @llvm.vp.sdiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)207  ret <vscale x 8 x i8> %v208}209 210define <vscale x 16 x i8> @vdiv_vv_nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {211; CHECK-LABEL: vdiv_vv_nxv16i8:212; CHECK:       # %bb.0:213; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma214; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t215; CHECK-NEXT:    ret216  %v = call <vscale x 16 x i8> @llvm.vp.sdiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 %evl)217  ret <vscale x 16 x i8> %v218}219 220define <vscale x 16 x i8> @vdiv_vv_nxv16i8_unmasked(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, i32 zeroext %evl) {221; CHECK-LABEL: vdiv_vv_nxv16i8_unmasked:222; CHECK:       # %bb.0:223; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma224; CHECK-NEXT:    vdiv.vv v8, v8, v10225; CHECK-NEXT:    ret226  %v = call <vscale x 16 x i8> @llvm.vp.sdiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)227  ret <vscale x 16 x i8> %v228}229 230define <vscale x 16 x i8> @vdiv_vx_nxv16i8(<vscale x 16 x i8> %va, i8 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {231; CHECK-LABEL: vdiv_vx_nxv16i8:232; CHECK:       # %bb.0:233; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma234; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t235; CHECK-NEXT:    ret236  %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0237  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer238  %v = call <vscale x 16 x i8> @llvm.vp.sdiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> %m, i32 %evl)239  ret <vscale x 16 x i8> %v240}241 242define <vscale x 16 x i8> @vdiv_vx_nxv16i8_unmasked(<vscale x 16 x i8> %va, i8 %b, i32 zeroext %evl) {243; CHECK-LABEL: vdiv_vx_nxv16i8_unmasked:244; CHECK:       # %bb.0:245; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma246; CHECK-NEXT:    vdiv.vx v8, v8, a0247; CHECK-NEXT:    ret248  %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0249  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer250  %v = call <vscale x 16 x i8> @llvm.vp.sdiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)251  ret <vscale x 16 x i8> %v252}253 254define <vscale x 32 x i8> @vdiv_vv_nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {255; CHECK-LABEL: vdiv_vv_nxv32i8:256; CHECK:       # %bb.0:257; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma258; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t259; CHECK-NEXT:    ret260  %v = call <vscale x 32 x i8> @llvm.vp.sdiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 %evl)261  ret <vscale x 32 x i8> %v262}263 264define <vscale x 32 x i8> @vdiv_vv_nxv32i8_unmasked(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, i32 zeroext %evl) {265; CHECK-LABEL: vdiv_vv_nxv32i8_unmasked:266; CHECK:       # %bb.0:267; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma268; CHECK-NEXT:    vdiv.vv v8, v8, v12269; CHECK-NEXT:    ret270  %v = call <vscale x 32 x i8> @llvm.vp.sdiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> splat (i1 true), i32 %evl)271  ret <vscale x 32 x i8> %v272}273 274define <vscale x 32 x i8> @vdiv_vx_nxv32i8(<vscale x 32 x i8> %va, i8 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {275; CHECK-LABEL: vdiv_vx_nxv32i8:276; CHECK:       # %bb.0:277; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma278; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t279; CHECK-NEXT:    ret280  %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0281  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer282  %v = call <vscale x 32 x i8> @llvm.vp.sdiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> %m, i32 %evl)283  ret <vscale x 32 x i8> %v284}285 286define <vscale x 32 x i8> @vdiv_vx_nxv32i8_unmasked(<vscale x 32 x i8> %va, i8 %b, i32 zeroext %evl) {287; CHECK-LABEL: vdiv_vx_nxv32i8_unmasked:288; CHECK:       # %bb.0:289; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma290; CHECK-NEXT:    vdiv.vx v8, v8, a0291; CHECK-NEXT:    ret292  %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0293  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer294  %v = call <vscale x 32 x i8> @llvm.vp.sdiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> splat (i1 true), i32 %evl)295  ret <vscale x 32 x i8> %v296}297 298define <vscale x 64 x i8> @vdiv_vv_nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {299; CHECK-LABEL: vdiv_vv_nxv64i8:300; CHECK:       # %bb.0:301; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma302; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t303; CHECK-NEXT:    ret304  %v = call <vscale x 64 x i8> @llvm.vp.sdiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 %evl)305  ret <vscale x 64 x i8> %v306}307 308define <vscale x 64 x i8> @vdiv_vv_nxv64i8_unmasked(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, i32 zeroext %evl) {309; CHECK-LABEL: vdiv_vv_nxv64i8_unmasked:310; CHECK:       # %bb.0:311; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma312; CHECK-NEXT:    vdiv.vv v8, v8, v16313; CHECK-NEXT:    ret314  %v = call <vscale x 64 x i8> @llvm.vp.sdiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> splat (i1 true), i32 %evl)315  ret <vscale x 64 x i8> %v316}317 318define <vscale x 64 x i8> @vdiv_vx_nxv64i8(<vscale x 64 x i8> %va, i8 %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {319; CHECK-LABEL: vdiv_vx_nxv64i8:320; CHECK:       # %bb.0:321; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma322; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t323; CHECK-NEXT:    ret324  %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0325  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer326  %v = call <vscale x 64 x i8> @llvm.vp.sdiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> %m, i32 %evl)327  ret <vscale x 64 x i8> %v328}329 330define <vscale x 64 x i8> @vdiv_vx_nxv64i8_unmasked(<vscale x 64 x i8> %va, i8 %b, i32 zeroext %evl) {331; CHECK-LABEL: vdiv_vx_nxv64i8_unmasked:332; CHECK:       # %bb.0:333; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma334; CHECK-NEXT:    vdiv.vx v8, v8, a0335; CHECK-NEXT:    ret336  %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0337  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer338  %v = call <vscale x 64 x i8> @llvm.vp.sdiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> splat (i1 true), i32 %evl)339  ret <vscale x 64 x i8> %v340}341 342define <vscale x 1 x i16> @vdiv_vv_nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {343; CHECK-LABEL: vdiv_vv_nxv1i16:344; CHECK:       # %bb.0:345; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma346; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t347; CHECK-NEXT:    ret348  %v = call <vscale x 1 x i16> @llvm.vp.sdiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 %evl)349  ret <vscale x 1 x i16> %v350}351 352define <vscale x 1 x i16> @vdiv_vv_nxv1i16_unmasked(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, i32 zeroext %evl) {353; CHECK-LABEL: vdiv_vv_nxv1i16_unmasked:354; CHECK:       # %bb.0:355; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma356; CHECK-NEXT:    vdiv.vv v8, v8, v9357; CHECK-NEXT:    ret358  %v = call <vscale x 1 x i16> @llvm.vp.sdiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)359  ret <vscale x 1 x i16> %v360}361 362define <vscale x 1 x i16> @vdiv_vx_nxv1i16(<vscale x 1 x i16> %va, i16 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {363; CHECK-LABEL: vdiv_vx_nxv1i16:364; CHECK:       # %bb.0:365; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma366; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t367; CHECK-NEXT:    ret368  %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0369  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer370  %v = call <vscale x 1 x i16> @llvm.vp.sdiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> %m, i32 %evl)371  ret <vscale x 1 x i16> %v372}373 374define <vscale x 1 x i16> @vdiv_vx_nxv1i16_unmasked(<vscale x 1 x i16> %va, i16 %b, i32 zeroext %evl) {375; CHECK-LABEL: vdiv_vx_nxv1i16_unmasked:376; CHECK:       # %bb.0:377; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma378; CHECK-NEXT:    vdiv.vx v8, v8, a0379; CHECK-NEXT:    ret380  %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0381  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer382  %v = call <vscale x 1 x i16> @llvm.vp.sdiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)383  ret <vscale x 1 x i16> %v384}385 386define <vscale x 2 x i16> @vdiv_vv_nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {387; CHECK-LABEL: vdiv_vv_nxv2i16:388; CHECK:       # %bb.0:389; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma390; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t391; CHECK-NEXT:    ret392  %v = call <vscale x 2 x i16> @llvm.vp.sdiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 %evl)393  ret <vscale x 2 x i16> %v394}395 396define <vscale x 2 x i16> @vdiv_vv_nxv2i16_unmasked(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, i32 zeroext %evl) {397; CHECK-LABEL: vdiv_vv_nxv2i16_unmasked:398; CHECK:       # %bb.0:399; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma400; CHECK-NEXT:    vdiv.vv v8, v8, v9401; CHECK-NEXT:    ret402  %v = call <vscale x 2 x i16> @llvm.vp.sdiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)403  ret <vscale x 2 x i16> %v404}405 406define <vscale x 2 x i16> @vdiv_vx_nxv2i16(<vscale x 2 x i16> %va, i16 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {407; CHECK-LABEL: vdiv_vx_nxv2i16:408; CHECK:       # %bb.0:409; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma410; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t411; CHECK-NEXT:    ret412  %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0413  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer414  %v = call <vscale x 2 x i16> @llvm.vp.sdiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> %m, i32 %evl)415  ret <vscale x 2 x i16> %v416}417 418define <vscale x 2 x i16> @vdiv_vx_nxv2i16_unmasked(<vscale x 2 x i16> %va, i16 %b, i32 zeroext %evl) {419; CHECK-LABEL: vdiv_vx_nxv2i16_unmasked:420; CHECK:       # %bb.0:421; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma422; CHECK-NEXT:    vdiv.vx v8, v8, a0423; CHECK-NEXT:    ret424  %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0425  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer426  %v = call <vscale x 2 x i16> @llvm.vp.sdiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)427  ret <vscale x 2 x i16> %v428}429 430define <vscale x 4 x i16> @vdiv_vv_nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {431; CHECK-LABEL: vdiv_vv_nxv4i16:432; CHECK:       # %bb.0:433; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma434; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t435; CHECK-NEXT:    ret436  %v = call <vscale x 4 x i16> @llvm.vp.sdiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 %evl)437  ret <vscale x 4 x i16> %v438}439 440define <vscale x 4 x i16> @vdiv_vv_nxv4i16_unmasked(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, i32 zeroext %evl) {441; CHECK-LABEL: vdiv_vv_nxv4i16_unmasked:442; CHECK:       # %bb.0:443; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma444; CHECK-NEXT:    vdiv.vv v8, v8, v9445; CHECK-NEXT:    ret446  %v = call <vscale x 4 x i16> @llvm.vp.sdiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)447  ret <vscale x 4 x i16> %v448}449 450define <vscale x 4 x i16> @vdiv_vx_nxv4i16(<vscale x 4 x i16> %va, i16 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {451; CHECK-LABEL: vdiv_vx_nxv4i16:452; CHECK:       # %bb.0:453; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma454; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t455; CHECK-NEXT:    ret456  %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0457  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer458  %v = call <vscale x 4 x i16> @llvm.vp.sdiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> %m, i32 %evl)459  ret <vscale x 4 x i16> %v460}461 462define <vscale x 4 x i16> @vdiv_vx_nxv4i16_unmasked(<vscale x 4 x i16> %va, i16 %b, i32 zeroext %evl) {463; CHECK-LABEL: vdiv_vx_nxv4i16_unmasked:464; CHECK:       # %bb.0:465; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma466; CHECK-NEXT:    vdiv.vx v8, v8, a0467; CHECK-NEXT:    ret468  %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0469  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer470  %v = call <vscale x 4 x i16> @llvm.vp.sdiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)471  ret <vscale x 4 x i16> %v472}473 474define <vscale x 8 x i16> @vdiv_vv_nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {475; CHECK-LABEL: vdiv_vv_nxv8i16:476; CHECK:       # %bb.0:477; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma478; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t479; CHECK-NEXT:    ret480  %v = call <vscale x 8 x i16> @llvm.vp.sdiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 %evl)481  ret <vscale x 8 x i16> %v482}483 484define <vscale x 8 x i16> @vdiv_vv_nxv8i16_unmasked(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, i32 zeroext %evl) {485; CHECK-LABEL: vdiv_vv_nxv8i16_unmasked:486; CHECK:       # %bb.0:487; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma488; CHECK-NEXT:    vdiv.vv v8, v8, v10489; CHECK-NEXT:    ret490  %v = call <vscale x 8 x i16> @llvm.vp.sdiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)491  ret <vscale x 8 x i16> %v492}493 494define <vscale x 8 x i16> @vdiv_vx_nxv8i16(<vscale x 8 x i16> %va, i16 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {495; CHECK-LABEL: vdiv_vx_nxv8i16:496; CHECK:       # %bb.0:497; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma498; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t499; CHECK-NEXT:    ret500  %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0501  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer502  %v = call <vscale x 8 x i16> @llvm.vp.sdiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> %m, i32 %evl)503  ret <vscale x 8 x i16> %v504}505 506define <vscale x 8 x i16> @vdiv_vx_nxv8i16_unmasked(<vscale x 8 x i16> %va, i16 %b, i32 zeroext %evl) {507; CHECK-LABEL: vdiv_vx_nxv8i16_unmasked:508; CHECK:       # %bb.0:509; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma510; CHECK-NEXT:    vdiv.vx v8, v8, a0511; CHECK-NEXT:    ret512  %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0513  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer514  %v = call <vscale x 8 x i16> @llvm.vp.sdiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)515  ret <vscale x 8 x i16> %v516}517 518define <vscale x 16 x i16> @vdiv_vv_nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {519; CHECK-LABEL: vdiv_vv_nxv16i16:520; CHECK:       # %bb.0:521; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma522; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t523; CHECK-NEXT:    ret524  %v = call <vscale x 16 x i16> @llvm.vp.sdiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 %evl)525  ret <vscale x 16 x i16> %v526}527 528define <vscale x 16 x i16> @vdiv_vv_nxv16i16_unmasked(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, i32 zeroext %evl) {529; CHECK-LABEL: vdiv_vv_nxv16i16_unmasked:530; CHECK:       # %bb.0:531; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma532; CHECK-NEXT:    vdiv.vv v8, v8, v12533; CHECK-NEXT:    ret534  %v = call <vscale x 16 x i16> @llvm.vp.sdiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)535  ret <vscale x 16 x i16> %v536}537 538define <vscale x 16 x i16> @vdiv_vx_nxv16i16(<vscale x 16 x i16> %va, i16 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {539; CHECK-LABEL: vdiv_vx_nxv16i16:540; CHECK:       # %bb.0:541; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma542; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t543; CHECK-NEXT:    ret544  %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0545  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer546  %v = call <vscale x 16 x i16> @llvm.vp.sdiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> %m, i32 %evl)547  ret <vscale x 16 x i16> %v548}549 550define <vscale x 16 x i16> @vdiv_vx_nxv16i16_unmasked(<vscale x 16 x i16> %va, i16 %b, i32 zeroext %evl) {551; CHECK-LABEL: vdiv_vx_nxv16i16_unmasked:552; CHECK:       # %bb.0:553; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma554; CHECK-NEXT:    vdiv.vx v8, v8, a0555; CHECK-NEXT:    ret556  %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0557  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer558  %v = call <vscale x 16 x i16> @llvm.vp.sdiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)559  ret <vscale x 16 x i16> %v560}561 562define <vscale x 32 x i16> @vdiv_vv_nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {563; CHECK-LABEL: vdiv_vv_nxv32i16:564; CHECK:       # %bb.0:565; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma566; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t567; CHECK-NEXT:    ret568  %v = call <vscale x 32 x i16> @llvm.vp.sdiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 %evl)569  ret <vscale x 32 x i16> %v570}571 572define <vscale x 32 x i16> @vdiv_vv_nxv32i16_unmasked(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, i32 zeroext %evl) {573; CHECK-LABEL: vdiv_vv_nxv32i16_unmasked:574; CHECK:       # %bb.0:575; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma576; CHECK-NEXT:    vdiv.vv v8, v8, v16577; CHECK-NEXT:    ret578  %v = call <vscale x 32 x i16> @llvm.vp.sdiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> splat (i1 true), i32 %evl)579  ret <vscale x 32 x i16> %v580}581 582define <vscale x 32 x i16> @vdiv_vx_nxv32i16(<vscale x 32 x i16> %va, i16 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {583; CHECK-LABEL: vdiv_vx_nxv32i16:584; CHECK:       # %bb.0:585; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma586; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t587; CHECK-NEXT:    ret588  %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0589  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer590  %v = call <vscale x 32 x i16> @llvm.vp.sdiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> %m, i32 %evl)591  ret <vscale x 32 x i16> %v592}593 594define <vscale x 32 x i16> @vdiv_vx_nxv32i16_unmasked(<vscale x 32 x i16> %va, i16 %b, i32 zeroext %evl) {595; CHECK-LABEL: vdiv_vx_nxv32i16_unmasked:596; CHECK:       # %bb.0:597; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma598; CHECK-NEXT:    vdiv.vx v8, v8, a0599; CHECK-NEXT:    ret600  %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0601  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer602  %v = call <vscale x 32 x i16> @llvm.vp.sdiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> splat (i1 true), i32 %evl)603  ret <vscale x 32 x i16> %v604}605 606define <vscale x 1 x i32> @vdiv_vv_nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {607; CHECK-LABEL: vdiv_vv_nxv1i32:608; CHECK:       # %bb.0:609; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma610; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t611; CHECK-NEXT:    ret612  %v = call <vscale x 1 x i32> @llvm.vp.sdiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 %evl)613  ret <vscale x 1 x i32> %v614}615 616define <vscale x 1 x i32> @vdiv_vv_nxv1i32_unmasked(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, i32 zeroext %evl) {617; CHECK-LABEL: vdiv_vv_nxv1i32_unmasked:618; CHECK:       # %bb.0:619; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma620; CHECK-NEXT:    vdiv.vv v8, v8, v9621; CHECK-NEXT:    ret622  %v = call <vscale x 1 x i32> @llvm.vp.sdiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)623  ret <vscale x 1 x i32> %v624}625 626define <vscale x 1 x i32> @vdiv_vx_nxv1i32(<vscale x 1 x i32> %va, i32 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {627; CHECK-LABEL: vdiv_vx_nxv1i32:628; CHECK:       # %bb.0:629; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma630; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t631; CHECK-NEXT:    ret632  %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0633  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer634  %v = call <vscale x 1 x i32> @llvm.vp.sdiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> %m, i32 %evl)635  ret <vscale x 1 x i32> %v636}637 638define <vscale x 1 x i32> @vdiv_vx_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 %b, i32 zeroext %evl) {639; CHECK-LABEL: vdiv_vx_nxv1i32_unmasked:640; CHECK:       # %bb.0:641; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma642; CHECK-NEXT:    vdiv.vx v8, v8, a0643; CHECK-NEXT:    ret644  %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0645  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer646  %v = call <vscale x 1 x i32> @llvm.vp.sdiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)647  ret <vscale x 1 x i32> %v648}649 650define <vscale x 2 x i32> @vdiv_vv_nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {651; CHECK-LABEL: vdiv_vv_nxv2i32:652; CHECK:       # %bb.0:653; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma654; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t655; CHECK-NEXT:    ret656  %v = call <vscale x 2 x i32> @llvm.vp.sdiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 %evl)657  ret <vscale x 2 x i32> %v658}659 660define <vscale x 2 x i32> @vdiv_vv_nxv2i32_unmasked(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, i32 zeroext %evl) {661; CHECK-LABEL: vdiv_vv_nxv2i32_unmasked:662; CHECK:       # %bb.0:663; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma664; CHECK-NEXT:    vdiv.vv v8, v8, v9665; CHECK-NEXT:    ret666  %v = call <vscale x 2 x i32> @llvm.vp.sdiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)667  ret <vscale x 2 x i32> %v668}669 670define <vscale x 2 x i32> @vdiv_vx_nxv2i32(<vscale x 2 x i32> %va, i32 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {671; CHECK-LABEL: vdiv_vx_nxv2i32:672; CHECK:       # %bb.0:673; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma674; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t675; CHECK-NEXT:    ret676  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0677  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer678  %v = call <vscale x 2 x i32> @llvm.vp.sdiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> %m, i32 %evl)679  ret <vscale x 2 x i32> %v680}681 682define <vscale x 2 x i32> @vdiv_vx_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {683; CHECK-LABEL: vdiv_vx_nxv2i32_unmasked:684; CHECK:       # %bb.0:685; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma686; CHECK-NEXT:    vdiv.vx v8, v8, a0687; CHECK-NEXT:    ret688  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0689  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer690  %v = call <vscale x 2 x i32> @llvm.vp.sdiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)691  ret <vscale x 2 x i32> %v692}693 694define <vscale x 4 x i32> @vdiv_vv_nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {695; CHECK-LABEL: vdiv_vv_nxv4i32:696; CHECK:       # %bb.0:697; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma698; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t699; CHECK-NEXT:    ret700  %v = call <vscale x 4 x i32> @llvm.vp.sdiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 %evl)701  ret <vscale x 4 x i32> %v702}703 704define <vscale x 4 x i32> @vdiv_vv_nxv4i32_unmasked(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, i32 zeroext %evl) {705; CHECK-LABEL: vdiv_vv_nxv4i32_unmasked:706; CHECK:       # %bb.0:707; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma708; CHECK-NEXT:    vdiv.vv v8, v8, v10709; CHECK-NEXT:    ret710  %v = call <vscale x 4 x i32> @llvm.vp.sdiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)711  ret <vscale x 4 x i32> %v712}713 714define <vscale x 4 x i32> @vdiv_vx_nxv4i32(<vscale x 4 x i32> %va, i32 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {715; CHECK-LABEL: vdiv_vx_nxv4i32:716; CHECK:       # %bb.0:717; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma718; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t719; CHECK-NEXT:    ret720  %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0721  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer722  %v = call <vscale x 4 x i32> @llvm.vp.sdiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> %m, i32 %evl)723  ret <vscale x 4 x i32> %v724}725 726define <vscale x 4 x i32> @vdiv_vx_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 %b, i32 zeroext %evl) {727; CHECK-LABEL: vdiv_vx_nxv4i32_unmasked:728; CHECK:       # %bb.0:729; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma730; CHECK-NEXT:    vdiv.vx v8, v8, a0731; CHECK-NEXT:    ret732  %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0733  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer734  %v = call <vscale x 4 x i32> @llvm.vp.sdiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)735  ret <vscale x 4 x i32> %v736}737 738define <vscale x 8 x i32> @vdiv_vv_nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {739; CHECK-LABEL: vdiv_vv_nxv8i32:740; CHECK:       # %bb.0:741; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma742; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t743; CHECK-NEXT:    ret744  %v = call <vscale x 8 x i32> @llvm.vp.sdiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 %evl)745  ret <vscale x 8 x i32> %v746}747 748define <vscale x 8 x i32> @vdiv_vv_nxv8i32_unmasked(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, i32 zeroext %evl) {749; CHECK-LABEL: vdiv_vv_nxv8i32_unmasked:750; CHECK:       # %bb.0:751; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma752; CHECK-NEXT:    vdiv.vv v8, v8, v12753; CHECK-NEXT:    ret754  %v = call <vscale x 8 x i32> @llvm.vp.sdiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)755  ret <vscale x 8 x i32> %v756}757 758define <vscale x 8 x i32> @vdiv_vx_nxv8i32(<vscale x 8 x i32> %va, i32 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {759; CHECK-LABEL: vdiv_vx_nxv8i32:760; CHECK:       # %bb.0:761; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma762; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t763; CHECK-NEXT:    ret764  %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0765  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer766  %v = call <vscale x 8 x i32> @llvm.vp.sdiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> %m, i32 %evl)767  ret <vscale x 8 x i32> %v768}769 770define <vscale x 8 x i32> @vdiv_vx_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 %b, i32 zeroext %evl) {771; CHECK-LABEL: vdiv_vx_nxv8i32_unmasked:772; CHECK:       # %bb.0:773; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma774; CHECK-NEXT:    vdiv.vx v8, v8, a0775; CHECK-NEXT:    ret776  %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0777  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer778  %v = call <vscale x 8 x i32> @llvm.vp.sdiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)779  ret <vscale x 8 x i32> %v780}781 782define <vscale x 16 x i32> @vdiv_vv_nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {783; CHECK-LABEL: vdiv_vv_nxv16i32:784; CHECK:       # %bb.0:785; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma786; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t787; CHECK-NEXT:    ret788  %v = call <vscale x 16 x i32> @llvm.vp.sdiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 %evl)789  ret <vscale x 16 x i32> %v790}791 792define <vscale x 16 x i32> @vdiv_vv_nxv16i32_unmasked(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, i32 zeroext %evl) {793; CHECK-LABEL: vdiv_vv_nxv16i32_unmasked:794; CHECK:       # %bb.0:795; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma796; CHECK-NEXT:    vdiv.vv v8, v8, v16797; CHECK-NEXT:    ret798  %v = call <vscale x 16 x i32> @llvm.vp.sdiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)799  ret <vscale x 16 x i32> %v800}801 802define <vscale x 16 x i32> @vdiv_vx_nxv16i32(<vscale x 16 x i32> %va, i32 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {803; CHECK-LABEL: vdiv_vx_nxv16i32:804; CHECK:       # %bb.0:805; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma806; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t807; CHECK-NEXT:    ret808  %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0809  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer810  %v = call <vscale x 16 x i32> @llvm.vp.sdiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> %m, i32 %evl)811  ret <vscale x 16 x i32> %v812}813 814define <vscale x 16 x i32> @vdiv_vx_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 %b, i32 zeroext %evl) {815; CHECK-LABEL: vdiv_vx_nxv16i32_unmasked:816; CHECK:       # %bb.0:817; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma818; CHECK-NEXT:    vdiv.vx v8, v8, a0819; CHECK-NEXT:    ret820  %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0821  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer822  %v = call <vscale x 16 x i32> @llvm.vp.sdiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)823  ret <vscale x 16 x i32> %v824}825 826define <vscale x 1 x i64> @vdiv_vv_nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {827; CHECK-LABEL: vdiv_vv_nxv1i64:828; CHECK:       # %bb.0:829; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma830; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t831; CHECK-NEXT:    ret832  %v = call <vscale x 1 x i64> @llvm.vp.sdiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 %evl)833  ret <vscale x 1 x i64> %v834}835 836define <vscale x 1 x i64> @vdiv_vv_nxv1i64_unmasked(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, i32 zeroext %evl) {837; CHECK-LABEL: vdiv_vv_nxv1i64_unmasked:838; CHECK:       # %bb.0:839; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma840; CHECK-NEXT:    vdiv.vv v8, v8, v9841; CHECK-NEXT:    ret842  %v = call <vscale x 1 x i64> @llvm.vp.sdiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)843  ret <vscale x 1 x i64> %v844}845 846define <vscale x 1 x i64> @vdiv_vx_nxv1i64(<vscale x 1 x i64> %va, i64 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {847; RV32-LABEL: vdiv_vx_nxv1i64:848; RV32:       # %bb.0:849; RV32-NEXT:    addi sp, sp, -16850; RV32-NEXT:    .cfi_def_cfa_offset 16851; RV32-NEXT:    sw a0, 8(sp)852; RV32-NEXT:    sw a1, 12(sp)853; RV32-NEXT:    addi a0, sp, 8854; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma855; RV32-NEXT:    vlse64.v v9, (a0), zero856; RV32-NEXT:    vdiv.vv v8, v8, v9, v0.t857; RV32-NEXT:    addi sp, sp, 16858; RV32-NEXT:    .cfi_def_cfa_offset 0859; RV32-NEXT:    ret860;861; RV64-LABEL: vdiv_vx_nxv1i64:862; RV64:       # %bb.0:863; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma864; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t865; RV64-NEXT:    ret866  %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0867  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer868  %v = call <vscale x 1 x i64> @llvm.vp.sdiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> %m, i32 %evl)869  ret <vscale x 1 x i64> %v870}871 872define <vscale x 1 x i64> @vdiv_vx_nxv1i64_unmasked(<vscale x 1 x i64> %va, i64 %b, i32 zeroext %evl) {873; RV32-LABEL: vdiv_vx_nxv1i64_unmasked:874; RV32:       # %bb.0:875; RV32-NEXT:    addi sp, sp, -16876; RV32-NEXT:    .cfi_def_cfa_offset 16877; RV32-NEXT:    sw a0, 8(sp)878; RV32-NEXT:    sw a1, 12(sp)879; RV32-NEXT:    addi a0, sp, 8880; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma881; RV32-NEXT:    vlse64.v v9, (a0), zero882; RV32-NEXT:    vdiv.vv v8, v8, v9883; RV32-NEXT:    addi sp, sp, 16884; RV32-NEXT:    .cfi_def_cfa_offset 0885; RV32-NEXT:    ret886;887; RV64-LABEL: vdiv_vx_nxv1i64_unmasked:888; RV64:       # %bb.0:889; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma890; RV64-NEXT:    vdiv.vx v8, v8, a0891; RV64-NEXT:    ret892  %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0893  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer894  %v = call <vscale x 1 x i64> @llvm.vp.sdiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)895  ret <vscale x 1 x i64> %v896}897 898define <vscale x 2 x i64> @vdiv_vv_nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {899; CHECK-LABEL: vdiv_vv_nxv2i64:900; CHECK:       # %bb.0:901; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma902; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t903; CHECK-NEXT:    ret904  %v = call <vscale x 2 x i64> @llvm.vp.sdiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 %evl)905  ret <vscale x 2 x i64> %v906}907 908define <vscale x 2 x i64> @vdiv_vv_nxv2i64_unmasked(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, i32 zeroext %evl) {909; CHECK-LABEL: vdiv_vv_nxv2i64_unmasked:910; CHECK:       # %bb.0:911; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma912; CHECK-NEXT:    vdiv.vv v8, v8, v10913; CHECK-NEXT:    ret914  %v = call <vscale x 2 x i64> @llvm.vp.sdiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)915  ret <vscale x 2 x i64> %v916}917 918define <vscale x 2 x i64> @vdiv_vx_nxv2i64(<vscale x 2 x i64> %va, i64 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {919; RV32-LABEL: vdiv_vx_nxv2i64:920; RV32:       # %bb.0:921; RV32-NEXT:    addi sp, sp, -16922; RV32-NEXT:    .cfi_def_cfa_offset 16923; RV32-NEXT:    sw a0, 8(sp)924; RV32-NEXT:    sw a1, 12(sp)925; RV32-NEXT:    addi a0, sp, 8926; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma927; RV32-NEXT:    vlse64.v v10, (a0), zero928; RV32-NEXT:    vdiv.vv v8, v8, v10, v0.t929; RV32-NEXT:    addi sp, sp, 16930; RV32-NEXT:    .cfi_def_cfa_offset 0931; RV32-NEXT:    ret932;933; RV64-LABEL: vdiv_vx_nxv2i64:934; RV64:       # %bb.0:935; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma936; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t937; RV64-NEXT:    ret938  %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0939  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer940  %v = call <vscale x 2 x i64> @llvm.vp.sdiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> %m, i32 %evl)941  ret <vscale x 2 x i64> %v942}943 944define <vscale x 2 x i64> @vdiv_vx_nxv2i64_unmasked(<vscale x 2 x i64> %va, i64 %b, i32 zeroext %evl) {945; RV32-LABEL: vdiv_vx_nxv2i64_unmasked:946; RV32:       # %bb.0:947; RV32-NEXT:    addi sp, sp, -16948; RV32-NEXT:    .cfi_def_cfa_offset 16949; RV32-NEXT:    sw a0, 8(sp)950; RV32-NEXT:    sw a1, 12(sp)951; RV32-NEXT:    addi a0, sp, 8952; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma953; RV32-NEXT:    vlse64.v v10, (a0), zero954; RV32-NEXT:    vdiv.vv v8, v8, v10955; RV32-NEXT:    addi sp, sp, 16956; RV32-NEXT:    .cfi_def_cfa_offset 0957; RV32-NEXT:    ret958;959; RV64-LABEL: vdiv_vx_nxv2i64_unmasked:960; RV64:       # %bb.0:961; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma962; RV64-NEXT:    vdiv.vx v8, v8, a0963; RV64-NEXT:    ret964  %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0965  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer966  %v = call <vscale x 2 x i64> @llvm.vp.sdiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)967  ret <vscale x 2 x i64> %v968}969 970define <vscale x 4 x i64> @vdiv_vv_nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {971; CHECK-LABEL: vdiv_vv_nxv4i64:972; CHECK:       # %bb.0:973; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma974; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t975; CHECK-NEXT:    ret976  %v = call <vscale x 4 x i64> @llvm.vp.sdiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 %evl)977  ret <vscale x 4 x i64> %v978}979 980define <vscale x 4 x i64> @vdiv_vv_nxv4i64_unmasked(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, i32 zeroext %evl) {981; CHECK-LABEL: vdiv_vv_nxv4i64_unmasked:982; CHECK:       # %bb.0:983; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma984; CHECK-NEXT:    vdiv.vv v8, v8, v12985; CHECK-NEXT:    ret986  %v = call <vscale x 4 x i64> @llvm.vp.sdiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)987  ret <vscale x 4 x i64> %v988}989 990define <vscale x 4 x i64> @vdiv_vx_nxv4i64(<vscale x 4 x i64> %va, i64 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {991; RV32-LABEL: vdiv_vx_nxv4i64:992; RV32:       # %bb.0:993; RV32-NEXT:    addi sp, sp, -16994; RV32-NEXT:    .cfi_def_cfa_offset 16995; RV32-NEXT:    sw a0, 8(sp)996; RV32-NEXT:    sw a1, 12(sp)997; RV32-NEXT:    addi a0, sp, 8998; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma999; RV32-NEXT:    vlse64.v v12, (a0), zero1000; RV32-NEXT:    vdiv.vv v8, v8, v12, v0.t1001; RV32-NEXT:    addi sp, sp, 161002; RV32-NEXT:    .cfi_def_cfa_offset 01003; RV32-NEXT:    ret1004;1005; RV64-LABEL: vdiv_vx_nxv4i64:1006; RV64:       # %bb.0:1007; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1008; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t1009; RV64-NEXT:    ret1010  %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 01011  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer1012  %v = call <vscale x 4 x i64> @llvm.vp.sdiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> %m, i32 %evl)1013  ret <vscale x 4 x i64> %v1014}1015 1016define <vscale x 4 x i64> @vdiv_vx_nxv4i64_unmasked(<vscale x 4 x i64> %va, i64 %b, i32 zeroext %evl) {1017; RV32-LABEL: vdiv_vx_nxv4i64_unmasked:1018; RV32:       # %bb.0:1019; RV32-NEXT:    addi sp, sp, -161020; RV32-NEXT:    .cfi_def_cfa_offset 161021; RV32-NEXT:    sw a0, 8(sp)1022; RV32-NEXT:    sw a1, 12(sp)1023; RV32-NEXT:    addi a0, sp, 81024; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma1025; RV32-NEXT:    vlse64.v v12, (a0), zero1026; RV32-NEXT:    vdiv.vv v8, v8, v121027; RV32-NEXT:    addi sp, sp, 161028; RV32-NEXT:    .cfi_def_cfa_offset 01029; RV32-NEXT:    ret1030;1031; RV64-LABEL: vdiv_vx_nxv4i64_unmasked:1032; RV64:       # %bb.0:1033; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma1034; RV64-NEXT:    vdiv.vx v8, v8, a01035; RV64-NEXT:    ret1036  %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 01037  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer1038  %v = call <vscale x 4 x i64> @llvm.vp.sdiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)1039  ret <vscale x 4 x i64> %v1040}1041 1042define <vscale x 8 x i64> @vdiv_vv_nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1043; CHECK-LABEL: vdiv_vv_nxv8i64:1044; CHECK:       # %bb.0:1045; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma1046; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t1047; CHECK-NEXT:    ret1048  %v = call <vscale x 8 x i64> @llvm.vp.sdiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 %evl)1049  ret <vscale x 8 x i64> %v1050}1051 1052define <vscale x 8 x i64> @vdiv_vv_nxv8i64_unmasked(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, i32 zeroext %evl) {1053; CHECK-LABEL: vdiv_vv_nxv8i64_unmasked:1054; CHECK:       # %bb.0:1055; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma1056; CHECK-NEXT:    vdiv.vv v8, v8, v161057; CHECK-NEXT:    ret1058  %v = call <vscale x 8 x i64> @llvm.vp.sdiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)1059  ret <vscale x 8 x i64> %v1060}1061 1062define <vscale x 8 x i64> @vdiv_vx_nxv8i64(<vscale x 8 x i64> %va, i64 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {1063; RV32-LABEL: vdiv_vx_nxv8i64:1064; RV32:       # %bb.0:1065; RV32-NEXT:    addi sp, sp, -161066; RV32-NEXT:    .cfi_def_cfa_offset 161067; RV32-NEXT:    sw a0, 8(sp)1068; RV32-NEXT:    sw a1, 12(sp)1069; RV32-NEXT:    addi a0, sp, 81070; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma1071; RV32-NEXT:    vlse64.v v16, (a0), zero1072; RV32-NEXT:    vdiv.vv v8, v8, v16, v0.t1073; RV32-NEXT:    addi sp, sp, 161074; RV32-NEXT:    .cfi_def_cfa_offset 01075; RV32-NEXT:    ret1076;1077; RV64-LABEL: vdiv_vx_nxv8i64:1078; RV64:       # %bb.0:1079; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma1080; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t1081; RV64-NEXT:    ret1082  %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 01083  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer1084  %v = call <vscale x 8 x i64> @llvm.vp.sdiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> %m, i32 %evl)1085  ret <vscale x 8 x i64> %v1086}1087 1088define <vscale x 8 x i64> @vdiv_vx_nxv8i64_unmasked(<vscale x 8 x i64> %va, i64 %b, i32 zeroext %evl) {1089; RV32-LABEL: vdiv_vx_nxv8i64_unmasked:1090; RV32:       # %bb.0:1091; RV32-NEXT:    addi sp, sp, -161092; RV32-NEXT:    .cfi_def_cfa_offset 161093; RV32-NEXT:    sw a0, 8(sp)1094; RV32-NEXT:    sw a1, 12(sp)1095; RV32-NEXT:    addi a0, sp, 81096; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma1097; RV32-NEXT:    vlse64.v v16, (a0), zero1098; RV32-NEXT:    vdiv.vv v8, v8, v161099; RV32-NEXT:    addi sp, sp, 161100; RV32-NEXT:    .cfi_def_cfa_offset 01101; RV32-NEXT:    ret1102;1103; RV64-LABEL: vdiv_vx_nxv8i64_unmasked:1104; RV64:       # %bb.0:1105; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma1106; RV64-NEXT:    vdiv.vx v8, v8, a01107; RV64-NEXT:    ret1108  %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 01109  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer1110  %v = call <vscale x 8 x i64> @llvm.vp.sdiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)1111  ret <vscale x 8 x i64> %v1112}1113