Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / vdivu-vp.ll
blobd6ebf822fd2668c20aa69be9421e77451305b56b
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \
3 ; RUN:   | FileCheck %s --check-prefixes=CHECK,RV32
4 ; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \
5 ; RUN:   | FileCheck %s --check-prefixes=CHECK,RV64
7 declare <vscale x 8 x i7> @llvm.vp.udiv.nxv8i7(<vscale x 8 x i7>, <vscale x 8 x i7>, <vscale x 8 x i1>, i32)
9 define <vscale x 8 x i7> @vdivu_vx_nxv8i7(<vscale x 8 x i7> %a, i7 signext %b, <vscale x 8 x i1> %mask, i32 zeroext %evl) {
10 ; CHECK-LABEL: vdivu_vx_nxv8i7:
11 ; CHECK:       # %bb.0:
12 ; CHECK-NEXT:    li a2, 127
13 ; CHECK-NEXT:    vsetvli a3, zero, e8, m1, ta, ma
14 ; CHECK-NEXT:    vand.vx v8, v8, a2
15 ; CHECK-NEXT:    vmv.v.x v9, a0
16 ; CHECK-NEXT:    vand.vx v9, v9, a2
17 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
18 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
19 ; CHECK-NEXT:    ret
20   %elt.head = insertelement <vscale x 8 x i7> poison, i7 %b, i32 0
21   %vb = shufflevector <vscale x 8 x i7> %elt.head, <vscale x 8 x i7> poison, <vscale x 8 x i32> zeroinitializer
22   %v = call <vscale x 8 x i7> @llvm.vp.udiv.nxv8i7(<vscale x 8 x i7> %a, <vscale x 8 x i7> %vb, <vscale x 8 x i1> %mask, i32 %evl)
23   ret <vscale x 8 x i7> %v
26 declare <vscale x 1 x i8> @llvm.vp.udiv.nxv1i8(<vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i1>, i32)
28 define <vscale x 1 x i8> @vdivu_vv_nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
29 ; CHECK-LABEL: vdivu_vv_nxv1i8:
30 ; CHECK:       # %bb.0:
31 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
32 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
33 ; CHECK-NEXT:    ret
34   %v = call <vscale x 1 x i8> @llvm.vp.udiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 %evl)
35   ret <vscale x 1 x i8> %v
38 define <vscale x 1 x i8> @vdivu_vv_nxv1i8_unmasked(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, i32 zeroext %evl) {
39 ; CHECK-LABEL: vdivu_vv_nxv1i8_unmasked:
40 ; CHECK:       # %bb.0:
41 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
42 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
43 ; CHECK-NEXT:    ret
44   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
45   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
46   %v = call <vscale x 1 x i8> @llvm.vp.udiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 %evl)
47   ret <vscale x 1 x i8> %v
50 define <vscale x 1 x i8> @vdivu_vx_nxv1i8(<vscale x 1 x i8> %va, i8 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
51 ; CHECK-LABEL: vdivu_vx_nxv1i8:
52 ; CHECK:       # %bb.0:
53 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
54 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
55 ; CHECK-NEXT:    ret
56   %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 0
57   %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
58   %v = call <vscale x 1 x i8> @llvm.vp.udiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> %m, i32 %evl)
59   ret <vscale x 1 x i8> %v
62 define <vscale x 1 x i8> @vdivu_vx_nxv1i8_unmasked(<vscale x 1 x i8> %va, i8 %b, i32 zeroext %evl) {
63 ; CHECK-LABEL: vdivu_vx_nxv1i8_unmasked:
64 ; CHECK:       # %bb.0:
65 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
66 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
67 ; CHECK-NEXT:    ret
68   %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 0
69   %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
70   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
71   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
72   %v = call <vscale x 1 x i8> @llvm.vp.udiv.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> %m, i32 %evl)
73   ret <vscale x 1 x i8> %v
76 declare <vscale x 2 x i8> @llvm.vp.udiv.nxv2i8(<vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i1>, i32)
78 define <vscale x 2 x i8> @vdivu_vv_nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
79 ; CHECK-LABEL: vdivu_vv_nxv2i8:
80 ; CHECK:       # %bb.0:
81 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
82 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
83 ; CHECK-NEXT:    ret
84   %v = call <vscale x 2 x i8> @llvm.vp.udiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 %evl)
85   ret <vscale x 2 x i8> %v
88 define <vscale x 2 x i8> @vdivu_vv_nxv2i8_unmasked(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, i32 zeroext %evl) {
89 ; CHECK-LABEL: vdivu_vv_nxv2i8_unmasked:
90 ; CHECK:       # %bb.0:
91 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
92 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
93 ; CHECK-NEXT:    ret
94   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
95   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
96   %v = call <vscale x 2 x i8> @llvm.vp.udiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 %evl)
97   ret <vscale x 2 x i8> %v
100 define <vscale x 2 x i8> @vdivu_vx_nxv2i8(<vscale x 2 x i8> %va, i8 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
101 ; CHECK-LABEL: vdivu_vx_nxv2i8:
102 ; CHECK:       # %bb.0:
103 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
104 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
105 ; CHECK-NEXT:    ret
106   %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0
107   %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer
108   %v = call <vscale x 2 x i8> @llvm.vp.udiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> %m, i32 %evl)
109   ret <vscale x 2 x i8> %v
112 define <vscale x 2 x i8> @vdivu_vx_nxv2i8_unmasked(<vscale x 2 x i8> %va, i8 %b, i32 zeroext %evl) {
113 ; CHECK-LABEL: vdivu_vx_nxv2i8_unmasked:
114 ; CHECK:       # %bb.0:
115 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
116 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
117 ; CHECK-NEXT:    ret
118   %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0
119   %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer
120   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
121   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
122   %v = call <vscale x 2 x i8> @llvm.vp.udiv.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> %m, i32 %evl)
123   ret <vscale x 2 x i8> %v
126 declare <vscale x 3 x i8> @llvm.vp.udiv.nxv3i8(<vscale x 3 x i8>, <vscale x 3 x i8>, <vscale x 3 x i1>, i32)
128 define <vscale x 3 x i8> @vdivu_vv_nxv3i8(<vscale x 3 x i8> %va, <vscale x 3 x i8> %b, <vscale x 3 x i1> %m, i32 zeroext %evl) {
129 ; CHECK-LABEL: vdivu_vv_nxv3i8:
130 ; CHECK:       # %bb.0:
131 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
132 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
133 ; CHECK-NEXT:    ret
134   %v = call <vscale x 3 x i8> @llvm.vp.udiv.nxv3i8(<vscale x 3 x i8> %va, <vscale x 3 x i8> %b, <vscale x 3 x i1> %m, i32 %evl)
135   ret <vscale x 3 x i8> %v
138 declare <vscale x 4 x i8> @llvm.vp.udiv.nxv4i8(<vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i1>, i32)
140 define <vscale x 4 x i8> @vdivu_vv_nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
141 ; CHECK-LABEL: vdivu_vv_nxv4i8:
142 ; CHECK:       # %bb.0:
143 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
144 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
145 ; CHECK-NEXT:    ret
146   %v = call <vscale x 4 x i8> @llvm.vp.udiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 %evl)
147   ret <vscale x 4 x i8> %v
150 define <vscale x 4 x i8> @vdivu_vv_nxv4i8_unmasked(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, i32 zeroext %evl) {
151 ; CHECK-LABEL: vdivu_vv_nxv4i8_unmasked:
152 ; CHECK:       # %bb.0:
153 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
154 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
155 ; CHECK-NEXT:    ret
156   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
157   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
158   %v = call <vscale x 4 x i8> @llvm.vp.udiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 %evl)
159   ret <vscale x 4 x i8> %v
162 define <vscale x 4 x i8> @vdivu_vx_nxv4i8(<vscale x 4 x i8> %va, i8 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
163 ; CHECK-LABEL: vdivu_vx_nxv4i8:
164 ; CHECK:       # %bb.0:
165 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
166 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
167 ; CHECK-NEXT:    ret
168   %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0
169   %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
170   %v = call <vscale x 4 x i8> @llvm.vp.udiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> %m, i32 %evl)
171   ret <vscale x 4 x i8> %v
174 define <vscale x 4 x i8> @vdivu_vx_nxv4i8_unmasked(<vscale x 4 x i8> %va, i8 %b, i32 zeroext %evl) {
175 ; CHECK-LABEL: vdivu_vx_nxv4i8_unmasked:
176 ; CHECK:       # %bb.0:
177 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
178 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
179 ; CHECK-NEXT:    ret
180   %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0
181   %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
182   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
183   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
184   %v = call <vscale x 4 x i8> @llvm.vp.udiv.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> %m, i32 %evl)
185   ret <vscale x 4 x i8> %v
188 declare <vscale x 8 x i8> @llvm.vp.udiv.nxv8i8(<vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i1>, i32)
190 define <vscale x 8 x i8> @vdivu_vv_nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
191 ; CHECK-LABEL: vdivu_vv_nxv8i8:
192 ; CHECK:       # %bb.0:
193 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
194 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
195 ; CHECK-NEXT:    ret
196   %v = call <vscale x 8 x i8> @llvm.vp.udiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 %evl)
197   ret <vscale x 8 x i8> %v
200 define <vscale x 8 x i8> @vdivu_vv_nxv8i8_unmasked(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, i32 zeroext %evl) {
201 ; CHECK-LABEL: vdivu_vv_nxv8i8_unmasked:
202 ; CHECK:       # %bb.0:
203 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
204 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
205 ; CHECK-NEXT:    ret
206   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
207   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
208   %v = call <vscale x 8 x i8> @llvm.vp.udiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 %evl)
209   ret <vscale x 8 x i8> %v
212 define <vscale x 8 x i8> @vdivu_vx_nxv8i8(<vscale x 8 x i8> %va, i8 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
213 ; CHECK-LABEL: vdivu_vx_nxv8i8:
214 ; CHECK:       # %bb.0:
215 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
216 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
217 ; CHECK-NEXT:    ret
218   %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0
219   %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
220   %v = call <vscale x 8 x i8> @llvm.vp.udiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> %m, i32 %evl)
221   ret <vscale x 8 x i8> %v
224 define <vscale x 8 x i8> @vdivu_vx_nxv8i8_unmasked(<vscale x 8 x i8> %va, i8 %b, i32 zeroext %evl) {
225 ; CHECK-LABEL: vdivu_vx_nxv8i8_unmasked:
226 ; CHECK:       # %bb.0:
227 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
228 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
229 ; CHECK-NEXT:    ret
230   %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0
231   %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
232   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
233   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
234   %v = call <vscale x 8 x i8> @llvm.vp.udiv.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> %m, i32 %evl)
235   ret <vscale x 8 x i8> %v
238 declare <vscale x 16 x i8> @llvm.vp.udiv.nxv16i8(<vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i1>, i32)
240 define <vscale x 16 x i8> @vdivu_vv_nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
241 ; CHECK-LABEL: vdivu_vv_nxv16i8:
242 ; CHECK:       # %bb.0:
243 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
244 ; CHECK-NEXT:    vdivu.vv v8, v8, v10, v0.t
245 ; CHECK-NEXT:    ret
246   %v = call <vscale x 16 x i8> @llvm.vp.udiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 %evl)
247   ret <vscale x 16 x i8> %v
250 define <vscale x 16 x i8> @vdivu_vv_nxv16i8_unmasked(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, i32 zeroext %evl) {
251 ; CHECK-LABEL: vdivu_vv_nxv16i8_unmasked:
252 ; CHECK:       # %bb.0:
253 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
254 ; CHECK-NEXT:    vdivu.vv v8, v8, v10
255 ; CHECK-NEXT:    ret
256   %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
257   %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
258   %v = call <vscale x 16 x i8> @llvm.vp.udiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 %evl)
259   ret <vscale x 16 x i8> %v
262 define <vscale x 16 x i8> @vdivu_vx_nxv16i8(<vscale x 16 x i8> %va, i8 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
263 ; CHECK-LABEL: vdivu_vx_nxv16i8:
264 ; CHECK:       # %bb.0:
265 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
266 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
267 ; CHECK-NEXT:    ret
268   %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0
269   %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
270   %v = call <vscale x 16 x i8> @llvm.vp.udiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> %m, i32 %evl)
271   ret <vscale x 16 x i8> %v
274 define <vscale x 16 x i8> @vdivu_vx_nxv16i8_unmasked(<vscale x 16 x i8> %va, i8 %b, i32 zeroext %evl) {
275 ; CHECK-LABEL: vdivu_vx_nxv16i8_unmasked:
276 ; CHECK:       # %bb.0:
277 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
278 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
279 ; CHECK-NEXT:    ret
280   %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0
281   %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
282   %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
283   %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
284   %v = call <vscale x 16 x i8> @llvm.vp.udiv.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> %m, i32 %evl)
285   ret <vscale x 16 x i8> %v
288 declare <vscale x 32 x i8> @llvm.vp.udiv.nxv32i8(<vscale x 32 x i8>, <vscale x 32 x i8>, <vscale x 32 x i1>, i32)
290 define <vscale x 32 x i8> @vdivu_vv_nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
291 ; CHECK-LABEL: vdivu_vv_nxv32i8:
292 ; CHECK:       # %bb.0:
293 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
294 ; CHECK-NEXT:    vdivu.vv v8, v8, v12, v0.t
295 ; CHECK-NEXT:    ret
296   %v = call <vscale x 32 x i8> @llvm.vp.udiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 %evl)
297   ret <vscale x 32 x i8> %v
300 define <vscale x 32 x i8> @vdivu_vv_nxv32i8_unmasked(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, i32 zeroext %evl) {
301 ; CHECK-LABEL: vdivu_vv_nxv32i8_unmasked:
302 ; CHECK:       # %bb.0:
303 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
304 ; CHECK-NEXT:    vdivu.vv v8, v8, v12
305 ; CHECK-NEXT:    ret
306   %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
307   %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
308   %v = call <vscale x 32 x i8> @llvm.vp.udiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 %evl)
309   ret <vscale x 32 x i8> %v
312 define <vscale x 32 x i8> @vdivu_vx_nxv32i8(<vscale x 32 x i8> %va, i8 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
313 ; CHECK-LABEL: vdivu_vx_nxv32i8:
314 ; CHECK:       # %bb.0:
315 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
316 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
317 ; CHECK-NEXT:    ret
318   %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0
319   %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
320   %v = call <vscale x 32 x i8> @llvm.vp.udiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> %m, i32 %evl)
321   ret <vscale x 32 x i8> %v
324 define <vscale x 32 x i8> @vdivu_vx_nxv32i8_unmasked(<vscale x 32 x i8> %va, i8 %b, i32 zeroext %evl) {
325 ; CHECK-LABEL: vdivu_vx_nxv32i8_unmasked:
326 ; CHECK:       # %bb.0:
327 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
328 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
329 ; CHECK-NEXT:    ret
330   %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0
331   %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
332   %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
333   %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
334   %v = call <vscale x 32 x i8> @llvm.vp.udiv.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> %m, i32 %evl)
335   ret <vscale x 32 x i8> %v
338 declare <vscale x 64 x i8> @llvm.vp.udiv.nxv64i8(<vscale x 64 x i8>, <vscale x 64 x i8>, <vscale x 64 x i1>, i32)
340 define <vscale x 64 x i8> @vdivu_vv_nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {
341 ; CHECK-LABEL: vdivu_vv_nxv64i8:
342 ; CHECK:       # %bb.0:
343 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
344 ; CHECK-NEXT:    vdivu.vv v8, v8, v16, v0.t
345 ; CHECK-NEXT:    ret
346   %v = call <vscale x 64 x i8> @llvm.vp.udiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 %evl)
347   ret <vscale x 64 x i8> %v
350 define <vscale x 64 x i8> @vdivu_vv_nxv64i8_unmasked(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, i32 zeroext %evl) {
351 ; CHECK-LABEL: vdivu_vv_nxv64i8_unmasked:
352 ; CHECK:       # %bb.0:
353 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
354 ; CHECK-NEXT:    vdivu.vv v8, v8, v16
355 ; CHECK-NEXT:    ret
356   %head = insertelement <vscale x 64 x i1> poison, i1 true, i32 0
357   %m = shufflevector <vscale x 64 x i1> %head, <vscale x 64 x i1> poison, <vscale x 64 x i32> zeroinitializer
358   %v = call <vscale x 64 x i8> @llvm.vp.udiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 %evl)
359   ret <vscale x 64 x i8> %v
362 define <vscale x 64 x i8> @vdivu_vx_nxv64i8(<vscale x 64 x i8> %va, i8 %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {
363 ; CHECK-LABEL: vdivu_vx_nxv64i8:
364 ; CHECK:       # %bb.0:
365 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
366 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
367 ; CHECK-NEXT:    ret
368   %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0
369   %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
370   %v = call <vscale x 64 x i8> @llvm.vp.udiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> %m, i32 %evl)
371   ret <vscale x 64 x i8> %v
374 define <vscale x 64 x i8> @vdivu_vx_nxv64i8_unmasked(<vscale x 64 x i8> %va, i8 %b, i32 zeroext %evl) {
375 ; CHECK-LABEL: vdivu_vx_nxv64i8_unmasked:
376 ; CHECK:       # %bb.0:
377 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
378 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
379 ; CHECK-NEXT:    ret
380   %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0
381   %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
382   %head = insertelement <vscale x 64 x i1> poison, i1 true, i32 0
383   %m = shufflevector <vscale x 64 x i1> %head, <vscale x 64 x i1> poison, <vscale x 64 x i32> zeroinitializer
384   %v = call <vscale x 64 x i8> @llvm.vp.udiv.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> %m, i32 %evl)
385   ret <vscale x 64 x i8> %v
388 declare <vscale x 1 x i16> @llvm.vp.udiv.nxv1i16(<vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i1>, i32)
390 define <vscale x 1 x i16> @vdivu_vv_nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
391 ; CHECK-LABEL: vdivu_vv_nxv1i16:
392 ; CHECK:       # %bb.0:
393 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
394 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
395 ; CHECK-NEXT:    ret
396   %v = call <vscale x 1 x i16> @llvm.vp.udiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 %evl)
397   ret <vscale x 1 x i16> %v
400 define <vscale x 1 x i16> @vdivu_vv_nxv1i16_unmasked(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, i32 zeroext %evl) {
401 ; CHECK-LABEL: vdivu_vv_nxv1i16_unmasked:
402 ; CHECK:       # %bb.0:
403 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
404 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
405 ; CHECK-NEXT:    ret
406   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
407   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
408   %v = call <vscale x 1 x i16> @llvm.vp.udiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 %evl)
409   ret <vscale x 1 x i16> %v
412 define <vscale x 1 x i16> @vdivu_vx_nxv1i16(<vscale x 1 x i16> %va, i16 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
413 ; CHECK-LABEL: vdivu_vx_nxv1i16:
414 ; CHECK:       # %bb.0:
415 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
416 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
417 ; CHECK-NEXT:    ret
418   %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0
419   %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
420   %v = call <vscale x 1 x i16> @llvm.vp.udiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> %m, i32 %evl)
421   ret <vscale x 1 x i16> %v
424 define <vscale x 1 x i16> @vdivu_vx_nxv1i16_unmasked(<vscale x 1 x i16> %va, i16 %b, i32 zeroext %evl) {
425 ; CHECK-LABEL: vdivu_vx_nxv1i16_unmasked:
426 ; CHECK:       # %bb.0:
427 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
428 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
429 ; CHECK-NEXT:    ret
430   %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0
431   %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
432   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
433   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
434   %v = call <vscale x 1 x i16> @llvm.vp.udiv.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> %m, i32 %evl)
435   ret <vscale x 1 x i16> %v
438 declare <vscale x 2 x i16> @llvm.vp.udiv.nxv2i16(<vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i1>, i32)
440 define <vscale x 2 x i16> @vdivu_vv_nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
441 ; CHECK-LABEL: vdivu_vv_nxv2i16:
442 ; CHECK:       # %bb.0:
443 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
444 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
445 ; CHECK-NEXT:    ret
446   %v = call <vscale x 2 x i16> @llvm.vp.udiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 %evl)
447   ret <vscale x 2 x i16> %v
450 define <vscale x 2 x i16> @vdivu_vv_nxv2i16_unmasked(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, i32 zeroext %evl) {
451 ; CHECK-LABEL: vdivu_vv_nxv2i16_unmasked:
452 ; CHECK:       # %bb.0:
453 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
454 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
455 ; CHECK-NEXT:    ret
456   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
457   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
458   %v = call <vscale x 2 x i16> @llvm.vp.udiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 %evl)
459   ret <vscale x 2 x i16> %v
462 define <vscale x 2 x i16> @vdivu_vx_nxv2i16(<vscale x 2 x i16> %va, i16 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
463 ; CHECK-LABEL: vdivu_vx_nxv2i16:
464 ; CHECK:       # %bb.0:
465 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
466 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
467 ; CHECK-NEXT:    ret
468   %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0
469   %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
470   %v = call <vscale x 2 x i16> @llvm.vp.udiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> %m, i32 %evl)
471   ret <vscale x 2 x i16> %v
474 define <vscale x 2 x i16> @vdivu_vx_nxv2i16_unmasked(<vscale x 2 x i16> %va, i16 %b, i32 zeroext %evl) {
475 ; CHECK-LABEL: vdivu_vx_nxv2i16_unmasked:
476 ; CHECK:       # %bb.0:
477 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
478 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
479 ; CHECK-NEXT:    ret
480   %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0
481   %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
482   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
483   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
484   %v = call <vscale x 2 x i16> @llvm.vp.udiv.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> %m, i32 %evl)
485   ret <vscale x 2 x i16> %v
488 declare <vscale x 4 x i16> @llvm.vp.udiv.nxv4i16(<vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i1>, i32)
490 define <vscale x 4 x i16> @vdivu_vv_nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
491 ; CHECK-LABEL: vdivu_vv_nxv4i16:
492 ; CHECK:       # %bb.0:
493 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
494 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
495 ; CHECK-NEXT:    ret
496   %v = call <vscale x 4 x i16> @llvm.vp.udiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 %evl)
497   ret <vscale x 4 x i16> %v
500 define <vscale x 4 x i16> @vdivu_vv_nxv4i16_unmasked(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, i32 zeroext %evl) {
501 ; CHECK-LABEL: vdivu_vv_nxv4i16_unmasked:
502 ; CHECK:       # %bb.0:
503 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
504 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
505 ; CHECK-NEXT:    ret
506   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
507   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
508   %v = call <vscale x 4 x i16> @llvm.vp.udiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 %evl)
509   ret <vscale x 4 x i16> %v
512 define <vscale x 4 x i16> @vdivu_vx_nxv4i16(<vscale x 4 x i16> %va, i16 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
513 ; CHECK-LABEL: vdivu_vx_nxv4i16:
514 ; CHECK:       # %bb.0:
515 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
516 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
517 ; CHECK-NEXT:    ret
518   %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0
519   %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
520   %v = call <vscale x 4 x i16> @llvm.vp.udiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> %m, i32 %evl)
521   ret <vscale x 4 x i16> %v
524 define <vscale x 4 x i16> @vdivu_vx_nxv4i16_unmasked(<vscale x 4 x i16> %va, i16 %b, i32 zeroext %evl) {
525 ; CHECK-LABEL: vdivu_vx_nxv4i16_unmasked:
526 ; CHECK:       # %bb.0:
527 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
528 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
529 ; CHECK-NEXT:    ret
530   %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0
531   %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
532   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
533   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
534   %v = call <vscale x 4 x i16> @llvm.vp.udiv.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> %m, i32 %evl)
535   ret <vscale x 4 x i16> %v
538 declare <vscale x 8 x i16> @llvm.vp.udiv.nxv8i16(<vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i1>, i32)
540 define <vscale x 8 x i16> @vdivu_vv_nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
541 ; CHECK-LABEL: vdivu_vv_nxv8i16:
542 ; CHECK:       # %bb.0:
543 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
544 ; CHECK-NEXT:    vdivu.vv v8, v8, v10, v0.t
545 ; CHECK-NEXT:    ret
546   %v = call <vscale x 8 x i16> @llvm.vp.udiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 %evl)
547   ret <vscale x 8 x i16> %v
550 define <vscale x 8 x i16> @vdivu_vv_nxv8i16_unmasked(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, i32 zeroext %evl) {
551 ; CHECK-LABEL: vdivu_vv_nxv8i16_unmasked:
552 ; CHECK:       # %bb.0:
553 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
554 ; CHECK-NEXT:    vdivu.vv v8, v8, v10
555 ; CHECK-NEXT:    ret
556   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
557   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
558   %v = call <vscale x 8 x i16> @llvm.vp.udiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 %evl)
559   ret <vscale x 8 x i16> %v
562 define <vscale x 8 x i16> @vdivu_vx_nxv8i16(<vscale x 8 x i16> %va, i16 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
563 ; CHECK-LABEL: vdivu_vx_nxv8i16:
564 ; CHECK:       # %bb.0:
565 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
566 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
567 ; CHECK-NEXT:    ret
568   %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0
569   %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
570   %v = call <vscale x 8 x i16> @llvm.vp.udiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> %m, i32 %evl)
571   ret <vscale x 8 x i16> %v
574 define <vscale x 8 x i16> @vdivu_vx_nxv8i16_unmasked(<vscale x 8 x i16> %va, i16 %b, i32 zeroext %evl) {
575 ; CHECK-LABEL: vdivu_vx_nxv8i16_unmasked:
576 ; CHECK:       # %bb.0:
577 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
578 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
579 ; CHECK-NEXT:    ret
580   %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0
581   %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
582   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
583   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
584   %v = call <vscale x 8 x i16> @llvm.vp.udiv.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> %m, i32 %evl)
585   ret <vscale x 8 x i16> %v
588 declare <vscale x 16 x i16> @llvm.vp.udiv.nxv16i16(<vscale x 16 x i16>, <vscale x 16 x i16>, <vscale x 16 x i1>, i32)
590 define <vscale x 16 x i16> @vdivu_vv_nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
591 ; CHECK-LABEL: vdivu_vv_nxv16i16:
592 ; CHECK:       # %bb.0:
593 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
594 ; CHECK-NEXT:    vdivu.vv v8, v8, v12, v0.t
595 ; CHECK-NEXT:    ret
596   %v = call <vscale x 16 x i16> @llvm.vp.udiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 %evl)
597   ret <vscale x 16 x i16> %v
600 define <vscale x 16 x i16> @vdivu_vv_nxv16i16_unmasked(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, i32 zeroext %evl) {
601 ; CHECK-LABEL: vdivu_vv_nxv16i16_unmasked:
602 ; CHECK:       # %bb.0:
603 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
604 ; CHECK-NEXT:    vdivu.vv v8, v8, v12
605 ; CHECK-NEXT:    ret
606   %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
607   %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
608   %v = call <vscale x 16 x i16> @llvm.vp.udiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 %evl)
609   ret <vscale x 16 x i16> %v
612 define <vscale x 16 x i16> @vdivu_vx_nxv16i16(<vscale x 16 x i16> %va, i16 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
613 ; CHECK-LABEL: vdivu_vx_nxv16i16:
614 ; CHECK:       # %bb.0:
615 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
616 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
617 ; CHECK-NEXT:    ret
618   %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0
619   %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
620   %v = call <vscale x 16 x i16> @llvm.vp.udiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> %m, i32 %evl)
621   ret <vscale x 16 x i16> %v
624 define <vscale x 16 x i16> @vdivu_vx_nxv16i16_unmasked(<vscale x 16 x i16> %va, i16 %b, i32 zeroext %evl) {
625 ; CHECK-LABEL: vdivu_vx_nxv16i16_unmasked:
626 ; CHECK:       # %bb.0:
627 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
628 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
629 ; CHECK-NEXT:    ret
630   %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0
631   %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
632   %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
633   %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
634   %v = call <vscale x 16 x i16> @llvm.vp.udiv.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> %m, i32 %evl)
635   ret <vscale x 16 x i16> %v
638 declare <vscale x 32 x i16> @llvm.vp.udiv.nxv32i16(<vscale x 32 x i16>, <vscale x 32 x i16>, <vscale x 32 x i1>, i32)
640 define <vscale x 32 x i16> @vdivu_vv_nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
641 ; CHECK-LABEL: vdivu_vv_nxv32i16:
642 ; CHECK:       # %bb.0:
643 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
644 ; CHECK-NEXT:    vdivu.vv v8, v8, v16, v0.t
645 ; CHECK-NEXT:    ret
646   %v = call <vscale x 32 x i16> @llvm.vp.udiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 %evl)
647   ret <vscale x 32 x i16> %v
650 define <vscale x 32 x i16> @vdivu_vv_nxv32i16_unmasked(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, i32 zeroext %evl) {
651 ; CHECK-LABEL: vdivu_vv_nxv32i16_unmasked:
652 ; CHECK:       # %bb.0:
653 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
654 ; CHECK-NEXT:    vdivu.vv v8, v8, v16
655 ; CHECK-NEXT:    ret
656   %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
657   %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
658   %v = call <vscale x 32 x i16> @llvm.vp.udiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 %evl)
659   ret <vscale x 32 x i16> %v
662 define <vscale x 32 x i16> @vdivu_vx_nxv32i16(<vscale x 32 x i16> %va, i16 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
663 ; CHECK-LABEL: vdivu_vx_nxv32i16:
664 ; CHECK:       # %bb.0:
665 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
666 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
667 ; CHECK-NEXT:    ret
668   %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0
669   %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
670   %v = call <vscale x 32 x i16> @llvm.vp.udiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> %m, i32 %evl)
671   ret <vscale x 32 x i16> %v
674 define <vscale x 32 x i16> @vdivu_vx_nxv32i16_unmasked(<vscale x 32 x i16> %va, i16 %b, i32 zeroext %evl) {
675 ; CHECK-LABEL: vdivu_vx_nxv32i16_unmasked:
676 ; CHECK:       # %bb.0:
677 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
678 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
679 ; CHECK-NEXT:    ret
680   %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0
681   %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
682   %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
683   %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
684   %v = call <vscale x 32 x i16> @llvm.vp.udiv.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> %m, i32 %evl)
685   ret <vscale x 32 x i16> %v
688 declare <vscale x 1 x i32> @llvm.vp.udiv.nxv1i32(<vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i1>, i32)
690 define <vscale x 1 x i32> @vdivu_vv_nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
691 ; CHECK-LABEL: vdivu_vv_nxv1i32:
692 ; CHECK:       # %bb.0:
693 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
694 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
695 ; CHECK-NEXT:    ret
696   %v = call <vscale x 1 x i32> @llvm.vp.udiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 %evl)
697   ret <vscale x 1 x i32> %v
700 define <vscale x 1 x i32> @vdivu_vv_nxv1i32_unmasked(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, i32 zeroext %evl) {
701 ; CHECK-LABEL: vdivu_vv_nxv1i32_unmasked:
702 ; CHECK:       # %bb.0:
703 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
704 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
705 ; CHECK-NEXT:    ret
706   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
707   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
708   %v = call <vscale x 1 x i32> @llvm.vp.udiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 %evl)
709   ret <vscale x 1 x i32> %v
712 define <vscale x 1 x i32> @vdivu_vx_nxv1i32(<vscale x 1 x i32> %va, i32 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
713 ; CHECK-LABEL: vdivu_vx_nxv1i32:
714 ; CHECK:       # %bb.0:
715 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
716 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
717 ; CHECK-NEXT:    ret
718   %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0
719   %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
720   %v = call <vscale x 1 x i32> @llvm.vp.udiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> %m, i32 %evl)
721   ret <vscale x 1 x i32> %v
724 define <vscale x 1 x i32> @vdivu_vx_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 %b, i32 zeroext %evl) {
725 ; CHECK-LABEL: vdivu_vx_nxv1i32_unmasked:
726 ; CHECK:       # %bb.0:
727 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
728 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
729 ; CHECK-NEXT:    ret
730   %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0
731   %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
732   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
733   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
734   %v = call <vscale x 1 x i32> @llvm.vp.udiv.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> %m, i32 %evl)
735   ret <vscale x 1 x i32> %v
738 declare <vscale x 2 x i32> @llvm.vp.udiv.nxv2i32(<vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i1>, i32)
740 define <vscale x 2 x i32> @vdivu_vv_nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
741 ; CHECK-LABEL: vdivu_vv_nxv2i32:
742 ; CHECK:       # %bb.0:
743 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
744 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
745 ; CHECK-NEXT:    ret
746   %v = call <vscale x 2 x i32> @llvm.vp.udiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 %evl)
747   ret <vscale x 2 x i32> %v
750 define <vscale x 2 x i32> @vdivu_vv_nxv2i32_unmasked(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, i32 zeroext %evl) {
751 ; CHECK-LABEL: vdivu_vv_nxv2i32_unmasked:
752 ; CHECK:       # %bb.0:
753 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
754 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
755 ; CHECK-NEXT:    ret
756   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
757   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
758   %v = call <vscale x 2 x i32> @llvm.vp.udiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 %evl)
759   ret <vscale x 2 x i32> %v
762 define <vscale x 2 x i32> @vdivu_vx_nxv2i32(<vscale x 2 x i32> %va, i32 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
763 ; CHECK-LABEL: vdivu_vx_nxv2i32:
764 ; CHECK:       # %bb.0:
765 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
766 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
767 ; CHECK-NEXT:    ret
768   %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
769   %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
770   %v = call <vscale x 2 x i32> @llvm.vp.udiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> %m, i32 %evl)
771   ret <vscale x 2 x i32> %v
774 define <vscale x 2 x i32> @vdivu_vx_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {
775 ; CHECK-LABEL: vdivu_vx_nxv2i32_unmasked:
776 ; CHECK:       # %bb.0:
777 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
778 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
779 ; CHECK-NEXT:    ret
780   %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
781   %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
782   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
783   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
784   %v = call <vscale x 2 x i32> @llvm.vp.udiv.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> %m, i32 %evl)
785   ret <vscale x 2 x i32> %v
788 declare <vscale x 4 x i32> @llvm.vp.udiv.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i1>, i32)
790 define <vscale x 4 x i32> @vdivu_vv_nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
791 ; CHECK-LABEL: vdivu_vv_nxv4i32:
792 ; CHECK:       # %bb.0:
793 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
794 ; CHECK-NEXT:    vdivu.vv v8, v8, v10, v0.t
795 ; CHECK-NEXT:    ret
796   %v = call <vscale x 4 x i32> @llvm.vp.udiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 %evl)
797   ret <vscale x 4 x i32> %v
800 define <vscale x 4 x i32> @vdivu_vv_nxv4i32_unmasked(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, i32 zeroext %evl) {
801 ; CHECK-LABEL: vdivu_vv_nxv4i32_unmasked:
802 ; CHECK:       # %bb.0:
803 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
804 ; CHECK-NEXT:    vdivu.vv v8, v8, v10
805 ; CHECK-NEXT:    ret
806   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
807   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
808   %v = call <vscale x 4 x i32> @llvm.vp.udiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 %evl)
809   ret <vscale x 4 x i32> %v
812 define <vscale x 4 x i32> @vdivu_vx_nxv4i32(<vscale x 4 x i32> %va, i32 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
813 ; CHECK-LABEL: vdivu_vx_nxv4i32:
814 ; CHECK:       # %bb.0:
815 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
816 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
817 ; CHECK-NEXT:    ret
818   %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0
819   %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
820   %v = call <vscale x 4 x i32> @llvm.vp.udiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> %m, i32 %evl)
821   ret <vscale x 4 x i32> %v
824 define <vscale x 4 x i32> @vdivu_vx_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 %b, i32 zeroext %evl) {
825 ; CHECK-LABEL: vdivu_vx_nxv4i32_unmasked:
826 ; CHECK:       # %bb.0:
827 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
828 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
829 ; CHECK-NEXT:    ret
830   %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0
831   %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
832   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
833   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
834   %v = call <vscale x 4 x i32> @llvm.vp.udiv.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> %m, i32 %evl)
835   ret <vscale x 4 x i32> %v
838 declare <vscale x 8 x i32> @llvm.vp.udiv.nxv8i32(<vscale x 8 x i32>, <vscale x 8 x i32>, <vscale x 8 x i1>, i32)
840 define <vscale x 8 x i32> @vdivu_vv_nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
841 ; CHECK-LABEL: vdivu_vv_nxv8i32:
842 ; CHECK:       # %bb.0:
843 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
844 ; CHECK-NEXT:    vdivu.vv v8, v8, v12, v0.t
845 ; CHECK-NEXT:    ret
846   %v = call <vscale x 8 x i32> @llvm.vp.udiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 %evl)
847   ret <vscale x 8 x i32> %v
850 define <vscale x 8 x i32> @vdivu_vv_nxv8i32_unmasked(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, i32 zeroext %evl) {
851 ; CHECK-LABEL: vdivu_vv_nxv8i32_unmasked:
852 ; CHECK:       # %bb.0:
853 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
854 ; CHECK-NEXT:    vdivu.vv v8, v8, v12
855 ; CHECK-NEXT:    ret
856   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
857   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
858   %v = call <vscale x 8 x i32> @llvm.vp.udiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 %evl)
859   ret <vscale x 8 x i32> %v
862 define <vscale x 8 x i32> @vdivu_vx_nxv8i32(<vscale x 8 x i32> %va, i32 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
863 ; CHECK-LABEL: vdivu_vx_nxv8i32:
864 ; CHECK:       # %bb.0:
865 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
866 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
867 ; CHECK-NEXT:    ret
868   %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0
869   %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
870   %v = call <vscale x 8 x i32> @llvm.vp.udiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> %m, i32 %evl)
871   ret <vscale x 8 x i32> %v
874 define <vscale x 8 x i32> @vdivu_vx_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 %b, i32 zeroext %evl) {
875 ; CHECK-LABEL: vdivu_vx_nxv8i32_unmasked:
876 ; CHECK:       # %bb.0:
877 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
878 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
879 ; CHECK-NEXT:    ret
880   %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0
881   %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
882   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
883   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
884   %v = call <vscale x 8 x i32> @llvm.vp.udiv.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> %m, i32 %evl)
885   ret <vscale x 8 x i32> %v
888 declare <vscale x 16 x i32> @llvm.vp.udiv.nxv16i32(<vscale x 16 x i32>, <vscale x 16 x i32>, <vscale x 16 x i1>, i32)
890 define <vscale x 16 x i32> @vdivu_vv_nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
891 ; CHECK-LABEL: vdivu_vv_nxv16i32:
892 ; CHECK:       # %bb.0:
893 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
894 ; CHECK-NEXT:    vdivu.vv v8, v8, v16, v0.t
895 ; CHECK-NEXT:    ret
896   %v = call <vscale x 16 x i32> @llvm.vp.udiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 %evl)
897   ret <vscale x 16 x i32> %v
900 define <vscale x 16 x i32> @vdivu_vv_nxv16i32_unmasked(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, i32 zeroext %evl) {
901 ; CHECK-LABEL: vdivu_vv_nxv16i32_unmasked:
902 ; CHECK:       # %bb.0:
903 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
904 ; CHECK-NEXT:    vdivu.vv v8, v8, v16
905 ; CHECK-NEXT:    ret
906   %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
907   %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
908   %v = call <vscale x 16 x i32> @llvm.vp.udiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 %evl)
909   ret <vscale x 16 x i32> %v
912 define <vscale x 16 x i32> @vdivu_vx_nxv16i32(<vscale x 16 x i32> %va, i32 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
913 ; CHECK-LABEL: vdivu_vx_nxv16i32:
914 ; CHECK:       # %bb.0:
915 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
916 ; CHECK-NEXT:    vdivu.vx v8, v8, a0, v0.t
917 ; CHECK-NEXT:    ret
918   %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0
919   %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
920   %v = call <vscale x 16 x i32> @llvm.vp.udiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> %m, i32 %evl)
921   ret <vscale x 16 x i32> %v
924 define <vscale x 16 x i32> @vdivu_vx_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 %b, i32 zeroext %evl) {
925 ; CHECK-LABEL: vdivu_vx_nxv16i32_unmasked:
926 ; CHECK:       # %bb.0:
927 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
928 ; CHECK-NEXT:    vdivu.vx v8, v8, a0
929 ; CHECK-NEXT:    ret
930   %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0
931   %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
932   %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
933   %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
934   %v = call <vscale x 16 x i32> @llvm.vp.udiv.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> %m, i32 %evl)
935   ret <vscale x 16 x i32> %v
938 declare <vscale x 1 x i64> @llvm.vp.udiv.nxv1i64(<vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i1>, i32)
940 define <vscale x 1 x i64> @vdivu_vv_nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
941 ; CHECK-LABEL: vdivu_vv_nxv1i64:
942 ; CHECK:       # %bb.0:
943 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
944 ; CHECK-NEXT:    vdivu.vv v8, v8, v9, v0.t
945 ; CHECK-NEXT:    ret
946   %v = call <vscale x 1 x i64> @llvm.vp.udiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 %evl)
947   ret <vscale x 1 x i64> %v
950 define <vscale x 1 x i64> @vdivu_vv_nxv1i64_unmasked(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, i32 zeroext %evl) {
951 ; CHECK-LABEL: vdivu_vv_nxv1i64_unmasked:
952 ; CHECK:       # %bb.0:
953 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
954 ; CHECK-NEXT:    vdivu.vv v8, v8, v9
955 ; CHECK-NEXT:    ret
956   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
957   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
958   %v = call <vscale x 1 x i64> @llvm.vp.udiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 %evl)
959   ret <vscale x 1 x i64> %v
962 define <vscale x 1 x i64> @vdivu_vx_nxv1i64(<vscale x 1 x i64> %va, i64 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
963 ; RV32-LABEL: vdivu_vx_nxv1i64:
964 ; RV32:       # %bb.0:
965 ; RV32-NEXT:    addi sp, sp, -16
966 ; RV32-NEXT:    .cfi_def_cfa_offset 16
967 ; RV32-NEXT:    sw a1, 12(sp)
968 ; RV32-NEXT:    sw a0, 8(sp)
969 ; RV32-NEXT:    addi a0, sp, 8
970 ; RV32-NEXT:    vsetvli a1, zero, e64, m1, ta, ma
971 ; RV32-NEXT:    vlse64.v v9, (a0), zero
972 ; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma
973 ; RV32-NEXT:    vdivu.vv v8, v8, v9, v0.t
974 ; RV32-NEXT:    addi sp, sp, 16
975 ; RV32-NEXT:    ret
977 ; RV64-LABEL: vdivu_vx_nxv1i64:
978 ; RV64:       # %bb.0:
979 ; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
980 ; RV64-NEXT:    vdivu.vx v8, v8, a0, v0.t
981 ; RV64-NEXT:    ret
982   %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0
983   %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
984   %v = call <vscale x 1 x i64> @llvm.vp.udiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> %m, i32 %evl)
985   ret <vscale x 1 x i64> %v
988 define <vscale x 1 x i64> @vdivu_vx_nxv1i64_unmasked(<vscale x 1 x i64> %va, i64 %b, i32 zeroext %evl) {
989 ; RV32-LABEL: vdivu_vx_nxv1i64_unmasked:
990 ; RV32:       # %bb.0:
991 ; RV32-NEXT:    addi sp, sp, -16
992 ; RV32-NEXT:    .cfi_def_cfa_offset 16
993 ; RV32-NEXT:    sw a1, 12(sp)
994 ; RV32-NEXT:    sw a0, 8(sp)
995 ; RV32-NEXT:    addi a0, sp, 8
996 ; RV32-NEXT:    vsetvli a1, zero, e64, m1, ta, ma
997 ; RV32-NEXT:    vlse64.v v9, (a0), zero
998 ; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma
999 ; RV32-NEXT:    vdivu.vv v8, v8, v9
1000 ; RV32-NEXT:    addi sp, sp, 16
1001 ; RV32-NEXT:    ret
1003 ; RV64-LABEL: vdivu_vx_nxv1i64_unmasked:
1004 ; RV64:       # %bb.0:
1005 ; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
1006 ; RV64-NEXT:    vdivu.vx v8, v8, a0
1007 ; RV64-NEXT:    ret
1008   %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0
1009   %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
1010   %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
1011   %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
1012   %v = call <vscale x 1 x i64> @llvm.vp.udiv.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> %m, i32 %evl)
1013   ret <vscale x 1 x i64> %v
1016 declare <vscale x 2 x i64> @llvm.vp.udiv.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i1>, i32)
1018 define <vscale x 2 x i64> @vdivu_vv_nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1019 ; CHECK-LABEL: vdivu_vv_nxv2i64:
1020 ; CHECK:       # %bb.0:
1021 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1022 ; CHECK-NEXT:    vdivu.vv v8, v8, v10, v0.t
1023 ; CHECK-NEXT:    ret
1024   %v = call <vscale x 2 x i64> @llvm.vp.udiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 %evl)
1025   ret <vscale x 2 x i64> %v
1028 define <vscale x 2 x i64> @vdivu_vv_nxv2i64_unmasked(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, i32 zeroext %evl) {
1029 ; CHECK-LABEL: vdivu_vv_nxv2i64_unmasked:
1030 ; CHECK:       # %bb.0:
1031 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1032 ; CHECK-NEXT:    vdivu.vv v8, v8, v10
1033 ; CHECK-NEXT:    ret
1034   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1035   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1036   %v = call <vscale x 2 x i64> @llvm.vp.udiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 %evl)
1037   ret <vscale x 2 x i64> %v
1040 define <vscale x 2 x i64> @vdivu_vx_nxv2i64(<vscale x 2 x i64> %va, i64 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1041 ; RV32-LABEL: vdivu_vx_nxv2i64:
1042 ; RV32:       # %bb.0:
1043 ; RV32-NEXT:    addi sp, sp, -16
1044 ; RV32-NEXT:    .cfi_def_cfa_offset 16
1045 ; RV32-NEXT:    sw a1, 12(sp)
1046 ; RV32-NEXT:    sw a0, 8(sp)
1047 ; RV32-NEXT:    addi a0, sp, 8
1048 ; RV32-NEXT:    vsetvli a1, zero, e64, m2, ta, ma
1049 ; RV32-NEXT:    vlse64.v v10, (a0), zero
1050 ; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma
1051 ; RV32-NEXT:    vdivu.vv v8, v8, v10, v0.t
1052 ; RV32-NEXT:    addi sp, sp, 16
1053 ; RV32-NEXT:    ret
1055 ; RV64-LABEL: vdivu_vx_nxv2i64:
1056 ; RV64:       # %bb.0:
1057 ; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1058 ; RV64-NEXT:    vdivu.vx v8, v8, a0, v0.t
1059 ; RV64-NEXT:    ret
1060   %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0
1061   %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1062   %v = call <vscale x 2 x i64> @llvm.vp.udiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> %m, i32 %evl)
1063   ret <vscale x 2 x i64> %v
1066 define <vscale x 2 x i64> @vdivu_vx_nxv2i64_unmasked(<vscale x 2 x i64> %va, i64 %b, i32 zeroext %evl) {
1067 ; RV32-LABEL: vdivu_vx_nxv2i64_unmasked:
1068 ; RV32:       # %bb.0:
1069 ; RV32-NEXT:    addi sp, sp, -16
1070 ; RV32-NEXT:    .cfi_def_cfa_offset 16
1071 ; RV32-NEXT:    sw a1, 12(sp)
1072 ; RV32-NEXT:    sw a0, 8(sp)
1073 ; RV32-NEXT:    addi a0, sp, 8
1074 ; RV32-NEXT:    vsetvli a1, zero, e64, m2, ta, ma
1075 ; RV32-NEXT:    vlse64.v v10, (a0), zero
1076 ; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma
1077 ; RV32-NEXT:    vdivu.vv v8, v8, v10
1078 ; RV32-NEXT:    addi sp, sp, 16
1079 ; RV32-NEXT:    ret
1081 ; RV64-LABEL: vdivu_vx_nxv2i64_unmasked:
1082 ; RV64:       # %bb.0:
1083 ; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1084 ; RV64-NEXT:    vdivu.vx v8, v8, a0
1085 ; RV64-NEXT:    ret
1086   %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0
1087   %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1088   %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1089   %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1090   %v = call <vscale x 2 x i64> @llvm.vp.udiv.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> %m, i32 %evl)
1091   ret <vscale x 2 x i64> %v
1094 declare <vscale x 4 x i64> @llvm.vp.udiv.nxv4i64(<vscale x 4 x i64>, <vscale x 4 x i64>, <vscale x 4 x i1>, i32)
1096 define <vscale x 4 x i64> @vdivu_vv_nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1097 ; CHECK-LABEL: vdivu_vv_nxv4i64:
1098 ; CHECK:       # %bb.0:
1099 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1100 ; CHECK-NEXT:    vdivu.vv v8, v8, v12, v0.t
1101 ; CHECK-NEXT:    ret
1102   %v = call <vscale x 4 x i64> @llvm.vp.udiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 %evl)
1103   ret <vscale x 4 x i64> %v
1106 define <vscale x 4 x i64> @vdivu_vv_nxv4i64_unmasked(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, i32 zeroext %evl) {
1107 ; CHECK-LABEL: vdivu_vv_nxv4i64_unmasked:
1108 ; CHECK:       # %bb.0:
1109 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1110 ; CHECK-NEXT:    vdivu.vv v8, v8, v12
1111 ; CHECK-NEXT:    ret
1112   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1113   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1114   %v = call <vscale x 4 x i64> @llvm.vp.udiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 %evl)
1115   ret <vscale x 4 x i64> %v
1118 define <vscale x 4 x i64> @vdivu_vx_nxv4i64(<vscale x 4 x i64> %va, i64 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1119 ; RV32-LABEL: vdivu_vx_nxv4i64:
1120 ; RV32:       # %bb.0:
1121 ; RV32-NEXT:    addi sp, sp, -16
1122 ; RV32-NEXT:    .cfi_def_cfa_offset 16
1123 ; RV32-NEXT:    sw a1, 12(sp)
1124 ; RV32-NEXT:    sw a0, 8(sp)
1125 ; RV32-NEXT:    addi a0, sp, 8
1126 ; RV32-NEXT:    vsetvli a1, zero, e64, m4, ta, ma
1127 ; RV32-NEXT:    vlse64.v v12, (a0), zero
1128 ; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma
1129 ; RV32-NEXT:    vdivu.vv v8, v8, v12, v0.t
1130 ; RV32-NEXT:    addi sp, sp, 16
1131 ; RV32-NEXT:    ret
1133 ; RV64-LABEL: vdivu_vx_nxv4i64:
1134 ; RV64:       # %bb.0:
1135 ; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1136 ; RV64-NEXT:    vdivu.vx v8, v8, a0, v0.t
1137 ; RV64-NEXT:    ret
1138   %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 0
1139   %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1140   %v = call <vscale x 4 x i64> @llvm.vp.udiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> %m, i32 %evl)
1141   ret <vscale x 4 x i64> %v
1144 define <vscale x 4 x i64> @vdivu_vx_nxv4i64_unmasked(<vscale x 4 x i64> %va, i64 %b, i32 zeroext %evl) {
1145 ; RV32-LABEL: vdivu_vx_nxv4i64_unmasked:
1146 ; RV32:       # %bb.0:
1147 ; RV32-NEXT:    addi sp, sp, -16
1148 ; RV32-NEXT:    .cfi_def_cfa_offset 16
1149 ; RV32-NEXT:    sw a1, 12(sp)
1150 ; RV32-NEXT:    sw a0, 8(sp)
1151 ; RV32-NEXT:    addi a0, sp, 8
1152 ; RV32-NEXT:    vsetvli a1, zero, e64, m4, ta, ma
1153 ; RV32-NEXT:    vlse64.v v12, (a0), zero
1154 ; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma
1155 ; RV32-NEXT:    vdivu.vv v8, v8, v12
1156 ; RV32-NEXT:    addi sp, sp, 16
1157 ; RV32-NEXT:    ret
1159 ; RV64-LABEL: vdivu_vx_nxv4i64_unmasked:
1160 ; RV64:       # %bb.0:
1161 ; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1162 ; RV64-NEXT:    vdivu.vx v8, v8, a0
1163 ; RV64-NEXT:    ret
1164   %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 0
1165   %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1166   %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1167   %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1168   %v = call <vscale x 4 x i64> @llvm.vp.udiv.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> %m, i32 %evl)
1169   ret <vscale x 4 x i64> %v
1172 declare <vscale x 8 x i64> @llvm.vp.udiv.nxv8i64(<vscale x 8 x i64>, <vscale x 8 x i64>, <vscale x 8 x i1>, i32)
1174 define <vscale x 8 x i64> @vdivu_vv_nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1175 ; CHECK-LABEL: vdivu_vv_nxv8i64:
1176 ; CHECK:       # %bb.0:
1177 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1178 ; CHECK-NEXT:    vdivu.vv v8, v8, v16, v0.t
1179 ; CHECK-NEXT:    ret
1180   %v = call <vscale x 8 x i64> @llvm.vp.udiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 %evl)
1181   ret <vscale x 8 x i64> %v
1184 define <vscale x 8 x i64> @vdivu_vv_nxv8i64_unmasked(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, i32 zeroext %evl) {
1185 ; CHECK-LABEL: vdivu_vv_nxv8i64_unmasked:
1186 ; CHECK:       # %bb.0:
1187 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1188 ; CHECK-NEXT:    vdivu.vv v8, v8, v16
1189 ; CHECK-NEXT:    ret
1190   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1191   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1192   %v = call <vscale x 8 x i64> @llvm.vp.udiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 %evl)
1193   ret <vscale x 8 x i64> %v
1196 define <vscale x 8 x i64> @vdivu_vx_nxv8i64(<vscale x 8 x i64> %va, i64 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1197 ; RV32-LABEL: vdivu_vx_nxv8i64:
1198 ; RV32:       # %bb.0:
1199 ; RV32-NEXT:    addi sp, sp, -16
1200 ; RV32-NEXT:    .cfi_def_cfa_offset 16
1201 ; RV32-NEXT:    sw a1, 12(sp)
1202 ; RV32-NEXT:    sw a0, 8(sp)
1203 ; RV32-NEXT:    addi a0, sp, 8
1204 ; RV32-NEXT:    vsetvli a1, zero, e64, m8, ta, ma
1205 ; RV32-NEXT:    vlse64.v v16, (a0), zero
1206 ; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma
1207 ; RV32-NEXT:    vdivu.vv v8, v8, v16, v0.t
1208 ; RV32-NEXT:    addi sp, sp, 16
1209 ; RV32-NEXT:    ret
1211 ; RV64-LABEL: vdivu_vx_nxv8i64:
1212 ; RV64:       # %bb.0:
1213 ; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
1214 ; RV64-NEXT:    vdivu.vx v8, v8, a0, v0.t
1215 ; RV64-NEXT:    ret
1216   %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 0
1217   %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1218   %v = call <vscale x 8 x i64> @llvm.vp.udiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> %m, i32 %evl)
1219   ret <vscale x 8 x i64> %v
1222 define <vscale x 8 x i64> @vdivu_vx_nxv8i64_unmasked(<vscale x 8 x i64> %va, i64 %b, i32 zeroext %evl) {
1223 ; RV32-LABEL: vdivu_vx_nxv8i64_unmasked:
1224 ; RV32:       # %bb.0:
1225 ; RV32-NEXT:    addi sp, sp, -16
1226 ; RV32-NEXT:    .cfi_def_cfa_offset 16
1227 ; RV32-NEXT:    sw a1, 12(sp)
1228 ; RV32-NEXT:    sw a0, 8(sp)
1229 ; RV32-NEXT:    addi a0, sp, 8
1230 ; RV32-NEXT:    vsetvli a1, zero, e64, m8, ta, ma
1231 ; RV32-NEXT:    vlse64.v v16, (a0), zero
1232 ; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma
1233 ; RV32-NEXT:    vdivu.vv v8, v8, v16
1234 ; RV32-NEXT:    addi sp, sp, 16
1235 ; RV32-NEXT:    ret
1237 ; RV64-LABEL: vdivu_vx_nxv8i64_unmasked:
1238 ; RV64:       # %bb.0:
1239 ; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
1240 ; RV64-NEXT:    vdivu.vx v8, v8, a0
1241 ; RV64-NEXT:    ret
1242   %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 0
1243   %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1244   %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1245   %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1246   %v = call <vscale x 8 x i64> @llvm.vp.udiv.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> %m, i32 %evl)
1247   ret <vscale x 8 x i64> %v