1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc -mtriple=riscv32 -mattr=+experimental-v -verify-machineinstrs < %s \
3; RUN:   | FileCheck %s --check-prefixes=CHECK,RV32
4; RUN: llc -mtriple=riscv64 -mattr=+experimental-v -verify-machineinstrs < %s \
5; RUN:   | FileCheck %s --check-prefixes=CHECK,RV64
6
7declare <vscale x 1 x i8> @llvm.vp.sdiv.nxv1i8(<vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i1>, i32)
8
9define <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) {
10; CHECK-LABEL: vdiv_vv_nxv1i8:
11; CHECK:       # %bb.0:
12; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, mu
13; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
14; CHECK-NEXT:    ret
15  %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)
16  ret <vscale x 1 x i8> %v
17}
18
19define <vscale x 1 x i8> @vdiv_vv_nxv1i8_unmasked(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, i32 zeroext %evl) {
20; CHECK-LABEL: vdiv_vv_nxv1i8_unmasked:
21; CHECK:       # %bb.0:
22; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, mu
23; CHECK-NEXT:    vdiv.vv v8, v8, v9
24; CHECK-NEXT:    ret
25  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
26  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
27  %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)
28  ret <vscale x 1 x i8> %v
29}
30
31define <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) {
32; CHECK-LABEL: vdiv_vx_nxv1i8:
33; CHECK:       # %bb.0:
34; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu
35; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
36; CHECK-NEXT:    ret
37  %elt.head = insertelement <vscale x 1 x i8> undef, i8 %b, i32 0
38  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> undef, <vscale x 1 x i32> zeroinitializer
39  %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)
40  ret <vscale x 1 x i8> %v
41}
42
43define <vscale x 1 x i8> @vdiv_vx_nxv1i8_unmasked(<vscale x 1 x i8> %va, i8 %b, i32 zeroext %evl) {
44; CHECK-LABEL: vdiv_vx_nxv1i8_unmasked:
45; CHECK:       # %bb.0:
46; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu
47; CHECK-NEXT:    vdiv.vx v8, v8, a0
48; CHECK-NEXT:    ret
49  %elt.head = insertelement <vscale x 1 x i8> undef, i8 %b, i32 0
50  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> undef, <vscale x 1 x i32> zeroinitializer
51  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
52  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
53  %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)
54  ret <vscale x 1 x i8> %v
55}
56
57declare <vscale x 2 x i8> @llvm.vp.sdiv.nxv2i8(<vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i1>, i32)
58
59define <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) {
60; CHECK-LABEL: vdiv_vv_nxv2i8:
61; CHECK:       # %bb.0:
62; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, mu
63; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
64; CHECK-NEXT:    ret
65  %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)
66  ret <vscale x 2 x i8> %v
67}
68
69define <vscale x 2 x i8> @vdiv_vv_nxv2i8_unmasked(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, i32 zeroext %evl) {
70; CHECK-LABEL: vdiv_vv_nxv2i8_unmasked:
71; CHECK:       # %bb.0:
72; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, mu
73; CHECK-NEXT:    vdiv.vv v8, v8, v9
74; CHECK-NEXT:    ret
75  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
76  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
77  %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)
78  ret <vscale x 2 x i8> %v
79}
80
81define <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) {
82; CHECK-LABEL: vdiv_vx_nxv2i8:
83; CHECK:       # %bb.0:
84; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu
85; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
86; CHECK-NEXT:    ret
87  %elt.head = insertelement <vscale x 2 x i8> undef, i8 %b, i32 0
88  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> undef, <vscale x 2 x i32> zeroinitializer
89  %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)
90  ret <vscale x 2 x i8> %v
91}
92
93define <vscale x 2 x i8> @vdiv_vx_nxv2i8_unmasked(<vscale x 2 x i8> %va, i8 %b, i32 zeroext %evl) {
94; CHECK-LABEL: vdiv_vx_nxv2i8_unmasked:
95; CHECK:       # %bb.0:
96; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu
97; CHECK-NEXT:    vdiv.vx v8, v8, a0
98; CHECK-NEXT:    ret
99  %elt.head = insertelement <vscale x 2 x i8> undef, i8 %b, i32 0
100  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> undef, <vscale x 2 x i32> zeroinitializer
101  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
102  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
103  %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)
104  ret <vscale x 2 x i8> %v
105}
106
107declare <vscale x 4 x i8> @llvm.vp.sdiv.nxv4i8(<vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i1>, i32)
108
109define <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) {
110; CHECK-LABEL: vdiv_vv_nxv4i8:
111; CHECK:       # %bb.0:
112; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, mu
113; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
114; CHECK-NEXT:    ret
115  %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)
116  ret <vscale x 4 x i8> %v
117}
118
119define <vscale x 4 x i8> @vdiv_vv_nxv4i8_unmasked(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, i32 zeroext %evl) {
120; CHECK-LABEL: vdiv_vv_nxv4i8_unmasked:
121; CHECK:       # %bb.0:
122; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, mu
123; CHECK-NEXT:    vdiv.vv v8, v8, v9
124; CHECK-NEXT:    ret
125  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
126  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
127  %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)
128  ret <vscale x 4 x i8> %v
129}
130
131define <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) {
132; CHECK-LABEL: vdiv_vx_nxv4i8:
133; CHECK:       # %bb.0:
134; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu
135; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
136; CHECK-NEXT:    ret
137  %elt.head = insertelement <vscale x 4 x i8> undef, i8 %b, i32 0
138  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> undef, <vscale x 4 x i32> zeroinitializer
139  %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)
140  ret <vscale x 4 x i8> %v
141}
142
143define <vscale x 4 x i8> @vdiv_vx_nxv4i8_unmasked(<vscale x 4 x i8> %va, i8 %b, i32 zeroext %evl) {
144; CHECK-LABEL: vdiv_vx_nxv4i8_unmasked:
145; CHECK:       # %bb.0:
146; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu
147; CHECK-NEXT:    vdiv.vx v8, v8, a0
148; CHECK-NEXT:    ret
149  %elt.head = insertelement <vscale x 4 x i8> undef, i8 %b, i32 0
150  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> undef, <vscale x 4 x i32> zeroinitializer
151  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
152  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
153  %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)
154  ret <vscale x 4 x i8> %v
155}
156
157declare <vscale x 8 x i8> @llvm.vp.sdiv.nxv8i8(<vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i1>, i32)
158
159define <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) {
160; CHECK-LABEL: vdiv_vv_nxv8i8:
161; CHECK:       # %bb.0:
162; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, mu
163; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
164; CHECK-NEXT:    ret
165  %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)
166  ret <vscale x 8 x i8> %v
167}
168
169define <vscale x 8 x i8> @vdiv_vv_nxv8i8_unmasked(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, i32 zeroext %evl) {
170; CHECK-LABEL: vdiv_vv_nxv8i8_unmasked:
171; CHECK:       # %bb.0:
172; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, mu
173; CHECK-NEXT:    vdiv.vv v8, v8, v9
174; CHECK-NEXT:    ret
175  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
176  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
177  %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)
178  ret <vscale x 8 x i8> %v
179}
180
181define <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) {
182; CHECK-LABEL: vdiv_vx_nxv8i8:
183; CHECK:       # %bb.0:
184; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu
185; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
186; CHECK-NEXT:    ret
187  %elt.head = insertelement <vscale x 8 x i8> undef, i8 %b, i32 0
188  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> undef, <vscale x 8 x i32> zeroinitializer
189  %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)
190  ret <vscale x 8 x i8> %v
191}
192
193define <vscale x 8 x i8> @vdiv_vx_nxv8i8_unmasked(<vscale x 8 x i8> %va, i8 %b, i32 zeroext %evl) {
194; CHECK-LABEL: vdiv_vx_nxv8i8_unmasked:
195; CHECK:       # %bb.0:
196; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu
197; CHECK-NEXT:    vdiv.vx v8, v8, a0
198; CHECK-NEXT:    ret
199  %elt.head = insertelement <vscale x 8 x i8> undef, i8 %b, i32 0
200  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> undef, <vscale x 8 x i32> zeroinitializer
201  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
202  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
203  %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)
204  ret <vscale x 8 x i8> %v
205}
206
207declare <vscale x 16 x i8> @llvm.vp.sdiv.nxv16i8(<vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i1>, i32)
208
209define <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) {
210; CHECK-LABEL: vdiv_vv_nxv16i8:
211; CHECK:       # %bb.0:
212; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, mu
213; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t
214; CHECK-NEXT:    ret
215  %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)
216  ret <vscale x 16 x i8> %v
217}
218
219define <vscale x 16 x i8> @vdiv_vv_nxv16i8_unmasked(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, i32 zeroext %evl) {
220; CHECK-LABEL: vdiv_vv_nxv16i8_unmasked:
221; CHECK:       # %bb.0:
222; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, mu
223; CHECK-NEXT:    vdiv.vv v8, v8, v10
224; CHECK-NEXT:    ret
225  %head = insertelement <vscale x 16 x i1> undef, i1 true, i32 0
226  %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> undef, <vscale x 16 x i32> zeroinitializer
227  %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)
228  ret <vscale x 16 x i8> %v
229}
230
231define <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) {
232; CHECK-LABEL: vdiv_vx_nxv16i8:
233; CHECK:       # %bb.0:
234; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, mu
235; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
236; CHECK-NEXT:    ret
237  %elt.head = insertelement <vscale x 16 x i8> undef, i8 %b, i32 0
238  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> undef, <vscale x 16 x i32> zeroinitializer
239  %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)
240  ret <vscale x 16 x i8> %v
241}
242
243define <vscale x 16 x i8> @vdiv_vx_nxv16i8_unmasked(<vscale x 16 x i8> %va, i8 %b, i32 zeroext %evl) {
244; CHECK-LABEL: vdiv_vx_nxv16i8_unmasked:
245; CHECK:       # %bb.0:
246; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, mu
247; CHECK-NEXT:    vdiv.vx v8, v8, a0
248; CHECK-NEXT:    ret
249  %elt.head = insertelement <vscale x 16 x i8> undef, i8 %b, i32 0
250  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> undef, <vscale x 16 x i32> zeroinitializer
251  %head = insertelement <vscale x 16 x i1> undef, i1 true, i32 0
252  %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> undef, <vscale x 16 x i32> zeroinitializer
253  %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)
254  ret <vscale x 16 x i8> %v
255}
256
257declare <vscale x 32 x i8> @llvm.vp.sdiv.nxv32i8(<vscale x 32 x i8>, <vscale x 32 x i8>, <vscale x 32 x i1>, i32)
258
259define <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) {
260; CHECK-LABEL: vdiv_vv_nxv32i8:
261; CHECK:       # %bb.0:
262; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, mu
263; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t
264; CHECK-NEXT:    ret
265  %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)
266  ret <vscale x 32 x i8> %v
267}
268
269define <vscale x 32 x i8> @vdiv_vv_nxv32i8_unmasked(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, i32 zeroext %evl) {
270; CHECK-LABEL: vdiv_vv_nxv32i8_unmasked:
271; CHECK:       # %bb.0:
272; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, mu
273; CHECK-NEXT:    vdiv.vv v8, v8, v12
274; CHECK-NEXT:    ret
275  %head = insertelement <vscale x 32 x i1> undef, i1 true, i32 0
276  %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> undef, <vscale x 32 x i32> zeroinitializer
277  %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)
278  ret <vscale x 32 x i8> %v
279}
280
281define <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) {
282; CHECK-LABEL: vdiv_vx_nxv32i8:
283; CHECK:       # %bb.0:
284; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, mu
285; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
286; CHECK-NEXT:    ret
287  %elt.head = insertelement <vscale x 32 x i8> undef, i8 %b, i32 0
288  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> undef, <vscale x 32 x i32> zeroinitializer
289  %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)
290  ret <vscale x 32 x i8> %v
291}
292
293define <vscale x 32 x i8> @vdiv_vx_nxv32i8_unmasked(<vscale x 32 x i8> %va, i8 %b, i32 zeroext %evl) {
294; CHECK-LABEL: vdiv_vx_nxv32i8_unmasked:
295; CHECK:       # %bb.0:
296; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, mu
297; CHECK-NEXT:    vdiv.vx v8, v8, a0
298; CHECK-NEXT:    ret
299  %elt.head = insertelement <vscale x 32 x i8> undef, i8 %b, i32 0
300  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> undef, <vscale x 32 x i32> zeroinitializer
301  %head = insertelement <vscale x 32 x i1> undef, i1 true, i32 0
302  %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> undef, <vscale x 32 x i32> zeroinitializer
303  %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)
304  ret <vscale x 32 x i8> %v
305}
306
307declare <vscale x 64 x i8> @llvm.vp.sdiv.nxv64i8(<vscale x 64 x i8>, <vscale x 64 x i8>, <vscale x 64 x i1>, i32)
308
309define <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) {
310; CHECK-LABEL: vdiv_vv_nxv64i8:
311; CHECK:       # %bb.0:
312; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, mu
313; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t
314; CHECK-NEXT:    ret
315  %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)
316  ret <vscale x 64 x i8> %v
317}
318
319define <vscale x 64 x i8> @vdiv_vv_nxv64i8_unmasked(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, i32 zeroext %evl) {
320; CHECK-LABEL: vdiv_vv_nxv64i8_unmasked:
321; CHECK:       # %bb.0:
322; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, mu
323; CHECK-NEXT:    vdiv.vv v8, v8, v16
324; CHECK-NEXT:    ret
325  %head = insertelement <vscale x 64 x i1> undef, i1 true, i32 0
326  %m = shufflevector <vscale x 64 x i1> %head, <vscale x 64 x i1> undef, <vscale x 64 x i32> zeroinitializer
327  %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)
328  ret <vscale x 64 x i8> %v
329}
330
331define <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) {
332; CHECK-LABEL: vdiv_vx_nxv64i8:
333; CHECK:       # %bb.0:
334; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, mu
335; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
336; CHECK-NEXT:    ret
337  %elt.head = insertelement <vscale x 64 x i8> undef, i8 %b, i32 0
338  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> undef, <vscale x 64 x i32> zeroinitializer
339  %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)
340  ret <vscale x 64 x i8> %v
341}
342
343define <vscale x 64 x i8> @vdiv_vx_nxv64i8_unmasked(<vscale x 64 x i8> %va, i8 %b, i32 zeroext %evl) {
344; CHECK-LABEL: vdiv_vx_nxv64i8_unmasked:
345; CHECK:       # %bb.0:
346; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, mu
347; CHECK-NEXT:    vdiv.vx v8, v8, a0
348; CHECK-NEXT:    ret
349  %elt.head = insertelement <vscale x 64 x i8> undef, i8 %b, i32 0
350  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> undef, <vscale x 64 x i32> zeroinitializer
351  %head = insertelement <vscale x 64 x i1> undef, i1 true, i32 0
352  %m = shufflevector <vscale x 64 x i1> %head, <vscale x 64 x i1> undef, <vscale x 64 x i32> zeroinitializer
353  %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)
354  ret <vscale x 64 x i8> %v
355}
356
357declare <vscale x 1 x i16> @llvm.vp.sdiv.nxv1i16(<vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i1>, i32)
358
359define <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) {
360; CHECK-LABEL: vdiv_vv_nxv1i16:
361; CHECK:       # %bb.0:
362; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, mu
363; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
364; CHECK-NEXT:    ret
365  %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)
366  ret <vscale x 1 x i16> %v
367}
368
369define <vscale x 1 x i16> @vdiv_vv_nxv1i16_unmasked(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, i32 zeroext %evl) {
370; CHECK-LABEL: vdiv_vv_nxv1i16_unmasked:
371; CHECK:       # %bb.0:
372; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, mu
373; CHECK-NEXT:    vdiv.vv v8, v8, v9
374; CHECK-NEXT:    ret
375  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
376  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
377  %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)
378  ret <vscale x 1 x i16> %v
379}
380
381define <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) {
382; CHECK-LABEL: vdiv_vx_nxv1i16:
383; CHECK:       # %bb.0:
384; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu
385; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
386; CHECK-NEXT:    ret
387  %elt.head = insertelement <vscale x 1 x i16> undef, i16 %b, i32 0
388  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> undef, <vscale x 1 x i32> zeroinitializer
389  %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)
390  ret <vscale x 1 x i16> %v
391}
392
393define <vscale x 1 x i16> @vdiv_vx_nxv1i16_unmasked(<vscale x 1 x i16> %va, i16 %b, i32 zeroext %evl) {
394; CHECK-LABEL: vdiv_vx_nxv1i16_unmasked:
395; CHECK:       # %bb.0:
396; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu
397; CHECK-NEXT:    vdiv.vx v8, v8, a0
398; CHECK-NEXT:    ret
399  %elt.head = insertelement <vscale x 1 x i16> undef, i16 %b, i32 0
400  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> undef, <vscale x 1 x i32> zeroinitializer
401  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
402  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
403  %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)
404  ret <vscale x 1 x i16> %v
405}
406
407declare <vscale x 2 x i16> @llvm.vp.sdiv.nxv2i16(<vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i1>, i32)
408
409define <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) {
410; CHECK-LABEL: vdiv_vv_nxv2i16:
411; CHECK:       # %bb.0:
412; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, mu
413; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
414; CHECK-NEXT:    ret
415  %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)
416  ret <vscale x 2 x i16> %v
417}
418
419define <vscale x 2 x i16> @vdiv_vv_nxv2i16_unmasked(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, i32 zeroext %evl) {
420; CHECK-LABEL: vdiv_vv_nxv2i16_unmasked:
421; CHECK:       # %bb.0:
422; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, mu
423; CHECK-NEXT:    vdiv.vv v8, v8, v9
424; CHECK-NEXT:    ret
425  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
426  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
427  %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)
428  ret <vscale x 2 x i16> %v
429}
430
431define <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) {
432; CHECK-LABEL: vdiv_vx_nxv2i16:
433; CHECK:       # %bb.0:
434; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu
435; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
436; CHECK-NEXT:    ret
437  %elt.head = insertelement <vscale x 2 x i16> undef, i16 %b, i32 0
438  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> undef, <vscale x 2 x i32> zeroinitializer
439  %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)
440  ret <vscale x 2 x i16> %v
441}
442
443define <vscale x 2 x i16> @vdiv_vx_nxv2i16_unmasked(<vscale x 2 x i16> %va, i16 %b, i32 zeroext %evl) {
444; CHECK-LABEL: vdiv_vx_nxv2i16_unmasked:
445; CHECK:       # %bb.0:
446; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu
447; CHECK-NEXT:    vdiv.vx v8, v8, a0
448; CHECK-NEXT:    ret
449  %elt.head = insertelement <vscale x 2 x i16> undef, i16 %b, i32 0
450  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> undef, <vscale x 2 x i32> zeroinitializer
451  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
452  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
453  %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)
454  ret <vscale x 2 x i16> %v
455}
456
457declare <vscale x 4 x i16> @llvm.vp.sdiv.nxv4i16(<vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i1>, i32)
458
459define <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) {
460; CHECK-LABEL: vdiv_vv_nxv4i16:
461; CHECK:       # %bb.0:
462; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, mu
463; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
464; CHECK-NEXT:    ret
465  %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)
466  ret <vscale x 4 x i16> %v
467}
468
469define <vscale x 4 x i16> @vdiv_vv_nxv4i16_unmasked(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, i32 zeroext %evl) {
470; CHECK-LABEL: vdiv_vv_nxv4i16_unmasked:
471; CHECK:       # %bb.0:
472; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, mu
473; CHECK-NEXT:    vdiv.vv v8, v8, v9
474; CHECK-NEXT:    ret
475  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
476  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
477  %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)
478  ret <vscale x 4 x i16> %v
479}
480
481define <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) {
482; CHECK-LABEL: vdiv_vx_nxv4i16:
483; CHECK:       # %bb.0:
484; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu
485; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
486; CHECK-NEXT:    ret
487  %elt.head = insertelement <vscale x 4 x i16> undef, i16 %b, i32 0
488  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> undef, <vscale x 4 x i32> zeroinitializer
489  %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)
490  ret <vscale x 4 x i16> %v
491}
492
493define <vscale x 4 x i16> @vdiv_vx_nxv4i16_unmasked(<vscale x 4 x i16> %va, i16 %b, i32 zeroext %evl) {
494; CHECK-LABEL: vdiv_vx_nxv4i16_unmasked:
495; CHECK:       # %bb.0:
496; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu
497; CHECK-NEXT:    vdiv.vx v8, v8, a0
498; CHECK-NEXT:    ret
499  %elt.head = insertelement <vscale x 4 x i16> undef, i16 %b, i32 0
500  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> undef, <vscale x 4 x i32> zeroinitializer
501  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
502  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
503  %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)
504  ret <vscale x 4 x i16> %v
505}
506
507declare <vscale x 8 x i16> @llvm.vp.sdiv.nxv8i16(<vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i1>, i32)
508
509define <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) {
510; CHECK-LABEL: vdiv_vv_nxv8i16:
511; CHECK:       # %bb.0:
512; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, mu
513; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t
514; CHECK-NEXT:    ret
515  %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)
516  ret <vscale x 8 x i16> %v
517}
518
519define <vscale x 8 x i16> @vdiv_vv_nxv8i16_unmasked(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, i32 zeroext %evl) {
520; CHECK-LABEL: vdiv_vv_nxv8i16_unmasked:
521; CHECK:       # %bb.0:
522; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, mu
523; CHECK-NEXT:    vdiv.vv v8, v8, v10
524; CHECK-NEXT:    ret
525  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
526  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
527  %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)
528  ret <vscale x 8 x i16> %v
529}
530
531define <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) {
532; CHECK-LABEL: vdiv_vx_nxv8i16:
533; CHECK:       # %bb.0:
534; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu
535; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
536; CHECK-NEXT:    ret
537  %elt.head = insertelement <vscale x 8 x i16> undef, i16 %b, i32 0
538  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> undef, <vscale x 8 x i32> zeroinitializer
539  %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)
540  ret <vscale x 8 x i16> %v
541}
542
543define <vscale x 8 x i16> @vdiv_vx_nxv8i16_unmasked(<vscale x 8 x i16> %va, i16 %b, i32 zeroext %evl) {
544; CHECK-LABEL: vdiv_vx_nxv8i16_unmasked:
545; CHECK:       # %bb.0:
546; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu
547; CHECK-NEXT:    vdiv.vx v8, v8, a0
548; CHECK-NEXT:    ret
549  %elt.head = insertelement <vscale x 8 x i16> undef, i16 %b, i32 0
550  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> undef, <vscale x 8 x i32> zeroinitializer
551  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
552  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
553  %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)
554  ret <vscale x 8 x i16> %v
555}
556
557declare <vscale x 16 x i16> @llvm.vp.sdiv.nxv16i16(<vscale x 16 x i16>, <vscale x 16 x i16>, <vscale x 16 x i1>, i32)
558
559define <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) {
560; CHECK-LABEL: vdiv_vv_nxv16i16:
561; CHECK:       # %bb.0:
562; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, mu
563; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t
564; CHECK-NEXT:    ret
565  %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)
566  ret <vscale x 16 x i16> %v
567}
568
569define <vscale x 16 x i16> @vdiv_vv_nxv16i16_unmasked(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, i32 zeroext %evl) {
570; CHECK-LABEL: vdiv_vv_nxv16i16_unmasked:
571; CHECK:       # %bb.0:
572; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, mu
573; CHECK-NEXT:    vdiv.vv v8, v8, v12
574; CHECK-NEXT:    ret
575  %head = insertelement <vscale x 16 x i1> undef, i1 true, i32 0
576  %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> undef, <vscale x 16 x i32> zeroinitializer
577  %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)
578  ret <vscale x 16 x i16> %v
579}
580
581define <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) {
582; CHECK-LABEL: vdiv_vx_nxv16i16:
583; CHECK:       # %bb.0:
584; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu
585; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
586; CHECK-NEXT:    ret
587  %elt.head = insertelement <vscale x 16 x i16> undef, i16 %b, i32 0
588  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> undef, <vscale x 16 x i32> zeroinitializer
589  %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)
590  ret <vscale x 16 x i16> %v
591}
592
593define <vscale x 16 x i16> @vdiv_vx_nxv16i16_unmasked(<vscale x 16 x i16> %va, i16 %b, i32 zeroext %evl) {
594; CHECK-LABEL: vdiv_vx_nxv16i16_unmasked:
595; CHECK:       # %bb.0:
596; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu
597; CHECK-NEXT:    vdiv.vx v8, v8, a0
598; CHECK-NEXT:    ret
599  %elt.head = insertelement <vscale x 16 x i16> undef, i16 %b, i32 0
600  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> undef, <vscale x 16 x i32> zeroinitializer
601  %head = insertelement <vscale x 16 x i1> undef, i1 true, i32 0
602  %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> undef, <vscale x 16 x i32> zeroinitializer
603  %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)
604  ret <vscale x 16 x i16> %v
605}
606
607declare <vscale x 32 x i16> @llvm.vp.sdiv.nxv32i16(<vscale x 32 x i16>, <vscale x 32 x i16>, <vscale x 32 x i1>, i32)
608
609define <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) {
610; CHECK-LABEL: vdiv_vv_nxv32i16:
611; CHECK:       # %bb.0:
612; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, mu
613; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t
614; CHECK-NEXT:    ret
615  %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)
616  ret <vscale x 32 x i16> %v
617}
618
619define <vscale x 32 x i16> @vdiv_vv_nxv32i16_unmasked(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, i32 zeroext %evl) {
620; CHECK-LABEL: vdiv_vv_nxv32i16_unmasked:
621; CHECK:       # %bb.0:
622; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, mu
623; CHECK-NEXT:    vdiv.vv v8, v8, v16
624; CHECK-NEXT:    ret
625  %head = insertelement <vscale x 32 x i1> undef, i1 true, i32 0
626  %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> undef, <vscale x 32 x i32> zeroinitializer
627  %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)
628  ret <vscale x 32 x i16> %v
629}
630
631define <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) {
632; CHECK-LABEL: vdiv_vx_nxv32i16:
633; CHECK:       # %bb.0:
634; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu
635; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
636; CHECK-NEXT:    ret
637  %elt.head = insertelement <vscale x 32 x i16> undef, i16 %b, i32 0
638  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> undef, <vscale x 32 x i32> zeroinitializer
639  %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)
640  ret <vscale x 32 x i16> %v
641}
642
643define <vscale x 32 x i16> @vdiv_vx_nxv32i16_unmasked(<vscale x 32 x i16> %va, i16 %b, i32 zeroext %evl) {
644; CHECK-LABEL: vdiv_vx_nxv32i16_unmasked:
645; CHECK:       # %bb.0:
646; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu
647; CHECK-NEXT:    vdiv.vx v8, v8, a0
648; CHECK-NEXT:    ret
649  %elt.head = insertelement <vscale x 32 x i16> undef, i16 %b, i32 0
650  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> undef, <vscale x 32 x i32> zeroinitializer
651  %head = insertelement <vscale x 32 x i1> undef, i1 true, i32 0
652  %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> undef, <vscale x 32 x i32> zeroinitializer
653  %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)
654  ret <vscale x 32 x i16> %v
655}
656
657declare <vscale x 1 x i32> @llvm.vp.sdiv.nxv1i32(<vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i1>, i32)
658
659define <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) {
660; CHECK-LABEL: vdiv_vv_nxv1i32:
661; CHECK:       # %bb.0:
662; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, mu
663; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
664; CHECK-NEXT:    ret
665  %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)
666  ret <vscale x 1 x i32> %v
667}
668
669define <vscale x 1 x i32> @vdiv_vv_nxv1i32_unmasked(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, i32 zeroext %evl) {
670; CHECK-LABEL: vdiv_vv_nxv1i32_unmasked:
671; CHECK:       # %bb.0:
672; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, mu
673; CHECK-NEXT:    vdiv.vv v8, v8, v9
674; CHECK-NEXT:    ret
675  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
676  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
677  %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)
678  ret <vscale x 1 x i32> %v
679}
680
681define <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) {
682; CHECK-LABEL: vdiv_vx_nxv1i32:
683; CHECK:       # %bb.0:
684; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu
685; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
686; CHECK-NEXT:    ret
687  %elt.head = insertelement <vscale x 1 x i32> undef, i32 %b, i32 0
688  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> undef, <vscale x 1 x i32> zeroinitializer
689  %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)
690  ret <vscale x 1 x i32> %v
691}
692
693define <vscale x 1 x i32> @vdiv_vx_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 %b, i32 zeroext %evl) {
694; CHECK-LABEL: vdiv_vx_nxv1i32_unmasked:
695; CHECK:       # %bb.0:
696; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu
697; CHECK-NEXT:    vdiv.vx v8, v8, a0
698; CHECK-NEXT:    ret
699  %elt.head = insertelement <vscale x 1 x i32> undef, i32 %b, i32 0
700  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> undef, <vscale x 1 x i32> zeroinitializer
701  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
702  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
703  %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)
704  ret <vscale x 1 x i32> %v
705}
706
707declare <vscale x 2 x i32> @llvm.vp.sdiv.nxv2i32(<vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i1>, i32)
708
709define <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) {
710; CHECK-LABEL: vdiv_vv_nxv2i32:
711; CHECK:       # %bb.0:
712; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, mu
713; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
714; CHECK-NEXT:    ret
715  %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)
716  ret <vscale x 2 x i32> %v
717}
718
719define <vscale x 2 x i32> @vdiv_vv_nxv2i32_unmasked(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, i32 zeroext %evl) {
720; CHECK-LABEL: vdiv_vv_nxv2i32_unmasked:
721; CHECK:       # %bb.0:
722; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, mu
723; CHECK-NEXT:    vdiv.vv v8, v8, v9
724; CHECK-NEXT:    ret
725  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
726  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
727  %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)
728  ret <vscale x 2 x i32> %v
729}
730
731define <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) {
732; CHECK-LABEL: vdiv_vx_nxv2i32:
733; CHECK:       # %bb.0:
734; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu
735; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
736; CHECK-NEXT:    ret
737  %elt.head = insertelement <vscale x 2 x i32> undef, i32 %b, i32 0
738  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer
739  %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)
740  ret <vscale x 2 x i32> %v
741}
742
743define <vscale x 2 x i32> @vdiv_vx_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {
744; CHECK-LABEL: vdiv_vx_nxv2i32_unmasked:
745; CHECK:       # %bb.0:
746; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu
747; CHECK-NEXT:    vdiv.vx v8, v8, a0
748; CHECK-NEXT:    ret
749  %elt.head = insertelement <vscale x 2 x i32> undef, i32 %b, i32 0
750  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> undef, <vscale x 2 x i32> zeroinitializer
751  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
752  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
753  %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)
754  ret <vscale x 2 x i32> %v
755}
756
757declare <vscale x 4 x i32> @llvm.vp.sdiv.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i1>, i32)
758
759define <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) {
760; CHECK-LABEL: vdiv_vv_nxv4i32:
761; CHECK:       # %bb.0:
762; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, mu
763; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t
764; CHECK-NEXT:    ret
765  %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)
766  ret <vscale x 4 x i32> %v
767}
768
769define <vscale x 4 x i32> @vdiv_vv_nxv4i32_unmasked(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, i32 zeroext %evl) {
770; CHECK-LABEL: vdiv_vv_nxv4i32_unmasked:
771; CHECK:       # %bb.0:
772; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, mu
773; CHECK-NEXT:    vdiv.vv v8, v8, v10
774; CHECK-NEXT:    ret
775  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
776  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
777  %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)
778  ret <vscale x 4 x i32> %v
779}
780
781define <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) {
782; CHECK-LABEL: vdiv_vx_nxv4i32:
783; CHECK:       # %bb.0:
784; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu
785; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
786; CHECK-NEXT:    ret
787  %elt.head = insertelement <vscale x 4 x i32> undef, i32 %b, i32 0
788  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> undef, <vscale x 4 x i32> zeroinitializer
789  %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)
790  ret <vscale x 4 x i32> %v
791}
792
793define <vscale x 4 x i32> @vdiv_vx_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 %b, i32 zeroext %evl) {
794; CHECK-LABEL: vdiv_vx_nxv4i32_unmasked:
795; CHECK:       # %bb.0:
796; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu
797; CHECK-NEXT:    vdiv.vx v8, v8, a0
798; CHECK-NEXT:    ret
799  %elt.head = insertelement <vscale x 4 x i32> undef, i32 %b, i32 0
800  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> undef, <vscale x 4 x i32> zeroinitializer
801  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
802  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
803  %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)
804  ret <vscale x 4 x i32> %v
805}
806
807declare <vscale x 8 x i32> @llvm.vp.sdiv.nxv8i32(<vscale x 8 x i32>, <vscale x 8 x i32>, <vscale x 8 x i1>, i32)
808
809define <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) {
810; CHECK-LABEL: vdiv_vv_nxv8i32:
811; CHECK:       # %bb.0:
812; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, mu
813; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t
814; CHECK-NEXT:    ret
815  %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)
816  ret <vscale x 8 x i32> %v
817}
818
819define <vscale x 8 x i32> @vdiv_vv_nxv8i32_unmasked(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, i32 zeroext %evl) {
820; CHECK-LABEL: vdiv_vv_nxv8i32_unmasked:
821; CHECK:       # %bb.0:
822; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, mu
823; CHECK-NEXT:    vdiv.vv v8, v8, v12
824; CHECK-NEXT:    ret
825  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
826  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
827  %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)
828  ret <vscale x 8 x i32> %v
829}
830
831define <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) {
832; CHECK-LABEL: vdiv_vx_nxv8i32:
833; CHECK:       # %bb.0:
834; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu
835; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
836; CHECK-NEXT:    ret
837  %elt.head = insertelement <vscale x 8 x i32> undef, i32 %b, i32 0
838  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> undef, <vscale x 8 x i32> zeroinitializer
839  %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)
840  ret <vscale x 8 x i32> %v
841}
842
843define <vscale x 8 x i32> @vdiv_vx_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 %b, i32 zeroext %evl) {
844; CHECK-LABEL: vdiv_vx_nxv8i32_unmasked:
845; CHECK:       # %bb.0:
846; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu
847; CHECK-NEXT:    vdiv.vx v8, v8, a0
848; CHECK-NEXT:    ret
849  %elt.head = insertelement <vscale x 8 x i32> undef, i32 %b, i32 0
850  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> undef, <vscale x 8 x i32> zeroinitializer
851  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
852  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
853  %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)
854  ret <vscale x 8 x i32> %v
855}
856
857declare <vscale x 16 x i32> @llvm.vp.sdiv.nxv16i32(<vscale x 16 x i32>, <vscale x 16 x i32>, <vscale x 16 x i1>, i32)
858
859define <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) {
860; CHECK-LABEL: vdiv_vv_nxv16i32:
861; CHECK:       # %bb.0:
862; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, mu
863; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t
864; CHECK-NEXT:    ret
865  %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)
866  ret <vscale x 16 x i32> %v
867}
868
869define <vscale x 16 x i32> @vdiv_vv_nxv16i32_unmasked(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, i32 zeroext %evl) {
870; CHECK-LABEL: vdiv_vv_nxv16i32_unmasked:
871; CHECK:       # %bb.0:
872; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, mu
873; CHECK-NEXT:    vdiv.vv v8, v8, v16
874; CHECK-NEXT:    ret
875  %head = insertelement <vscale x 16 x i1> undef, i1 true, i32 0
876  %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> undef, <vscale x 16 x i32> zeroinitializer
877  %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)
878  ret <vscale x 16 x i32> %v
879}
880
881define <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) {
882; CHECK-LABEL: vdiv_vx_nxv16i32:
883; CHECK:       # %bb.0:
884; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu
885; CHECK-NEXT:    vdiv.vx v8, v8, a0, v0.t
886; CHECK-NEXT:    ret
887  %elt.head = insertelement <vscale x 16 x i32> undef, i32 %b, i32 0
888  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> undef, <vscale x 16 x i32> zeroinitializer
889  %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)
890  ret <vscale x 16 x i32> %v
891}
892
893define <vscale x 16 x i32> @vdiv_vx_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 %b, i32 zeroext %evl) {
894; CHECK-LABEL: vdiv_vx_nxv16i32_unmasked:
895; CHECK:       # %bb.0:
896; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu
897; CHECK-NEXT:    vdiv.vx v8, v8, a0
898; CHECK-NEXT:    ret
899  %elt.head = insertelement <vscale x 16 x i32> undef, i32 %b, i32 0
900  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> undef, <vscale x 16 x i32> zeroinitializer
901  %head = insertelement <vscale x 16 x i1> undef, i1 true, i32 0
902  %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> undef, <vscale x 16 x i32> zeroinitializer
903  %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)
904  ret <vscale x 16 x i32> %v
905}
906
907declare <vscale x 1 x i64> @llvm.vp.sdiv.nxv1i64(<vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i1>, i32)
908
909define <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) {
910; CHECK-LABEL: vdiv_vv_nxv1i64:
911; CHECK:       # %bb.0:
912; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, mu
913; CHECK-NEXT:    vdiv.vv v8, v8, v9, v0.t
914; CHECK-NEXT:    ret
915  %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)
916  ret <vscale x 1 x i64> %v
917}
918
919define <vscale x 1 x i64> @vdiv_vv_nxv1i64_unmasked(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, i32 zeroext %evl) {
920; CHECK-LABEL: vdiv_vv_nxv1i64_unmasked:
921; CHECK:       # %bb.0:
922; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, mu
923; CHECK-NEXT:    vdiv.vv v8, v8, v9
924; CHECK-NEXT:    ret
925  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
926  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
927  %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)
928  ret <vscale x 1 x i64> %v
929}
930
931define <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) {
932; RV32-LABEL: vdiv_vx_nxv1i64:
933; RV32:       # %bb.0:
934; RV32-NEXT:    addi sp, sp, -16
935; RV32-NEXT:    .cfi_def_cfa_offset 16
936; RV32-NEXT:    sw a1, 12(sp)
937; RV32-NEXT:    sw a0, 8(sp)
938; RV32-NEXT:    vsetvli a0, zero, e64, m1, ta, mu
939; RV32-NEXT:    addi a0, sp, 8
940; RV32-NEXT:    vlse64.v v25, (a0), zero
941; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, mu
942; RV32-NEXT:    vdiv.vv v8, v8, v25, v0.t
943; RV32-NEXT:    addi sp, sp, 16
944; RV32-NEXT:    ret
945;
946; RV64-LABEL: vdiv_vx_nxv1i64:
947; RV64:       # %bb.0:
948; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, mu
949; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t
950; RV64-NEXT:    ret
951  %elt.head = insertelement <vscale x 1 x i64> undef, i64 %b, i32 0
952  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> undef, <vscale x 1 x i32> zeroinitializer
953  %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)
954  ret <vscale x 1 x i64> %v
955}
956
957define <vscale x 1 x i64> @vdiv_vx_nxv1i64_unmasked(<vscale x 1 x i64> %va, i64 %b, i32 zeroext %evl) {
958; RV32-LABEL: vdiv_vx_nxv1i64_unmasked:
959; RV32:       # %bb.0:
960; RV32-NEXT:    addi sp, sp, -16
961; RV32-NEXT:    .cfi_def_cfa_offset 16
962; RV32-NEXT:    sw a1, 12(sp)
963; RV32-NEXT:    sw a0, 8(sp)
964; RV32-NEXT:    vsetvli a0, zero, e64, m1, ta, mu
965; RV32-NEXT:    addi a0, sp, 8
966; RV32-NEXT:    vlse64.v v25, (a0), zero
967; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, mu
968; RV32-NEXT:    vdiv.vv v8, v8, v25
969; RV32-NEXT:    addi sp, sp, 16
970; RV32-NEXT:    ret
971;
972; RV64-LABEL: vdiv_vx_nxv1i64_unmasked:
973; RV64:       # %bb.0:
974; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, mu
975; RV64-NEXT:    vdiv.vx v8, v8, a0
976; RV64-NEXT:    ret
977  %elt.head = insertelement <vscale x 1 x i64> undef, i64 %b, i32 0
978  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> undef, <vscale x 1 x i32> zeroinitializer
979  %head = insertelement <vscale x 1 x i1> undef, i1 true, i32 0
980  %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> undef, <vscale x 1 x i32> zeroinitializer
981  %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)
982  ret <vscale x 1 x i64> %v
983}
984
985declare <vscale x 2 x i64> @llvm.vp.sdiv.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i1>, i32)
986
987define <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) {
988; CHECK-LABEL: vdiv_vv_nxv2i64:
989; CHECK:       # %bb.0:
990; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, mu
991; CHECK-NEXT:    vdiv.vv v8, v8, v10, v0.t
992; CHECK-NEXT:    ret
993  %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)
994  ret <vscale x 2 x i64> %v
995}
996
997define <vscale x 2 x i64> @vdiv_vv_nxv2i64_unmasked(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, i32 zeroext %evl) {
998; CHECK-LABEL: vdiv_vv_nxv2i64_unmasked:
999; CHECK:       # %bb.0:
1000; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, mu
1001; CHECK-NEXT:    vdiv.vv v8, v8, v10
1002; CHECK-NEXT:    ret
1003  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
1004  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
1005  %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)
1006  ret <vscale x 2 x i64> %v
1007}
1008
1009define <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) {
1010; RV32-LABEL: vdiv_vx_nxv2i64:
1011; RV32:       # %bb.0:
1012; RV32-NEXT:    addi sp, sp, -16
1013; RV32-NEXT:    .cfi_def_cfa_offset 16
1014; RV32-NEXT:    sw a1, 12(sp)
1015; RV32-NEXT:    sw a0, 8(sp)
1016; RV32-NEXT:    vsetvli a0, zero, e64, m2, ta, mu
1017; RV32-NEXT:    addi a0, sp, 8
1018; RV32-NEXT:    vlse64.v v26, (a0), zero
1019; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, mu
1020; RV32-NEXT:    vdiv.vv v8, v8, v26, v0.t
1021; RV32-NEXT:    addi sp, sp, 16
1022; RV32-NEXT:    ret
1023;
1024; RV64-LABEL: vdiv_vx_nxv2i64:
1025; RV64:       # %bb.0:
1026; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, mu
1027; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t
1028; RV64-NEXT:    ret
1029  %elt.head = insertelement <vscale x 2 x i64> undef, i64 %b, i32 0
1030  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> undef, <vscale x 2 x i32> zeroinitializer
1031  %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)
1032  ret <vscale x 2 x i64> %v
1033}
1034
1035define <vscale x 2 x i64> @vdiv_vx_nxv2i64_unmasked(<vscale x 2 x i64> %va, i64 %b, i32 zeroext %evl) {
1036; RV32-LABEL: vdiv_vx_nxv2i64_unmasked:
1037; RV32:       # %bb.0:
1038; RV32-NEXT:    addi sp, sp, -16
1039; RV32-NEXT:    .cfi_def_cfa_offset 16
1040; RV32-NEXT:    sw a1, 12(sp)
1041; RV32-NEXT:    sw a0, 8(sp)
1042; RV32-NEXT:    vsetvli a0, zero, e64, m2, ta, mu
1043; RV32-NEXT:    addi a0, sp, 8
1044; RV32-NEXT:    vlse64.v v26, (a0), zero
1045; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, mu
1046; RV32-NEXT:    vdiv.vv v8, v8, v26
1047; RV32-NEXT:    addi sp, sp, 16
1048; RV32-NEXT:    ret
1049;
1050; RV64-LABEL: vdiv_vx_nxv2i64_unmasked:
1051; RV64:       # %bb.0:
1052; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, mu
1053; RV64-NEXT:    vdiv.vx v8, v8, a0
1054; RV64-NEXT:    ret
1055  %elt.head = insertelement <vscale x 2 x i64> undef, i64 %b, i32 0
1056  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> undef, <vscale x 2 x i32> zeroinitializer
1057  %head = insertelement <vscale x 2 x i1> undef, i1 true, i32 0
1058  %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> undef, <vscale x 2 x i32> zeroinitializer
1059  %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)
1060  ret <vscale x 2 x i64> %v
1061}
1062
1063declare <vscale x 4 x i64> @llvm.vp.sdiv.nxv4i64(<vscale x 4 x i64>, <vscale x 4 x i64>, <vscale x 4 x i1>, i32)
1064
1065define <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) {
1066; CHECK-LABEL: vdiv_vv_nxv4i64:
1067; CHECK:       # %bb.0:
1068; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, mu
1069; CHECK-NEXT:    vdiv.vv v8, v8, v12, v0.t
1070; CHECK-NEXT:    ret
1071  %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)
1072  ret <vscale x 4 x i64> %v
1073}
1074
1075define <vscale x 4 x i64> @vdiv_vv_nxv4i64_unmasked(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, i32 zeroext %evl) {
1076; CHECK-LABEL: vdiv_vv_nxv4i64_unmasked:
1077; CHECK:       # %bb.0:
1078; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, mu
1079; CHECK-NEXT:    vdiv.vv v8, v8, v12
1080; CHECK-NEXT:    ret
1081  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
1082  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
1083  %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)
1084  ret <vscale x 4 x i64> %v
1085}
1086
1087define <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) {
1088; RV32-LABEL: vdiv_vx_nxv4i64:
1089; RV32:       # %bb.0:
1090; RV32-NEXT:    addi sp, sp, -16
1091; RV32-NEXT:    .cfi_def_cfa_offset 16
1092; RV32-NEXT:    sw a1, 12(sp)
1093; RV32-NEXT:    sw a0, 8(sp)
1094; RV32-NEXT:    vsetvli a0, zero, e64, m4, ta, mu
1095; RV32-NEXT:    addi a0, sp, 8
1096; RV32-NEXT:    vlse64.v v28, (a0), zero
1097; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, mu
1098; RV32-NEXT:    vdiv.vv v8, v8, v28, v0.t
1099; RV32-NEXT:    addi sp, sp, 16
1100; RV32-NEXT:    ret
1101;
1102; RV64-LABEL: vdiv_vx_nxv4i64:
1103; RV64:       # %bb.0:
1104; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, mu
1105; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t
1106; RV64-NEXT:    ret
1107  %elt.head = insertelement <vscale x 4 x i64> undef, i64 %b, i32 0
1108  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> undef, <vscale x 4 x i32> zeroinitializer
1109  %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)
1110  ret <vscale x 4 x i64> %v
1111}
1112
1113define <vscale x 4 x i64> @vdiv_vx_nxv4i64_unmasked(<vscale x 4 x i64> %va, i64 %b, i32 zeroext %evl) {
1114; RV32-LABEL: vdiv_vx_nxv4i64_unmasked:
1115; RV32:       # %bb.0:
1116; RV32-NEXT:    addi sp, sp, -16
1117; RV32-NEXT:    .cfi_def_cfa_offset 16
1118; RV32-NEXT:    sw a1, 12(sp)
1119; RV32-NEXT:    sw a0, 8(sp)
1120; RV32-NEXT:    vsetvli a0, zero, e64, m4, ta, mu
1121; RV32-NEXT:    addi a0, sp, 8
1122; RV32-NEXT:    vlse64.v v28, (a0), zero
1123; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, mu
1124; RV32-NEXT:    vdiv.vv v8, v8, v28
1125; RV32-NEXT:    addi sp, sp, 16
1126; RV32-NEXT:    ret
1127;
1128; RV64-LABEL: vdiv_vx_nxv4i64_unmasked:
1129; RV64:       # %bb.0:
1130; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, mu
1131; RV64-NEXT:    vdiv.vx v8, v8, a0
1132; RV64-NEXT:    ret
1133  %elt.head = insertelement <vscale x 4 x i64> undef, i64 %b, i32 0
1134  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> undef, <vscale x 4 x i32> zeroinitializer
1135  %head = insertelement <vscale x 4 x i1> undef, i1 true, i32 0
1136  %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> undef, <vscale x 4 x i32> zeroinitializer
1137  %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)
1138  ret <vscale x 4 x i64> %v
1139}
1140
1141declare <vscale x 8 x i64> @llvm.vp.sdiv.nxv8i64(<vscale x 8 x i64>, <vscale x 8 x i64>, <vscale x 8 x i1>, i32)
1142
1143define <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) {
1144; CHECK-LABEL: vdiv_vv_nxv8i64:
1145; CHECK:       # %bb.0:
1146; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, mu
1147; CHECK-NEXT:    vdiv.vv v8, v8, v16, v0.t
1148; CHECK-NEXT:    ret
1149  %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)
1150  ret <vscale x 8 x i64> %v
1151}
1152
1153define <vscale x 8 x i64> @vdiv_vv_nxv8i64_unmasked(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, i32 zeroext %evl) {
1154; CHECK-LABEL: vdiv_vv_nxv8i64_unmasked:
1155; CHECK:       # %bb.0:
1156; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, mu
1157; CHECK-NEXT:    vdiv.vv v8, v8, v16
1158; CHECK-NEXT:    ret
1159  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
1160  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
1161  %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)
1162  ret <vscale x 8 x i64> %v
1163}
1164
1165define <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) {
1166; RV32-LABEL: vdiv_vx_nxv8i64:
1167; RV32:       # %bb.0:
1168; RV32-NEXT:    addi sp, sp, -16
1169; RV32-NEXT:    .cfi_def_cfa_offset 16
1170; RV32-NEXT:    sw a1, 12(sp)
1171; RV32-NEXT:    sw a0, 8(sp)
1172; RV32-NEXT:    vsetvli a0, zero, e64, m8, ta, mu
1173; RV32-NEXT:    addi a0, sp, 8
1174; RV32-NEXT:    vlse64.v v16, (a0), zero
1175; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, mu
1176; RV32-NEXT:    vdiv.vv v8, v8, v16, v0.t
1177; RV32-NEXT:    addi sp, sp, 16
1178; RV32-NEXT:    ret
1179;
1180; RV64-LABEL: vdiv_vx_nxv8i64:
1181; RV64:       # %bb.0:
1182; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, mu
1183; RV64-NEXT:    vdiv.vx v8, v8, a0, v0.t
1184; RV64-NEXT:    ret
1185  %elt.head = insertelement <vscale x 8 x i64> undef, i64 %b, i32 0
1186  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> undef, <vscale x 8 x i32> zeroinitializer
1187  %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)
1188  ret <vscale x 8 x i64> %v
1189}
1190
1191define <vscale x 8 x i64> @vdiv_vx_nxv8i64_unmasked(<vscale x 8 x i64> %va, i64 %b, i32 zeroext %evl) {
1192; RV32-LABEL: vdiv_vx_nxv8i64_unmasked:
1193; RV32:       # %bb.0:
1194; RV32-NEXT:    addi sp, sp, -16
1195; RV32-NEXT:    .cfi_def_cfa_offset 16
1196; RV32-NEXT:    sw a1, 12(sp)
1197; RV32-NEXT:    sw a0, 8(sp)
1198; RV32-NEXT:    vsetvli a0, zero, e64, m8, ta, mu
1199; RV32-NEXT:    addi a0, sp, 8
1200; RV32-NEXT:    vlse64.v v16, (a0), zero
1201; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, mu
1202; RV32-NEXT:    vdiv.vv v8, v8, v16
1203; RV32-NEXT:    addi sp, sp, 16
1204; RV32-NEXT:    ret
1205;
1206; RV64-LABEL: vdiv_vx_nxv8i64_unmasked:
1207; RV64:       # %bb.0:
1208; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, mu
1209; RV64-NEXT:    vdiv.vx v8, v8, a0
1210; RV64-NEXT:    ret
1211  %elt.head = insertelement <vscale x 8 x i64> undef, i64 %b, i32 0
1212  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> undef, <vscale x 8 x i32> zeroinitializer
1213  %head = insertelement <vscale x 8 x i1> undef, i1 true, i32 0
1214  %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> undef, <vscale x 8 x i32> zeroinitializer
1215  %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)
1216  ret <vscale x 8 x i64> %v
1217}
1218