xref: /llvm-project/llvm/test/CodeGen/RISCV/rvv/vor-vp.ll (revision 36e4176f1d83d04cdebb4e1870561099b2478d80)
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
6
7declare <vscale x 8 x i7> @llvm.vp.or.nxv8i7(<vscale x 8 x i7>, <vscale x 8 x i7>, <vscale x 8 x i1>, i32)
8
9define <vscale x 8 x i7> @vor_vx_nxv8i7(<vscale x 8 x i7> %a, i7 signext %b, <vscale x 8 x i1> %mask, i32 zeroext %evl) {
10; CHECK-LABEL: vor_vx_nxv8i7:
11; CHECK:       # %bb.0:
12; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
13; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
14; CHECK-NEXT:    ret
15  %elt.head = insertelement <vscale x 8 x i7> poison, i7 %b, i32 0
16  %vb = shufflevector <vscale x 8 x i7> %elt.head, <vscale x 8 x i7> poison, <vscale x 8 x i32> zeroinitializer
17  %v = call <vscale x 8 x i7> @llvm.vp.or.nxv8i7(<vscale x 8 x i7> %a, <vscale x 8 x i7> %vb, <vscale x 8 x i1> %mask, i32 %evl)
18  ret <vscale x 8 x i7> %v
19}
20
21declare <vscale x 1 x i8> @llvm.vp.or.nxv1i8(<vscale x 1 x i8>, <vscale x 1 x i8>, <vscale x 1 x i1>, i32)
22
23define <vscale x 1 x i8> @vor_vv_nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
24; CHECK-LABEL: vor_vv_nxv1i8:
25; CHECK:       # %bb.0:
26; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
27; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
28; CHECK-NEXT:    ret
29  %v = call <vscale x 1 x i8> @llvm.vp.or.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> %m, i32 %evl)
30  ret <vscale x 1 x i8> %v
31}
32
33define <vscale x 1 x i8> @vor_vv_nxv1i8_unmasked(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, i32 zeroext %evl) {
34; CHECK-LABEL: vor_vv_nxv1i8_unmasked:
35; CHECK:       # %bb.0:
36; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
37; CHECK-NEXT:    vor.vv v8, v8, v9
38; CHECK-NEXT:    ret
39  %v = call <vscale x 1 x i8> @llvm.vp.or.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)
40  ret <vscale x 1 x i8> %v
41}
42
43define <vscale x 1 x i8> @vor_vx_nxv1i8(<vscale x 1 x i8> %va, i8 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
44; CHECK-LABEL: vor_vx_nxv1i8:
45; CHECK:       # %bb.0:
46; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
47; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
48; CHECK-NEXT:    ret
49  %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 0
50  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
51  %v = call <vscale x 1 x i8> @llvm.vp.or.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> %m, i32 %evl)
52  ret <vscale x 1 x i8> %v
53}
54
55define <vscale x 1 x i8> @vor_vx_nxv1i8_unmasked(<vscale x 1 x i8> %va, i8 %b, i32 zeroext %evl) {
56; CHECK-LABEL: vor_vx_nxv1i8_unmasked:
57; CHECK:       # %bb.0:
58; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
59; CHECK-NEXT:    vor.vx v8, v8, a0
60; CHECK-NEXT:    ret
61  %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 0
62  %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
63  %v = call <vscale x 1 x i8> @llvm.vp.or.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)
64  ret <vscale x 1 x i8> %v
65}
66
67define <vscale x 1 x i8> @vor_vi_nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
68; CHECK-LABEL: vor_vi_nxv1i8:
69; CHECK:       # %bb.0:
70; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
71; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
72; CHECK-NEXT:    ret
73  %v = call <vscale x 1 x i8> @llvm.vp.or.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> splat (i8 5), <vscale x 1 x i1> %m, i32 %evl)
74  ret <vscale x 1 x i8> %v
75}
76
77define <vscale x 1 x i8> @vor_vi_nxv1i8_unmasked(<vscale x 1 x i8> %va, i32 zeroext %evl) {
78; CHECK-LABEL: vor_vi_nxv1i8_unmasked:
79; CHECK:       # %bb.0:
80; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
81; CHECK-NEXT:    vor.vi v8, v8, 5
82; CHECK-NEXT:    ret
83  %v = call <vscale x 1 x i8> @llvm.vp.or.nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i8> splat (i8 5), <vscale x 1 x i1> splat (i1 true), i32 %evl)
84  ret <vscale x 1 x i8> %v
85}
86
87declare <vscale x 2 x i8> @llvm.vp.or.nxv2i8(<vscale x 2 x i8>, <vscale x 2 x i8>, <vscale x 2 x i1>, i32)
88
89define <vscale x 2 x i8> @vor_vv_nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
90; CHECK-LABEL: vor_vv_nxv2i8:
91; CHECK:       # %bb.0:
92; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
93; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
94; CHECK-NEXT:    ret
95  %v = call <vscale x 2 x i8> @llvm.vp.or.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> %m, i32 %evl)
96  ret <vscale x 2 x i8> %v
97}
98
99define <vscale x 2 x i8> @vor_vv_nxv2i8_unmasked(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, i32 zeroext %evl) {
100; CHECK-LABEL: vor_vv_nxv2i8_unmasked:
101; CHECK:       # %bb.0:
102; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
103; CHECK-NEXT:    vor.vv v8, v8, v9
104; CHECK-NEXT:    ret
105  %v = call <vscale x 2 x i8> @llvm.vp.or.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)
106  ret <vscale x 2 x i8> %v
107}
108
109define <vscale x 2 x i8> @vor_vx_nxv2i8(<vscale x 2 x i8> %va, i8 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
110; CHECK-LABEL: vor_vx_nxv2i8:
111; CHECK:       # %bb.0:
112; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
113; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
114; CHECK-NEXT:    ret
115  %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0
116  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer
117  %v = call <vscale x 2 x i8> @llvm.vp.or.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> %m, i32 %evl)
118  ret <vscale x 2 x i8> %v
119}
120
121define <vscale x 2 x i8> @vor_vx_nxv2i8_unmasked(<vscale x 2 x i8> %va, i8 %b, i32 zeroext %evl) {
122; CHECK-LABEL: vor_vx_nxv2i8_unmasked:
123; CHECK:       # %bb.0:
124; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
125; CHECK-NEXT:    vor.vx v8, v8, a0
126; CHECK-NEXT:    ret
127  %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0
128  %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer
129  %v = call <vscale x 2 x i8> @llvm.vp.or.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)
130  ret <vscale x 2 x i8> %v
131}
132
133define <vscale x 2 x i8> @vor_vi_nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
134; CHECK-LABEL: vor_vi_nxv2i8:
135; CHECK:       # %bb.0:
136; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
137; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
138; CHECK-NEXT:    ret
139  %v = call <vscale x 2 x i8> @llvm.vp.or.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> splat (i8 5), <vscale x 2 x i1> %m, i32 %evl)
140  ret <vscale x 2 x i8> %v
141}
142
143define <vscale x 2 x i8> @vor_vi_nxv2i8_unmasked(<vscale x 2 x i8> %va, i32 zeroext %evl) {
144; CHECK-LABEL: vor_vi_nxv2i8_unmasked:
145; CHECK:       # %bb.0:
146; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
147; CHECK-NEXT:    vor.vi v8, v8, 5
148; CHECK-NEXT:    ret
149  %v = call <vscale x 2 x i8> @llvm.vp.or.nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i8> splat (i8 5), <vscale x 2 x i1> splat (i1 true), i32 %evl)
150  ret <vscale x 2 x i8> %v
151}
152
153declare <vscale x 4 x i8> @llvm.vp.or.nxv4i8(<vscale x 4 x i8>, <vscale x 4 x i8>, <vscale x 4 x i1>, i32)
154
155define <vscale x 4 x i8> @vor_vv_nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
156; CHECK-LABEL: vor_vv_nxv4i8:
157; CHECK:       # %bb.0:
158; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
159; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
160; CHECK-NEXT:    ret
161  %v = call <vscale x 4 x i8> @llvm.vp.or.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> %m, i32 %evl)
162  ret <vscale x 4 x i8> %v
163}
164
165define <vscale x 4 x i8> @vor_vv_nxv4i8_unmasked(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, i32 zeroext %evl) {
166; CHECK-LABEL: vor_vv_nxv4i8_unmasked:
167; CHECK:       # %bb.0:
168; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
169; CHECK-NEXT:    vor.vv v8, v8, v9
170; CHECK-NEXT:    ret
171  %v = call <vscale x 4 x i8> @llvm.vp.or.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)
172  ret <vscale x 4 x i8> %v
173}
174
175define <vscale x 4 x i8> @vor_vx_nxv4i8(<vscale x 4 x i8> %va, i8 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
176; CHECK-LABEL: vor_vx_nxv4i8:
177; CHECK:       # %bb.0:
178; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
179; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
180; CHECK-NEXT:    ret
181  %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0
182  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
183  %v = call <vscale x 4 x i8> @llvm.vp.or.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> %m, i32 %evl)
184  ret <vscale x 4 x i8> %v
185}
186
187define <vscale x 4 x i8> @vor_vx_nxv4i8_unmasked(<vscale x 4 x i8> %va, i8 %b, i32 zeroext %evl) {
188; CHECK-LABEL: vor_vx_nxv4i8_unmasked:
189; CHECK:       # %bb.0:
190; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
191; CHECK-NEXT:    vor.vx v8, v8, a0
192; CHECK-NEXT:    ret
193  %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0
194  %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
195  %v = call <vscale x 4 x i8> @llvm.vp.or.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)
196  ret <vscale x 4 x i8> %v
197}
198
199define <vscale x 4 x i8> @vor_vi_nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
200; CHECK-LABEL: vor_vi_nxv4i8:
201; CHECK:       # %bb.0:
202; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
203; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
204; CHECK-NEXT:    ret
205  %v = call <vscale x 4 x i8> @llvm.vp.or.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> splat (i8 5), <vscale x 4 x i1> %m, i32 %evl)
206  ret <vscale x 4 x i8> %v
207}
208
209define <vscale x 4 x i8> @vor_vi_nxv4i8_unmasked(<vscale x 4 x i8> %va, i32 zeroext %evl) {
210; CHECK-LABEL: vor_vi_nxv4i8_unmasked:
211; CHECK:       # %bb.0:
212; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
213; CHECK-NEXT:    vor.vi v8, v8, 5
214; CHECK-NEXT:    ret
215  %v = call <vscale x 4 x i8> @llvm.vp.or.nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i8> splat (i8 5), <vscale x 4 x i1> splat (i1 true), i32 %evl)
216  ret <vscale x 4 x i8> %v
217}
218
219declare <vscale x 8 x i8> @llvm.vp.or.nxv8i8(<vscale x 8 x i8>, <vscale x 8 x i8>, <vscale x 8 x i1>, i32)
220
221define <vscale x 8 x i8> @vor_vv_nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
222; CHECK-LABEL: vor_vv_nxv8i8:
223; CHECK:       # %bb.0:
224; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
225; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
226; CHECK-NEXT:    ret
227  %v = call <vscale x 8 x i8> @llvm.vp.or.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> %m, i32 %evl)
228  ret <vscale x 8 x i8> %v
229}
230
231define <vscale x 8 x i8> @vor_vv_nxv8i8_unmasked(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, i32 zeroext %evl) {
232; CHECK-LABEL: vor_vv_nxv8i8_unmasked:
233; CHECK:       # %bb.0:
234; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
235; CHECK-NEXT:    vor.vv v8, v8, v9
236; CHECK-NEXT:    ret
237  %v = call <vscale x 8 x i8> @llvm.vp.or.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)
238  ret <vscale x 8 x i8> %v
239}
240
241define <vscale x 8 x i8> @vor_vx_nxv8i8(<vscale x 8 x i8> %va, i8 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
242; CHECK-LABEL: vor_vx_nxv8i8:
243; CHECK:       # %bb.0:
244; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
245; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
246; CHECK-NEXT:    ret
247  %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0
248  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
249  %v = call <vscale x 8 x i8> @llvm.vp.or.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> %m, i32 %evl)
250  ret <vscale x 8 x i8> %v
251}
252
253define <vscale x 8 x i8> @vor_vx_nxv8i8_unmasked(<vscale x 8 x i8> %va, i8 %b, i32 zeroext %evl) {
254; CHECK-LABEL: vor_vx_nxv8i8_unmasked:
255; CHECK:       # %bb.0:
256; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
257; CHECK-NEXT:    vor.vx v8, v8, a0
258; CHECK-NEXT:    ret
259  %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0
260  %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
261  %v = call <vscale x 8 x i8> @llvm.vp.or.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)
262  ret <vscale x 8 x i8> %v
263}
264
265define <vscale x 8 x i8> @vor_vi_nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
266; CHECK-LABEL: vor_vi_nxv8i8:
267; CHECK:       # %bb.0:
268; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
269; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
270; CHECK-NEXT:    ret
271  %v = call <vscale x 8 x i8> @llvm.vp.or.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> splat (i8 5), <vscale x 8 x i1> %m, i32 %evl)
272  ret <vscale x 8 x i8> %v
273}
274
275define <vscale x 8 x i8> @vor_vi_nxv8i8_unmasked(<vscale x 8 x i8> %va, i32 zeroext %evl) {
276; CHECK-LABEL: vor_vi_nxv8i8_unmasked:
277; CHECK:       # %bb.0:
278; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
279; CHECK-NEXT:    vor.vi v8, v8, 5
280; CHECK-NEXT:    ret
281  %v = call <vscale x 8 x i8> @llvm.vp.or.nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i8> splat (i8 5), <vscale x 8 x i1> splat (i1 true), i32 %evl)
282  ret <vscale x 8 x i8> %v
283}
284
285declare <vscale x 16 x i8> @llvm.vp.or.nxv16i8(<vscale x 16 x i8>, <vscale x 16 x i8>, <vscale x 16 x i1>, i32)
286
287define <vscale x 16 x i8> @vor_vv_nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
288; CHECK-LABEL: vor_vv_nxv16i8:
289; CHECK:       # %bb.0:
290; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
291; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
292; CHECK-NEXT:    ret
293  %v = call <vscale x 16 x i8> @llvm.vp.or.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> %m, i32 %evl)
294  ret <vscale x 16 x i8> %v
295}
296
297define <vscale x 16 x i8> @vor_vv_nxv16i8_unmasked(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, i32 zeroext %evl) {
298; CHECK-LABEL: vor_vv_nxv16i8_unmasked:
299; CHECK:       # %bb.0:
300; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
301; CHECK-NEXT:    vor.vv v8, v8, v10
302; CHECK-NEXT:    ret
303  %v = call <vscale x 16 x i8> @llvm.vp.or.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)
304  ret <vscale x 16 x i8> %v
305}
306
307define <vscale x 16 x i8> @vor_vx_nxv16i8(<vscale x 16 x i8> %va, i8 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
308; CHECK-LABEL: vor_vx_nxv16i8:
309; CHECK:       # %bb.0:
310; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
311; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
312; CHECK-NEXT:    ret
313  %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0
314  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
315  %v = call <vscale x 16 x i8> @llvm.vp.or.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> %m, i32 %evl)
316  ret <vscale x 16 x i8> %v
317}
318
319define <vscale x 16 x i8> @vor_vx_nxv16i8_unmasked(<vscale x 16 x i8> %va, i8 %b, i32 zeroext %evl) {
320; CHECK-LABEL: vor_vx_nxv16i8_unmasked:
321; CHECK:       # %bb.0:
322; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
323; CHECK-NEXT:    vor.vx v8, v8, a0
324; CHECK-NEXT:    ret
325  %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0
326  %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
327  %v = call <vscale x 16 x i8> @llvm.vp.or.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)
328  ret <vscale x 16 x i8> %v
329}
330
331define <vscale x 16 x i8> @vor_vi_nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {
332; CHECK-LABEL: vor_vi_nxv16i8:
333; CHECK:       # %bb.0:
334; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
335; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
336; CHECK-NEXT:    ret
337  %v = call <vscale x 16 x i8> @llvm.vp.or.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> splat (i8 5), <vscale x 16 x i1> %m, i32 %evl)
338  ret <vscale x 16 x i8> %v
339}
340
341define <vscale x 16 x i8> @vor_vi_nxv16i8_unmasked(<vscale x 16 x i8> %va, i32 zeroext %evl) {
342; CHECK-LABEL: vor_vi_nxv16i8_unmasked:
343; CHECK:       # %bb.0:
344; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
345; CHECK-NEXT:    vor.vi v8, v8, 5
346; CHECK-NEXT:    ret
347  %v = call <vscale x 16 x i8> @llvm.vp.or.nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i8> splat (i8 5), <vscale x 16 x i1> splat (i1 true), i32 %evl)
348  ret <vscale x 16 x i8> %v
349}
350
351declare <vscale x 32 x i8> @llvm.vp.or.nxv32i8(<vscale x 32 x i8>, <vscale x 32 x i8>, <vscale x 32 x i1>, i32)
352
353define <vscale x 32 x i8> @vor_vv_nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
354; CHECK-LABEL: vor_vv_nxv32i8:
355; CHECK:       # %bb.0:
356; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
357; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
358; CHECK-NEXT:    ret
359  %v = call <vscale x 32 x i8> @llvm.vp.or.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> %m, i32 %evl)
360  ret <vscale x 32 x i8> %v
361}
362
363define <vscale x 32 x i8> @vor_vv_nxv32i8_unmasked(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, i32 zeroext %evl) {
364; CHECK-LABEL: vor_vv_nxv32i8_unmasked:
365; CHECK:       # %bb.0:
366; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
367; CHECK-NEXT:    vor.vv v8, v8, v12
368; CHECK-NEXT:    ret
369  %v = call <vscale x 32 x i8> @llvm.vp.or.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %b, <vscale x 32 x i1> splat (i1 true), i32 %evl)
370  ret <vscale x 32 x i8> %v
371}
372
373define <vscale x 32 x i8> @vor_vx_nxv32i8(<vscale x 32 x i8> %va, i8 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
374; CHECK-LABEL: vor_vx_nxv32i8:
375; CHECK:       # %bb.0:
376; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
377; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
378; CHECK-NEXT:    ret
379  %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0
380  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
381  %v = call <vscale x 32 x i8> @llvm.vp.or.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> %m, i32 %evl)
382  ret <vscale x 32 x i8> %v
383}
384
385define <vscale x 32 x i8> @vor_vx_nxv32i8_unmasked(<vscale x 32 x i8> %va, i8 %b, i32 zeroext %evl) {
386; CHECK-LABEL: vor_vx_nxv32i8_unmasked:
387; CHECK:       # %bb.0:
388; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
389; CHECK-NEXT:    vor.vx v8, v8, a0
390; CHECK-NEXT:    ret
391  %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0
392  %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
393  %v = call <vscale x 32 x i8> @llvm.vp.or.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> %vb, <vscale x 32 x i1> splat (i1 true), i32 %evl)
394  ret <vscale x 32 x i8> %v
395}
396
397define <vscale x 32 x i8> @vor_vi_nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {
398; CHECK-LABEL: vor_vi_nxv32i8:
399; CHECK:       # %bb.0:
400; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
401; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
402; CHECK-NEXT:    ret
403  %v = call <vscale x 32 x i8> @llvm.vp.or.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> splat (i8 5), <vscale x 32 x i1> %m, i32 %evl)
404  ret <vscale x 32 x i8> %v
405}
406
407define <vscale x 32 x i8> @vor_vi_nxv32i8_unmasked(<vscale x 32 x i8> %va, i32 zeroext %evl) {
408; CHECK-LABEL: vor_vi_nxv32i8_unmasked:
409; CHECK:       # %bb.0:
410; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
411; CHECK-NEXT:    vor.vi v8, v8, 5
412; CHECK-NEXT:    ret
413  %v = call <vscale x 32 x i8> @llvm.vp.or.nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i8> splat (i8 5), <vscale x 32 x i1> splat (i1 true), i32 %evl)
414  ret <vscale x 32 x i8> %v
415}
416
417declare <vscale x 64 x i8> @llvm.vp.or.nxv64i8(<vscale x 64 x i8>, <vscale x 64 x i8>, <vscale x 64 x i1>, i32)
418
419define <vscale x 64 x i8> @vor_vv_nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {
420; CHECK-LABEL: vor_vv_nxv64i8:
421; CHECK:       # %bb.0:
422; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
423; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
424; CHECK-NEXT:    ret
425  %v = call <vscale x 64 x i8> @llvm.vp.or.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> %m, i32 %evl)
426  ret <vscale x 64 x i8> %v
427}
428
429define <vscale x 64 x i8> @vor_vv_nxv64i8_unmasked(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, i32 zeroext %evl) {
430; CHECK-LABEL: vor_vv_nxv64i8_unmasked:
431; CHECK:       # %bb.0:
432; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
433; CHECK-NEXT:    vor.vv v8, v8, v16
434; CHECK-NEXT:    ret
435  %v = call <vscale x 64 x i8> @llvm.vp.or.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %b, <vscale x 64 x i1> splat (i1 true), i32 %evl)
436  ret <vscale x 64 x i8> %v
437}
438
439define <vscale x 64 x i8> @vor_vx_nxv64i8(<vscale x 64 x i8> %va, i8 %b, <vscale x 64 x i1> %m, i32 zeroext %evl) {
440; CHECK-LABEL: vor_vx_nxv64i8:
441; CHECK:       # %bb.0:
442; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
443; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
444; CHECK-NEXT:    ret
445  %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0
446  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
447  %v = call <vscale x 64 x i8> @llvm.vp.or.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> %m, i32 %evl)
448  ret <vscale x 64 x i8> %v
449}
450
451define <vscale x 64 x i8> @vor_vx_nxv64i8_unmasked(<vscale x 64 x i8> %va, i8 %b, i32 zeroext %evl) {
452; CHECK-LABEL: vor_vx_nxv64i8_unmasked:
453; CHECK:       # %bb.0:
454; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
455; CHECK-NEXT:    vor.vx v8, v8, a0
456; CHECK-NEXT:    ret
457  %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0
458  %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
459  %v = call <vscale x 64 x i8> @llvm.vp.or.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> %vb, <vscale x 64 x i1> splat (i1 true), i32 %evl)
460  ret <vscale x 64 x i8> %v
461}
462
463define <vscale x 64 x i8> @vor_vi_nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i1> %m, i32 zeroext %evl) {
464; CHECK-LABEL: vor_vi_nxv64i8:
465; CHECK:       # %bb.0:
466; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
467; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
468; CHECK-NEXT:    ret
469  %v = call <vscale x 64 x i8> @llvm.vp.or.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> splat (i8 5), <vscale x 64 x i1> %m, i32 %evl)
470  ret <vscale x 64 x i8> %v
471}
472
473define <vscale x 64 x i8> @vor_vi_nxv64i8_unmasked(<vscale x 64 x i8> %va, i32 zeroext %evl) {
474; CHECK-LABEL: vor_vi_nxv64i8_unmasked:
475; CHECK:       # %bb.0:
476; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
477; CHECK-NEXT:    vor.vi v8, v8, 5
478; CHECK-NEXT:    ret
479  %v = call <vscale x 64 x i8> @llvm.vp.or.nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i8> splat (i8 5), <vscale x 64 x i1> splat (i1 true), i32 %evl)
480  ret <vscale x 64 x i8> %v
481}
482
483declare <vscale x 1 x i16> @llvm.vp.or.nxv1i16(<vscale x 1 x i16>, <vscale x 1 x i16>, <vscale x 1 x i1>, i32)
484
485define <vscale x 1 x i16> @vor_vv_nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
486; CHECK-LABEL: vor_vv_nxv1i16:
487; CHECK:       # %bb.0:
488; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
489; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
490; CHECK-NEXT:    ret
491  %v = call <vscale x 1 x i16> @llvm.vp.or.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> %m, i32 %evl)
492  ret <vscale x 1 x i16> %v
493}
494
495define <vscale x 1 x i16> @vor_vv_nxv1i16_unmasked(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, i32 zeroext %evl) {
496; CHECK-LABEL: vor_vv_nxv1i16_unmasked:
497; CHECK:       # %bb.0:
498; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
499; CHECK-NEXT:    vor.vv v8, v8, v9
500; CHECK-NEXT:    ret
501  %v = call <vscale x 1 x i16> @llvm.vp.or.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)
502  ret <vscale x 1 x i16> %v
503}
504
505define <vscale x 1 x i16> @vor_vx_nxv1i16(<vscale x 1 x i16> %va, i16 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
506; CHECK-LABEL: vor_vx_nxv1i16:
507; CHECK:       # %bb.0:
508; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
509; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
510; CHECK-NEXT:    ret
511  %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0
512  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
513  %v = call <vscale x 1 x i16> @llvm.vp.or.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> %m, i32 %evl)
514  ret <vscale x 1 x i16> %v
515}
516
517define <vscale x 1 x i16> @vor_vx_nxv1i16_unmasked(<vscale x 1 x i16> %va, i16 %b, i32 zeroext %evl) {
518; CHECK-LABEL: vor_vx_nxv1i16_unmasked:
519; CHECK:       # %bb.0:
520; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
521; CHECK-NEXT:    vor.vx v8, v8, a0
522; CHECK-NEXT:    ret
523  %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0
524  %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
525  %v = call <vscale x 1 x i16> @llvm.vp.or.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)
526  ret <vscale x 1 x i16> %v
527}
528
529define <vscale x 1 x i16> @vor_vi_nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
530; CHECK-LABEL: vor_vi_nxv1i16:
531; CHECK:       # %bb.0:
532; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
533; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
534; CHECK-NEXT:    ret
535  %v = call <vscale x 1 x i16> @llvm.vp.or.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> splat (i16 5), <vscale x 1 x i1> %m, i32 %evl)
536  ret <vscale x 1 x i16> %v
537}
538
539define <vscale x 1 x i16> @vor_vi_nxv1i16_unmasked(<vscale x 1 x i16> %va, i32 zeroext %evl) {
540; CHECK-LABEL: vor_vi_nxv1i16_unmasked:
541; CHECK:       # %bb.0:
542; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
543; CHECK-NEXT:    vor.vi v8, v8, 5
544; CHECK-NEXT:    ret
545  %v = call <vscale x 1 x i16> @llvm.vp.or.nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i16> splat (i16 5), <vscale x 1 x i1> splat (i1 true), i32 %evl)
546  ret <vscale x 1 x i16> %v
547}
548
549declare <vscale x 2 x i16> @llvm.vp.or.nxv2i16(<vscale x 2 x i16>, <vscale x 2 x i16>, <vscale x 2 x i1>, i32)
550
551define <vscale x 2 x i16> @vor_vv_nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
552; CHECK-LABEL: vor_vv_nxv2i16:
553; CHECK:       # %bb.0:
554; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
555; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
556; CHECK-NEXT:    ret
557  %v = call <vscale x 2 x i16> @llvm.vp.or.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> %m, i32 %evl)
558  ret <vscale x 2 x i16> %v
559}
560
561define <vscale x 2 x i16> @vor_vv_nxv2i16_unmasked(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, i32 zeroext %evl) {
562; CHECK-LABEL: vor_vv_nxv2i16_unmasked:
563; CHECK:       # %bb.0:
564; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
565; CHECK-NEXT:    vor.vv v8, v8, v9
566; CHECK-NEXT:    ret
567  %v = call <vscale x 2 x i16> @llvm.vp.or.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)
568  ret <vscale x 2 x i16> %v
569}
570
571define <vscale x 2 x i16> @vor_vx_nxv2i16(<vscale x 2 x i16> %va, i16 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
572; CHECK-LABEL: vor_vx_nxv2i16:
573; CHECK:       # %bb.0:
574; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
575; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
576; CHECK-NEXT:    ret
577  %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0
578  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
579  %v = call <vscale x 2 x i16> @llvm.vp.or.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> %m, i32 %evl)
580  ret <vscale x 2 x i16> %v
581}
582
583define <vscale x 2 x i16> @vor_vx_nxv2i16_unmasked(<vscale x 2 x i16> %va, i16 %b, i32 zeroext %evl) {
584; CHECK-LABEL: vor_vx_nxv2i16_unmasked:
585; CHECK:       # %bb.0:
586; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
587; CHECK-NEXT:    vor.vx v8, v8, a0
588; CHECK-NEXT:    ret
589  %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0
590  %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
591  %v = call <vscale x 2 x i16> @llvm.vp.or.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)
592  ret <vscale x 2 x i16> %v
593}
594
595define <vscale x 2 x i16> @vor_vi_nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
596; CHECK-LABEL: vor_vi_nxv2i16:
597; CHECK:       # %bb.0:
598; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
599; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
600; CHECK-NEXT:    ret
601  %v = call <vscale x 2 x i16> @llvm.vp.or.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> splat (i16 5), <vscale x 2 x i1> %m, i32 %evl)
602  ret <vscale x 2 x i16> %v
603}
604
605define <vscale x 2 x i16> @vor_vi_nxv2i16_unmasked(<vscale x 2 x i16> %va, i32 zeroext %evl) {
606; CHECK-LABEL: vor_vi_nxv2i16_unmasked:
607; CHECK:       # %bb.0:
608; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
609; CHECK-NEXT:    vor.vi v8, v8, 5
610; CHECK-NEXT:    ret
611  %v = call <vscale x 2 x i16> @llvm.vp.or.nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i16> splat (i16 5), <vscale x 2 x i1> splat (i1 true), i32 %evl)
612  ret <vscale x 2 x i16> %v
613}
614
615declare <vscale x 4 x i16> @llvm.vp.or.nxv4i16(<vscale x 4 x i16>, <vscale x 4 x i16>, <vscale x 4 x i1>, i32)
616
617define <vscale x 4 x i16> @vor_vv_nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
618; CHECK-LABEL: vor_vv_nxv4i16:
619; CHECK:       # %bb.0:
620; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
621; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
622; CHECK-NEXT:    ret
623  %v = call <vscale x 4 x i16> @llvm.vp.or.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> %m, i32 %evl)
624  ret <vscale x 4 x i16> %v
625}
626
627define <vscale x 4 x i16> @vor_vv_nxv4i16_unmasked(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, i32 zeroext %evl) {
628; CHECK-LABEL: vor_vv_nxv4i16_unmasked:
629; CHECK:       # %bb.0:
630; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
631; CHECK-NEXT:    vor.vv v8, v8, v9
632; CHECK-NEXT:    ret
633  %v = call <vscale x 4 x i16> @llvm.vp.or.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)
634  ret <vscale x 4 x i16> %v
635}
636
637define <vscale x 4 x i16> @vor_vx_nxv4i16(<vscale x 4 x i16> %va, i16 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
638; CHECK-LABEL: vor_vx_nxv4i16:
639; CHECK:       # %bb.0:
640; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
641; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
642; CHECK-NEXT:    ret
643  %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0
644  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
645  %v = call <vscale x 4 x i16> @llvm.vp.or.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> %m, i32 %evl)
646  ret <vscale x 4 x i16> %v
647}
648
649define <vscale x 4 x i16> @vor_vx_nxv4i16_unmasked(<vscale x 4 x i16> %va, i16 %b, i32 zeroext %evl) {
650; CHECK-LABEL: vor_vx_nxv4i16_unmasked:
651; CHECK:       # %bb.0:
652; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
653; CHECK-NEXT:    vor.vx v8, v8, a0
654; CHECK-NEXT:    ret
655  %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0
656  %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
657  %v = call <vscale x 4 x i16> @llvm.vp.or.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)
658  ret <vscale x 4 x i16> %v
659}
660
661define <vscale x 4 x i16> @vor_vi_nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
662; CHECK-LABEL: vor_vi_nxv4i16:
663; CHECK:       # %bb.0:
664; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
665; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
666; CHECK-NEXT:    ret
667  %v = call <vscale x 4 x i16> @llvm.vp.or.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> splat (i16 5), <vscale x 4 x i1> %m, i32 %evl)
668  ret <vscale x 4 x i16> %v
669}
670
671define <vscale x 4 x i16> @vor_vi_nxv4i16_unmasked(<vscale x 4 x i16> %va, i32 zeroext %evl) {
672; CHECK-LABEL: vor_vi_nxv4i16_unmasked:
673; CHECK:       # %bb.0:
674; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
675; CHECK-NEXT:    vor.vi v8, v8, 5
676; CHECK-NEXT:    ret
677  %v = call <vscale x 4 x i16> @llvm.vp.or.nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i16> splat (i16 5), <vscale x 4 x i1> splat (i1 true), i32 %evl)
678  ret <vscale x 4 x i16> %v
679}
680
681declare <vscale x 8 x i16> @llvm.vp.or.nxv8i16(<vscale x 8 x i16>, <vscale x 8 x i16>, <vscale x 8 x i1>, i32)
682
683define <vscale x 8 x i16> @vor_vv_nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
684; CHECK-LABEL: vor_vv_nxv8i16:
685; CHECK:       # %bb.0:
686; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
687; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
688; CHECK-NEXT:    ret
689  %v = call <vscale x 8 x i16> @llvm.vp.or.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> %m, i32 %evl)
690  ret <vscale x 8 x i16> %v
691}
692
693define <vscale x 8 x i16> @vor_vv_nxv8i16_unmasked(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, i32 zeroext %evl) {
694; CHECK-LABEL: vor_vv_nxv8i16_unmasked:
695; CHECK:       # %bb.0:
696; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
697; CHECK-NEXT:    vor.vv v8, v8, v10
698; CHECK-NEXT:    ret
699  %v = call <vscale x 8 x i16> @llvm.vp.or.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)
700  ret <vscale x 8 x i16> %v
701}
702
703define <vscale x 8 x i16> @vor_vx_nxv8i16(<vscale x 8 x i16> %va, i16 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
704; CHECK-LABEL: vor_vx_nxv8i16:
705; CHECK:       # %bb.0:
706; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
707; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
708; CHECK-NEXT:    ret
709  %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0
710  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
711  %v = call <vscale x 8 x i16> @llvm.vp.or.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> %m, i32 %evl)
712  ret <vscale x 8 x i16> %v
713}
714
715define <vscale x 8 x i16> @vor_vx_nxv8i16_unmasked(<vscale x 8 x i16> %va, i16 %b, i32 zeroext %evl) {
716; CHECK-LABEL: vor_vx_nxv8i16_unmasked:
717; CHECK:       # %bb.0:
718; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
719; CHECK-NEXT:    vor.vx v8, v8, a0
720; CHECK-NEXT:    ret
721  %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0
722  %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
723  %v = call <vscale x 8 x i16> @llvm.vp.or.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)
724  ret <vscale x 8 x i16> %v
725}
726
727define <vscale x 8 x i16> @vor_vi_nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
728; CHECK-LABEL: vor_vi_nxv8i16:
729; CHECK:       # %bb.0:
730; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
731; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
732; CHECK-NEXT:    ret
733  %v = call <vscale x 8 x i16> @llvm.vp.or.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> splat (i16 5), <vscale x 8 x i1> %m, i32 %evl)
734  ret <vscale x 8 x i16> %v
735}
736
737define <vscale x 8 x i16> @vor_vi_nxv8i16_unmasked(<vscale x 8 x i16> %va, i32 zeroext %evl) {
738; CHECK-LABEL: vor_vi_nxv8i16_unmasked:
739; CHECK:       # %bb.0:
740; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
741; CHECK-NEXT:    vor.vi v8, v8, 5
742; CHECK-NEXT:    ret
743  %v = call <vscale x 8 x i16> @llvm.vp.or.nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i16> splat (i16 5), <vscale x 8 x i1> splat (i1 true), i32 %evl)
744  ret <vscale x 8 x i16> %v
745}
746
747declare <vscale x 16 x i16> @llvm.vp.or.nxv16i16(<vscale x 16 x i16>, <vscale x 16 x i16>, <vscale x 16 x i1>, i32)
748
749define <vscale x 16 x i16> @vor_vv_nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
750; CHECK-LABEL: vor_vv_nxv16i16:
751; CHECK:       # %bb.0:
752; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
753; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
754; CHECK-NEXT:    ret
755  %v = call <vscale x 16 x i16> @llvm.vp.or.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> %m, i32 %evl)
756  ret <vscale x 16 x i16> %v
757}
758
759define <vscale x 16 x i16> @vor_vv_nxv16i16_unmasked(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, i32 zeroext %evl) {
760; CHECK-LABEL: vor_vv_nxv16i16_unmasked:
761; CHECK:       # %bb.0:
762; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
763; CHECK-NEXT:    vor.vv v8, v8, v12
764; CHECK-NEXT:    ret
765  %v = call <vscale x 16 x i16> @llvm.vp.or.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)
766  ret <vscale x 16 x i16> %v
767}
768
769define <vscale x 16 x i16> @vor_vx_nxv16i16(<vscale x 16 x i16> %va, i16 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
770; CHECK-LABEL: vor_vx_nxv16i16:
771; CHECK:       # %bb.0:
772; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
773; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
774; CHECK-NEXT:    ret
775  %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0
776  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
777  %v = call <vscale x 16 x i16> @llvm.vp.or.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> %m, i32 %evl)
778  ret <vscale x 16 x i16> %v
779}
780
781define <vscale x 16 x i16> @vor_vx_nxv16i16_unmasked(<vscale x 16 x i16> %va, i16 %b, i32 zeroext %evl) {
782; CHECK-LABEL: vor_vx_nxv16i16_unmasked:
783; CHECK:       # %bb.0:
784; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
785; CHECK-NEXT:    vor.vx v8, v8, a0
786; CHECK-NEXT:    ret
787  %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0
788  %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
789  %v = call <vscale x 16 x i16> @llvm.vp.or.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)
790  ret <vscale x 16 x i16> %v
791}
792
793define <vscale x 16 x i16> @vor_vi_nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {
794; CHECK-LABEL: vor_vi_nxv16i16:
795; CHECK:       # %bb.0:
796; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
797; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
798; CHECK-NEXT:    ret
799  %v = call <vscale x 16 x i16> @llvm.vp.or.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> splat (i16 5), <vscale x 16 x i1> %m, i32 %evl)
800  ret <vscale x 16 x i16> %v
801}
802
803define <vscale x 16 x i16> @vor_vi_nxv16i16_unmasked(<vscale x 16 x i16> %va, i32 zeroext %evl) {
804; CHECK-LABEL: vor_vi_nxv16i16_unmasked:
805; CHECK:       # %bb.0:
806; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
807; CHECK-NEXT:    vor.vi v8, v8, 5
808; CHECK-NEXT:    ret
809  %v = call <vscale x 16 x i16> @llvm.vp.or.nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i16> splat (i16 5), <vscale x 16 x i1> splat (i1 true), i32 %evl)
810  ret <vscale x 16 x i16> %v
811}
812
813declare <vscale x 32 x i16> @llvm.vp.or.nxv32i16(<vscale x 32 x i16>, <vscale x 32 x i16>, <vscale x 32 x i1>, i32)
814
815define <vscale x 32 x i16> @vor_vv_nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
816; CHECK-LABEL: vor_vv_nxv32i16:
817; CHECK:       # %bb.0:
818; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
819; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
820; CHECK-NEXT:    ret
821  %v = call <vscale x 32 x i16> @llvm.vp.or.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> %m, i32 %evl)
822  ret <vscale x 32 x i16> %v
823}
824
825define <vscale x 32 x i16> @vor_vv_nxv32i16_unmasked(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, i32 zeroext %evl) {
826; CHECK-LABEL: vor_vv_nxv32i16_unmasked:
827; CHECK:       # %bb.0:
828; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
829; CHECK-NEXT:    vor.vv v8, v8, v16
830; CHECK-NEXT:    ret
831  %v = call <vscale x 32 x i16> @llvm.vp.or.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %b, <vscale x 32 x i1> splat (i1 true), i32 %evl)
832  ret <vscale x 32 x i16> %v
833}
834
835define <vscale x 32 x i16> @vor_vx_nxv32i16(<vscale x 32 x i16> %va, i16 %b, <vscale x 32 x i1> %m, i32 zeroext %evl) {
836; CHECK-LABEL: vor_vx_nxv32i16:
837; CHECK:       # %bb.0:
838; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
839; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
840; CHECK-NEXT:    ret
841  %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0
842  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
843  %v = call <vscale x 32 x i16> @llvm.vp.or.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> %m, i32 %evl)
844  ret <vscale x 32 x i16> %v
845}
846
847define <vscale x 32 x i16> @vor_vx_nxv32i16_unmasked(<vscale x 32 x i16> %va, i16 %b, i32 zeroext %evl) {
848; CHECK-LABEL: vor_vx_nxv32i16_unmasked:
849; CHECK:       # %bb.0:
850; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
851; CHECK-NEXT:    vor.vx v8, v8, a0
852; CHECK-NEXT:    ret
853  %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0
854  %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
855  %v = call <vscale x 32 x i16> @llvm.vp.or.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> %vb, <vscale x 32 x i1> splat (i1 true), i32 %evl)
856  ret <vscale x 32 x i16> %v
857}
858
859define <vscale x 32 x i16> @vor_vi_nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {
860; CHECK-LABEL: vor_vi_nxv32i16:
861; CHECK:       # %bb.0:
862; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
863; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
864; CHECK-NEXT:    ret
865  %v = call <vscale x 32 x i16> @llvm.vp.or.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> splat (i16 5), <vscale x 32 x i1> %m, i32 %evl)
866  ret <vscale x 32 x i16> %v
867}
868
869define <vscale x 32 x i16> @vor_vi_nxv32i16_unmasked(<vscale x 32 x i16> %va, i32 zeroext %evl) {
870; CHECK-LABEL: vor_vi_nxv32i16_unmasked:
871; CHECK:       # %bb.0:
872; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
873; CHECK-NEXT:    vor.vi v8, v8, 5
874; CHECK-NEXT:    ret
875  %v = call <vscale x 32 x i16> @llvm.vp.or.nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i16> splat (i16 5), <vscale x 32 x i1> splat (i1 true), i32 %evl)
876  ret <vscale x 32 x i16> %v
877}
878
879declare <vscale x 1 x i32> @llvm.vp.or.nxv1i32(<vscale x 1 x i32>, <vscale x 1 x i32>, <vscale x 1 x i1>, i32)
880
881define <vscale x 1 x i32> @vor_vv_nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
882; CHECK-LABEL: vor_vv_nxv1i32:
883; CHECK:       # %bb.0:
884; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
885; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
886; CHECK-NEXT:    ret
887  %v = call <vscale x 1 x i32> @llvm.vp.or.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> %m, i32 %evl)
888  ret <vscale x 1 x i32> %v
889}
890
891define <vscale x 1 x i32> @vor_vv_nxv1i32_unmasked(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, i32 zeroext %evl) {
892; CHECK-LABEL: vor_vv_nxv1i32_unmasked:
893; CHECK:       # %bb.0:
894; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
895; CHECK-NEXT:    vor.vv v8, v8, v9
896; CHECK-NEXT:    ret
897  %v = call <vscale x 1 x i32> @llvm.vp.or.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)
898  ret <vscale x 1 x i32> %v
899}
900
901define <vscale x 1 x i32> @vor_vx_nxv1i32(<vscale x 1 x i32> %va, i32 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
902; CHECK-LABEL: vor_vx_nxv1i32:
903; CHECK:       # %bb.0:
904; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
905; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
906; CHECK-NEXT:    ret
907  %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0
908  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
909  %v = call <vscale x 1 x i32> @llvm.vp.or.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> %m, i32 %evl)
910  ret <vscale x 1 x i32> %v
911}
912
913define <vscale x 1 x i32> @vor_vx_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 %b, i32 zeroext %evl) {
914; CHECK-LABEL: vor_vx_nxv1i32_unmasked:
915; CHECK:       # %bb.0:
916; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
917; CHECK-NEXT:    vor.vx v8, v8, a0
918; CHECK-NEXT:    ret
919  %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0
920  %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
921  %v = call <vscale x 1 x i32> @llvm.vp.or.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)
922  ret <vscale x 1 x i32> %v
923}
924
925define <vscale x 1 x i32> @vor_vi_nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
926; CHECK-LABEL: vor_vi_nxv1i32:
927; CHECK:       # %bb.0:
928; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
929; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
930; CHECK-NEXT:    ret
931  %v = call <vscale x 1 x i32> @llvm.vp.or.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> splat (i32 5), <vscale x 1 x i1> %m, i32 %evl)
932  ret <vscale x 1 x i32> %v
933}
934
935define <vscale x 1 x i32> @vor_vi_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 zeroext %evl) {
936; CHECK-LABEL: vor_vi_nxv1i32_unmasked:
937; CHECK:       # %bb.0:
938; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
939; CHECK-NEXT:    vor.vi v8, v8, 5
940; CHECK-NEXT:    ret
941  %v = call <vscale x 1 x i32> @llvm.vp.or.nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i32> splat (i32 5), <vscale x 1 x i1> splat (i1 true), i32 %evl)
942  ret <vscale x 1 x i32> %v
943}
944
945declare <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32>, <vscale x 2 x i32>, <vscale x 2 x i1>, i32)
946
947define <vscale x 2 x i32> @vor_vv_nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
948; CHECK-LABEL: vor_vv_nxv2i32:
949; CHECK:       # %bb.0:
950; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
951; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
952; CHECK-NEXT:    ret
953  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> %m, i32 %evl)
954  ret <vscale x 2 x i32> %v
955}
956
957define <vscale x 2 x i32> @vor_vv_nxv2i32_unmasked(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, i32 zeroext %evl) {
958; CHECK-LABEL: vor_vv_nxv2i32_unmasked:
959; CHECK:       # %bb.0:
960; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
961; CHECK-NEXT:    vor.vv v8, v8, v9
962; CHECK-NEXT:    ret
963  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)
964  ret <vscale x 2 x i32> %v
965}
966
967define <vscale x 2 x i32> @vor_vx_nxv2i32(<vscale x 2 x i32> %va, i32 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
968; CHECK-LABEL: vor_vx_nxv2i32:
969; CHECK:       # %bb.0:
970; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
971; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
972; CHECK-NEXT:    ret
973  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
974  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
975  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> %m, i32 %evl)
976  ret <vscale x 2 x i32> %v
977}
978
979define <vscale x 2 x i32> @vor_vx_nxv2i32_commute(<vscale x 2 x i32> %va, i32 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
980; CHECK-LABEL: vor_vx_nxv2i32_commute:
981; CHECK:       # %bb.0:
982; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
983; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
984; CHECK-NEXT:    ret
985  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
986  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
987  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %vb, <vscale x 2 x i32> %va, <vscale x 2 x i1> %m, i32 %evl)
988  ret <vscale x 2 x i32> %v
989}
990
991define <vscale x 2 x i32> @vor_vx_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {
992; CHECK-LABEL: vor_vx_nxv2i32_unmasked:
993; CHECK:       # %bb.0:
994; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
995; CHECK-NEXT:    vor.vx v8, v8, a0
996; CHECK-NEXT:    ret
997  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
998  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
999  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)
1000  ret <vscale x 2 x i32> %v
1001}
1002
1003define <vscale x 2 x i32> @vor_vx_nxv2i32_unmasked_commute(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {
1004; CHECK-LABEL: vor_vx_nxv2i32_unmasked_commute:
1005; CHECK:       # %bb.0:
1006; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1007; CHECK-NEXT:    vor.vx v8, v8, a0
1008; CHECK-NEXT:    ret
1009  %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
1010  %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
1011  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %vb, <vscale x 2 x i32> %va, <vscale x 2 x i1> splat (i1 true), i32 %evl)
1012  ret <vscale x 2 x i32> %v
1013}
1014
1015define <vscale x 2 x i32> @vor_vi_nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1016; CHECK-LABEL: vor_vi_nxv2i32:
1017; CHECK:       # %bb.0:
1018; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
1019; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1020; CHECK-NEXT:    ret
1021  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> splat (i32 5), <vscale x 2 x i1> %m, i32 %evl)
1022  ret <vscale x 2 x i32> %v
1023}
1024
1025define <vscale x 2 x i32> @vor_vi_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 zeroext %evl) {
1026; CHECK-LABEL: vor_vi_nxv2i32_unmasked:
1027; CHECK:       # %bb.0:
1028; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
1029; CHECK-NEXT:    vor.vi v8, v8, 5
1030; CHECK-NEXT:    ret
1031  %v = call <vscale x 2 x i32> @llvm.vp.or.nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i32> splat (i32 5), <vscale x 2 x i1> splat (i1 true), i32 %evl)
1032  ret <vscale x 2 x i32> %v
1033}
1034
1035declare <vscale x 4 x i32> @llvm.vp.or.nxv4i32(<vscale x 4 x i32>, <vscale x 4 x i32>, <vscale x 4 x i1>, i32)
1036
1037define <vscale x 4 x i32> @vor_vv_nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1038; CHECK-LABEL: vor_vv_nxv4i32:
1039; CHECK:       # %bb.0:
1040; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1041; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
1042; CHECK-NEXT:    ret
1043  %v = call <vscale x 4 x i32> @llvm.vp.or.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> %m, i32 %evl)
1044  ret <vscale x 4 x i32> %v
1045}
1046
1047define <vscale x 4 x i32> @vor_vv_nxv4i32_unmasked(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, i32 zeroext %evl) {
1048; CHECK-LABEL: vor_vv_nxv4i32_unmasked:
1049; CHECK:       # %bb.0:
1050; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1051; CHECK-NEXT:    vor.vv v8, v8, v10
1052; CHECK-NEXT:    ret
1053  %v = call <vscale x 4 x i32> @llvm.vp.or.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)
1054  ret <vscale x 4 x i32> %v
1055}
1056
1057define <vscale x 4 x i32> @vor_vx_nxv4i32(<vscale x 4 x i32> %va, i32 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1058; CHECK-LABEL: vor_vx_nxv4i32:
1059; CHECK:       # %bb.0:
1060; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
1061; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1062; CHECK-NEXT:    ret
1063  %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0
1064  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
1065  %v = call <vscale x 4 x i32> @llvm.vp.or.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> %m, i32 %evl)
1066  ret <vscale x 4 x i32> %v
1067}
1068
1069define <vscale x 4 x i32> @vor_vx_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 %b, i32 zeroext %evl) {
1070; CHECK-LABEL: vor_vx_nxv4i32_unmasked:
1071; CHECK:       # %bb.0:
1072; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
1073; CHECK-NEXT:    vor.vx v8, v8, a0
1074; CHECK-NEXT:    ret
1075  %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0
1076  %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
1077  %v = call <vscale x 4 x i32> @llvm.vp.or.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)
1078  ret <vscale x 4 x i32> %v
1079}
1080
1081define <vscale x 4 x i32> @vor_vi_nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1082; CHECK-LABEL: vor_vi_nxv4i32:
1083; CHECK:       # %bb.0:
1084; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1085; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1086; CHECK-NEXT:    ret
1087  %v = call <vscale x 4 x i32> @llvm.vp.or.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> splat (i32 5), <vscale x 4 x i1> %m, i32 %evl)
1088  ret <vscale x 4 x i32> %v
1089}
1090
1091define <vscale x 4 x i32> @vor_vi_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 zeroext %evl) {
1092; CHECK-LABEL: vor_vi_nxv4i32_unmasked:
1093; CHECK:       # %bb.0:
1094; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1095; CHECK-NEXT:    vor.vi v8, v8, 5
1096; CHECK-NEXT:    ret
1097  %v = call <vscale x 4 x i32> @llvm.vp.or.nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i32> splat (i32 5), <vscale x 4 x i1> splat (i1 true), i32 %evl)
1098  ret <vscale x 4 x i32> %v
1099}
1100
1101declare <vscale x 8 x i32> @llvm.vp.or.nxv8i32(<vscale x 8 x i32>, <vscale x 8 x i32>, <vscale x 8 x i1>, i32)
1102
1103define <vscale x 8 x i32> @vor_vv_nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1104; CHECK-LABEL: vor_vv_nxv8i32:
1105; CHECK:       # %bb.0:
1106; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1107; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
1108; CHECK-NEXT:    ret
1109  %v = call <vscale x 8 x i32> @llvm.vp.or.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> %m, i32 %evl)
1110  ret <vscale x 8 x i32> %v
1111}
1112
1113define <vscale x 8 x i32> @vor_vv_nxv8i32_unmasked(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, i32 zeroext %evl) {
1114; CHECK-LABEL: vor_vv_nxv8i32_unmasked:
1115; CHECK:       # %bb.0:
1116; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1117; CHECK-NEXT:    vor.vv v8, v8, v12
1118; CHECK-NEXT:    ret
1119  %v = call <vscale x 8 x i32> @llvm.vp.or.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)
1120  ret <vscale x 8 x i32> %v
1121}
1122
1123define <vscale x 8 x i32> @vor_vx_nxv8i32(<vscale x 8 x i32> %va, i32 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1124; CHECK-LABEL: vor_vx_nxv8i32:
1125; CHECK:       # %bb.0:
1126; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
1127; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1128; CHECK-NEXT:    ret
1129  %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0
1130  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
1131  %v = call <vscale x 8 x i32> @llvm.vp.or.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> %m, i32 %evl)
1132  ret <vscale x 8 x i32> %v
1133}
1134
1135define <vscale x 8 x i32> @vor_vx_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 %b, i32 zeroext %evl) {
1136; CHECK-LABEL: vor_vx_nxv8i32_unmasked:
1137; CHECK:       # %bb.0:
1138; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
1139; CHECK-NEXT:    vor.vx v8, v8, a0
1140; CHECK-NEXT:    ret
1141  %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0
1142  %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
1143  %v = call <vscale x 8 x i32> @llvm.vp.or.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)
1144  ret <vscale x 8 x i32> %v
1145}
1146
1147define <vscale x 8 x i32> @vor_vi_nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1148; CHECK-LABEL: vor_vi_nxv8i32:
1149; CHECK:       # %bb.0:
1150; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1151; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1152; CHECK-NEXT:    ret
1153  %v = call <vscale x 8 x i32> @llvm.vp.or.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> splat (i32 5), <vscale x 8 x i1> %m, i32 %evl)
1154  ret <vscale x 8 x i32> %v
1155}
1156
1157define <vscale x 8 x i32> @vor_vi_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 zeroext %evl) {
1158; CHECK-LABEL: vor_vi_nxv8i32_unmasked:
1159; CHECK:       # %bb.0:
1160; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1161; CHECK-NEXT:    vor.vi v8, v8, 5
1162; CHECK-NEXT:    ret
1163  %v = call <vscale x 8 x i32> @llvm.vp.or.nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i32> splat (i32 5), <vscale x 8 x i1> splat (i1 true), i32 %evl)
1164  ret <vscale x 8 x i32> %v
1165}
1166
1167declare <vscale x 10 x i32> @llvm.vp.or.nxv10i32(<vscale x 10 x i32>, <vscale x 10 x i32>, <vscale x 10 x i1>, i32)
1168
1169define <vscale x 10 x i32> @vor_vv_nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i32> %b, <vscale x 10 x i1> %m, i32 zeroext %evl) {
1170; CHECK-LABEL: vor_vv_nxv10i32:
1171; CHECK:       # %bb.0:
1172; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1173; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
1174; CHECK-NEXT:    ret
1175  %v = call <vscale x 10 x i32> @llvm.vp.or.nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i32> %b, <vscale x 10 x i1> %m, i32 %evl)
1176  ret <vscale x 10 x i32> %v
1177}
1178
1179define <vscale x 10 x i32> @vor_vv_nxv10i32_unmasked(<vscale x 10 x i32> %va, <vscale x 10 x i32> %b, i32 zeroext %evl) {
1180; CHECK-LABEL: vor_vv_nxv10i32_unmasked:
1181; CHECK:       # %bb.0:
1182; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1183; CHECK-NEXT:    vor.vv v8, v8, v16
1184; CHECK-NEXT:    ret
1185  %v = call <vscale x 10 x i32> @llvm.vp.or.nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i32> %b, <vscale x 10 x i1> splat (i1 true), i32 %evl)
1186  ret <vscale x 10 x i32> %v
1187}
1188
1189define <vscale x 10 x i32> @vor_vx_nxv10i32(<vscale x 10 x i32> %va, i32 %b, <vscale x 10 x i1> %m, i32 zeroext %evl) {
1190; CHECK-LABEL: vor_vx_nxv10i32:
1191; CHECK:       # %bb.0:
1192; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1193; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1194; CHECK-NEXT:    ret
1195  %elt.head = insertelement <vscale x 10 x i32> poison, i32 %b, i32 0
1196  %vb = shufflevector <vscale x 10 x i32> %elt.head, <vscale x 10 x i32> poison, <vscale x 10 x i32> zeroinitializer
1197  %v = call <vscale x 10 x i32> @llvm.vp.or.nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i32> %vb, <vscale x 10 x i1> %m, i32 %evl)
1198  ret <vscale x 10 x i32> %v
1199}
1200
1201define <vscale x 10 x i32> @vor_vx_nxv10i32_unmasked(<vscale x 10 x i32> %va, i32 %b, i32 zeroext %evl) {
1202; CHECK-LABEL: vor_vx_nxv10i32_unmasked:
1203; CHECK:       # %bb.0:
1204; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1205; CHECK-NEXT:    vor.vx v8, v8, a0
1206; CHECK-NEXT:    ret
1207  %elt.head = insertelement <vscale x 10 x i32> poison, i32 %b, i32 0
1208  %vb = shufflevector <vscale x 10 x i32> %elt.head, <vscale x 10 x i32> poison, <vscale x 10 x i32> zeroinitializer
1209  %v = call <vscale x 10 x i32> @llvm.vp.or.nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i32> %vb, <vscale x 10 x i1> splat (i1 true), i32 %evl)
1210  ret <vscale x 10 x i32> %v
1211}
1212
1213define <vscale x 10 x i32> @vor_vi_nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i1> %m, i32 zeroext %evl) {
1214; CHECK-LABEL: vor_vi_nxv10i32:
1215; CHECK:       # %bb.0:
1216; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1217; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1218; CHECK-NEXT:    ret
1219  %v = call <vscale x 10 x i32> @llvm.vp.or.nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i32> splat (i32 5), <vscale x 10 x i1> %m, i32 %evl)
1220  ret <vscale x 10 x i32> %v
1221}
1222
1223define <vscale x 10 x i32> @vor_vi_nxv10i32_unmasked(<vscale x 10 x i32> %va, i32 zeroext %evl) {
1224; CHECK-LABEL: vor_vi_nxv10i32_unmasked:
1225; CHECK:       # %bb.0:
1226; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1227; CHECK-NEXT:    vor.vi v8, v8, 5
1228; CHECK-NEXT:    ret
1229  %v = call <vscale x 10 x i32> @llvm.vp.or.nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i32> splat (i32 5), <vscale x 10 x i1> splat (i1 true), i32 %evl)
1230  ret <vscale x 10 x i32> %v
1231}
1232
1233declare <vscale x 16 x i32> @llvm.vp.or.nxv16i32(<vscale x 16 x i32>, <vscale x 16 x i32>, <vscale x 16 x i1>, i32)
1234
1235define <vscale x 16 x i32> @vor_vv_nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
1236; CHECK-LABEL: vor_vv_nxv16i32:
1237; CHECK:       # %bb.0:
1238; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1239; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
1240; CHECK-NEXT:    ret
1241  %v = call <vscale x 16 x i32> @llvm.vp.or.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> %m, i32 %evl)
1242  ret <vscale x 16 x i32> %v
1243}
1244
1245define <vscale x 16 x i32> @vor_vv_nxv16i32_unmasked(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, i32 zeroext %evl) {
1246; CHECK-LABEL: vor_vv_nxv16i32_unmasked:
1247; CHECK:       # %bb.0:
1248; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1249; CHECK-NEXT:    vor.vv v8, v8, v16
1250; CHECK-NEXT:    ret
1251  %v = call <vscale x 16 x i32> @llvm.vp.or.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %b, <vscale x 16 x i1> splat (i1 true), i32 %evl)
1252  ret <vscale x 16 x i32> %v
1253}
1254
1255define <vscale x 16 x i32> @vor_vx_nxv16i32(<vscale x 16 x i32> %va, i32 %b, <vscale x 16 x i1> %m, i32 zeroext %evl) {
1256; CHECK-LABEL: vor_vx_nxv16i32:
1257; CHECK:       # %bb.0:
1258; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1259; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1260; CHECK-NEXT:    ret
1261  %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0
1262  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
1263  %v = call <vscale x 16 x i32> @llvm.vp.or.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> %m, i32 %evl)
1264  ret <vscale x 16 x i32> %v
1265}
1266
1267define <vscale x 16 x i32> @vor_vx_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 %b, i32 zeroext %evl) {
1268; CHECK-LABEL: vor_vx_nxv16i32_unmasked:
1269; CHECK:       # %bb.0:
1270; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1271; CHECK-NEXT:    vor.vx v8, v8, a0
1272; CHECK-NEXT:    ret
1273  %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0
1274  %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
1275  %v = call <vscale x 16 x i32> @llvm.vp.or.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> %vb, <vscale x 16 x i1> splat (i1 true), i32 %evl)
1276  ret <vscale x 16 x i32> %v
1277}
1278
1279define <vscale x 16 x i32> @vor_vi_nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {
1280; CHECK-LABEL: vor_vi_nxv16i32:
1281; CHECK:       # %bb.0:
1282; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1283; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1284; CHECK-NEXT:    ret
1285  %v = call <vscale x 16 x i32> @llvm.vp.or.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> splat (i32 5), <vscale x 16 x i1> %m, i32 %evl)
1286  ret <vscale x 16 x i32> %v
1287}
1288
1289define <vscale x 16 x i32> @vor_vi_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 zeroext %evl) {
1290; CHECK-LABEL: vor_vi_nxv16i32_unmasked:
1291; CHECK:       # %bb.0:
1292; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1293; CHECK-NEXT:    vor.vi v8, v8, 5
1294; CHECK-NEXT:    ret
1295  %v = call <vscale x 16 x i32> @llvm.vp.or.nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i32> splat (i32 5), <vscale x 16 x i1> splat (i1 true), i32 %evl)
1296  ret <vscale x 16 x i32> %v
1297}
1298
1299declare <vscale x 1 x i64> @llvm.vp.or.nxv1i64(<vscale x 1 x i64>, <vscale x 1 x i64>, <vscale x 1 x i1>, i32)
1300
1301define <vscale x 1 x i64> @vor_vv_nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
1302; CHECK-LABEL: vor_vv_nxv1i64:
1303; CHECK:       # %bb.0:
1304; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1305; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
1306; CHECK-NEXT:    ret
1307  %v = call <vscale x 1 x i64> @llvm.vp.or.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> %m, i32 %evl)
1308  ret <vscale x 1 x i64> %v
1309}
1310
1311define <vscale x 1 x i64> @vor_vv_nxv1i64_unmasked(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, i32 zeroext %evl) {
1312; CHECK-LABEL: vor_vv_nxv1i64_unmasked:
1313; CHECK:       # %bb.0:
1314; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1315; CHECK-NEXT:    vor.vv v8, v8, v9
1316; CHECK-NEXT:    ret
1317  %v = call <vscale x 1 x i64> @llvm.vp.or.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %b, <vscale x 1 x i1> splat (i1 true), i32 %evl)
1318  ret <vscale x 1 x i64> %v
1319}
1320
1321define <vscale x 1 x i64> @vor_vx_nxv1i64(<vscale x 1 x i64> %va, i64 %b, <vscale x 1 x i1> %m, i32 zeroext %evl) {
1322; RV32-LABEL: vor_vx_nxv1i64:
1323; RV32:       # %bb.0:
1324; RV32-NEXT:    addi sp, sp, -16
1325; RV32-NEXT:    .cfi_def_cfa_offset 16
1326; RV32-NEXT:    sw a0, 8(sp)
1327; RV32-NEXT:    sw a1, 12(sp)
1328; RV32-NEXT:    addi a0, sp, 8
1329; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma
1330; RV32-NEXT:    vlse64.v v9, (a0), zero
1331; RV32-NEXT:    vor.vv v8, v8, v9, v0.t
1332; RV32-NEXT:    addi sp, sp, 16
1333; RV32-NEXT:    .cfi_def_cfa_offset 0
1334; RV32-NEXT:    ret
1335;
1336; RV64-LABEL: vor_vx_nxv1i64:
1337; RV64:       # %bb.0:
1338; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
1339; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1340; RV64-NEXT:    ret
1341  %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0
1342  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
1343  %v = call <vscale x 1 x i64> @llvm.vp.or.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> %m, i32 %evl)
1344  ret <vscale x 1 x i64> %v
1345}
1346
1347define <vscale x 1 x i64> @vor_vx_nxv1i64_unmasked(<vscale x 1 x i64> %va, i64 %b, i32 zeroext %evl) {
1348; RV32-LABEL: vor_vx_nxv1i64_unmasked:
1349; RV32:       # %bb.0:
1350; RV32-NEXT:    addi sp, sp, -16
1351; RV32-NEXT:    .cfi_def_cfa_offset 16
1352; RV32-NEXT:    sw a0, 8(sp)
1353; RV32-NEXT:    sw a1, 12(sp)
1354; RV32-NEXT:    addi a0, sp, 8
1355; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma
1356; RV32-NEXT:    vlse64.v v9, (a0), zero
1357; RV32-NEXT:    vor.vv v8, v8, v9
1358; RV32-NEXT:    addi sp, sp, 16
1359; RV32-NEXT:    .cfi_def_cfa_offset 0
1360; RV32-NEXT:    ret
1361;
1362; RV64-LABEL: vor_vx_nxv1i64_unmasked:
1363; RV64:       # %bb.0:
1364; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
1365; RV64-NEXT:    vor.vx v8, v8, a0
1366; RV64-NEXT:    ret
1367  %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0
1368  %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
1369  %v = call <vscale x 1 x i64> @llvm.vp.or.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> %vb, <vscale x 1 x i1> splat (i1 true), i32 %evl)
1370  ret <vscale x 1 x i64> %v
1371}
1372
1373define <vscale x 1 x i64> @vor_vi_nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
1374; CHECK-LABEL: vor_vi_nxv1i64:
1375; CHECK:       # %bb.0:
1376; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1377; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1378; CHECK-NEXT:    ret
1379  %v = call <vscale x 1 x i64> @llvm.vp.or.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> splat (i64 5), <vscale x 1 x i1> %m, i32 %evl)
1380  ret <vscale x 1 x i64> %v
1381}
1382
1383define <vscale x 1 x i64> @vor_vi_nxv1i64_unmasked(<vscale x 1 x i64> %va, i32 zeroext %evl) {
1384; CHECK-LABEL: vor_vi_nxv1i64_unmasked:
1385; CHECK:       # %bb.0:
1386; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1387; CHECK-NEXT:    vor.vi v8, v8, 5
1388; CHECK-NEXT:    ret
1389  %v = call <vscale x 1 x i64> @llvm.vp.or.nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i64> splat (i64 5), <vscale x 1 x i1> splat (i1 true), i32 %evl)
1390  ret <vscale x 1 x i64> %v
1391}
1392
1393declare <vscale x 2 x i64> @llvm.vp.or.nxv2i64(<vscale x 2 x i64>, <vscale x 2 x i64>, <vscale x 2 x i1>, i32)
1394
1395define <vscale x 2 x i64> @vor_vv_nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1396; CHECK-LABEL: vor_vv_nxv2i64:
1397; CHECK:       # %bb.0:
1398; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1399; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
1400; CHECK-NEXT:    ret
1401  %v = call <vscale x 2 x i64> @llvm.vp.or.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> %m, i32 %evl)
1402  ret <vscale x 2 x i64> %v
1403}
1404
1405define <vscale x 2 x i64> @vor_vv_nxv2i64_unmasked(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, i32 zeroext %evl) {
1406; CHECK-LABEL: vor_vv_nxv2i64_unmasked:
1407; CHECK:       # %bb.0:
1408; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1409; CHECK-NEXT:    vor.vv v8, v8, v10
1410; CHECK-NEXT:    ret
1411  %v = call <vscale x 2 x i64> @llvm.vp.or.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %b, <vscale x 2 x i1> splat (i1 true), i32 %evl)
1412  ret <vscale x 2 x i64> %v
1413}
1414
1415define <vscale x 2 x i64> @vor_vx_nxv2i64(<vscale x 2 x i64> %va, i64 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1416; RV32-LABEL: vor_vx_nxv2i64:
1417; RV32:       # %bb.0:
1418; RV32-NEXT:    addi sp, sp, -16
1419; RV32-NEXT:    .cfi_def_cfa_offset 16
1420; RV32-NEXT:    sw a0, 8(sp)
1421; RV32-NEXT:    sw a1, 12(sp)
1422; RV32-NEXT:    addi a0, sp, 8
1423; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma
1424; RV32-NEXT:    vlse64.v v10, (a0), zero
1425; RV32-NEXT:    vor.vv v8, v8, v10, v0.t
1426; RV32-NEXT:    addi sp, sp, 16
1427; RV32-NEXT:    .cfi_def_cfa_offset 0
1428; RV32-NEXT:    ret
1429;
1430; RV64-LABEL: vor_vx_nxv2i64:
1431; RV64:       # %bb.0:
1432; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1433; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1434; RV64-NEXT:    ret
1435  %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0
1436  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1437  %v = call <vscale x 2 x i64> @llvm.vp.or.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> %m, i32 %evl)
1438  ret <vscale x 2 x i64> %v
1439}
1440
1441define <vscale x 2 x i64> @vor_vx_nxv2i64_unmasked(<vscale x 2 x i64> %va, i64 %b, i32 zeroext %evl) {
1442; RV32-LABEL: vor_vx_nxv2i64_unmasked:
1443; RV32:       # %bb.0:
1444; RV32-NEXT:    addi sp, sp, -16
1445; RV32-NEXT:    .cfi_def_cfa_offset 16
1446; RV32-NEXT:    sw a0, 8(sp)
1447; RV32-NEXT:    sw a1, 12(sp)
1448; RV32-NEXT:    addi a0, sp, 8
1449; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma
1450; RV32-NEXT:    vlse64.v v10, (a0), zero
1451; RV32-NEXT:    vor.vv v8, v8, v10
1452; RV32-NEXT:    addi sp, sp, 16
1453; RV32-NEXT:    .cfi_def_cfa_offset 0
1454; RV32-NEXT:    ret
1455;
1456; RV64-LABEL: vor_vx_nxv2i64_unmasked:
1457; RV64:       # %bb.0:
1458; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1459; RV64-NEXT:    vor.vx v8, v8, a0
1460; RV64-NEXT:    ret
1461  %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0
1462  %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1463  %v = call <vscale x 2 x i64> @llvm.vp.or.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> %vb, <vscale x 2 x i1> splat (i1 true), i32 %evl)
1464  ret <vscale x 2 x i64> %v
1465}
1466
1467define <vscale x 2 x i64> @vor_vi_nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1468; CHECK-LABEL: vor_vi_nxv2i64:
1469; CHECK:       # %bb.0:
1470; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1471; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1472; CHECK-NEXT:    ret
1473  %v = call <vscale x 2 x i64> @llvm.vp.or.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> splat (i64 5), <vscale x 2 x i1> %m, i32 %evl)
1474  ret <vscale x 2 x i64> %v
1475}
1476
1477define <vscale x 2 x i64> @vor_vi_nxv2i64_unmasked(<vscale x 2 x i64> %va, i32 zeroext %evl) {
1478; CHECK-LABEL: vor_vi_nxv2i64_unmasked:
1479; CHECK:       # %bb.0:
1480; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1481; CHECK-NEXT:    vor.vi v8, v8, 5
1482; CHECK-NEXT:    ret
1483  %v = call <vscale x 2 x i64> @llvm.vp.or.nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i64> splat (i64 5), <vscale x 2 x i1> splat (i1 true), i32 %evl)
1484  ret <vscale x 2 x i64> %v
1485}
1486
1487declare <vscale x 4 x i64> @llvm.vp.or.nxv4i64(<vscale x 4 x i64>, <vscale x 4 x i64>, <vscale x 4 x i1>, i32)
1488
1489define <vscale x 4 x i64> @vor_vv_nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1490; CHECK-LABEL: vor_vv_nxv4i64:
1491; CHECK:       # %bb.0:
1492; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1493; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
1494; CHECK-NEXT:    ret
1495  %v = call <vscale x 4 x i64> @llvm.vp.or.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> %m, i32 %evl)
1496  ret <vscale x 4 x i64> %v
1497}
1498
1499define <vscale x 4 x i64> @vor_vv_nxv4i64_unmasked(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, i32 zeroext %evl) {
1500; CHECK-LABEL: vor_vv_nxv4i64_unmasked:
1501; CHECK:       # %bb.0:
1502; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1503; CHECK-NEXT:    vor.vv v8, v8, v12
1504; CHECK-NEXT:    ret
1505  %v = call <vscale x 4 x i64> @llvm.vp.or.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %b, <vscale x 4 x i1> splat (i1 true), i32 %evl)
1506  ret <vscale x 4 x i64> %v
1507}
1508
1509define <vscale x 4 x i64> @vor_vx_nxv4i64(<vscale x 4 x i64> %va, i64 %b, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1510; RV32-LABEL: vor_vx_nxv4i64:
1511; RV32:       # %bb.0:
1512; RV32-NEXT:    addi sp, sp, -16
1513; RV32-NEXT:    .cfi_def_cfa_offset 16
1514; RV32-NEXT:    sw a0, 8(sp)
1515; RV32-NEXT:    sw a1, 12(sp)
1516; RV32-NEXT:    addi a0, sp, 8
1517; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma
1518; RV32-NEXT:    vlse64.v v12, (a0), zero
1519; RV32-NEXT:    vor.vv v8, v8, v12, v0.t
1520; RV32-NEXT:    addi sp, sp, 16
1521; RV32-NEXT:    .cfi_def_cfa_offset 0
1522; RV32-NEXT:    ret
1523;
1524; RV64-LABEL: vor_vx_nxv4i64:
1525; RV64:       # %bb.0:
1526; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1527; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1528; RV64-NEXT:    ret
1529  %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 0
1530  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1531  %v = call <vscale x 4 x i64> @llvm.vp.or.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> %m, i32 %evl)
1532  ret <vscale x 4 x i64> %v
1533}
1534
1535define <vscale x 4 x i64> @vor_vx_nxv4i64_unmasked(<vscale x 4 x i64> %va, i64 %b, i32 zeroext %evl) {
1536; RV32-LABEL: vor_vx_nxv4i64_unmasked:
1537; RV32:       # %bb.0:
1538; RV32-NEXT:    addi sp, sp, -16
1539; RV32-NEXT:    .cfi_def_cfa_offset 16
1540; RV32-NEXT:    sw a0, 8(sp)
1541; RV32-NEXT:    sw a1, 12(sp)
1542; RV32-NEXT:    addi a0, sp, 8
1543; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma
1544; RV32-NEXT:    vlse64.v v12, (a0), zero
1545; RV32-NEXT:    vor.vv v8, v8, v12
1546; RV32-NEXT:    addi sp, sp, 16
1547; RV32-NEXT:    .cfi_def_cfa_offset 0
1548; RV32-NEXT:    ret
1549;
1550; RV64-LABEL: vor_vx_nxv4i64_unmasked:
1551; RV64:       # %bb.0:
1552; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1553; RV64-NEXT:    vor.vx v8, v8, a0
1554; RV64-NEXT:    ret
1555  %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 0
1556  %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1557  %v = call <vscale x 4 x i64> @llvm.vp.or.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> %vb, <vscale x 4 x i1> splat (i1 true), i32 %evl)
1558  ret <vscale x 4 x i64> %v
1559}
1560
1561define <vscale x 4 x i64> @vor_vi_nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1562; CHECK-LABEL: vor_vi_nxv4i64:
1563; CHECK:       # %bb.0:
1564; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1565; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1566; CHECK-NEXT:    ret
1567  %v = call <vscale x 4 x i64> @llvm.vp.or.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> splat (i64 5), <vscale x 4 x i1> %m, i32 %evl)
1568  ret <vscale x 4 x i64> %v
1569}
1570
1571define <vscale x 4 x i64> @vor_vi_nxv4i64_unmasked(<vscale x 4 x i64> %va, i32 zeroext %evl) {
1572; CHECK-LABEL: vor_vi_nxv4i64_unmasked:
1573; CHECK:       # %bb.0:
1574; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1575; CHECK-NEXT:    vor.vi v8, v8, 5
1576; CHECK-NEXT:    ret
1577  %v = call <vscale x 4 x i64> @llvm.vp.or.nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i64> splat (i64 5), <vscale x 4 x i1> splat (i1 true), i32 %evl)
1578  ret <vscale x 4 x i64> %v
1579}
1580
1581declare <vscale x 8 x i64> @llvm.vp.or.nxv8i64(<vscale x 8 x i64>, <vscale x 8 x i64>, <vscale x 8 x i1>, i32)
1582
1583define <vscale x 8 x i64> @vor_vv_nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1584; CHECK-LABEL: vor_vv_nxv8i64:
1585; CHECK:       # %bb.0:
1586; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1587; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
1588; CHECK-NEXT:    ret
1589  %v = call <vscale x 8 x i64> @llvm.vp.or.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> %m, i32 %evl)
1590  ret <vscale x 8 x i64> %v
1591}
1592
1593define <vscale x 8 x i64> @vor_vv_nxv8i64_unmasked(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, i32 zeroext %evl) {
1594; CHECK-LABEL: vor_vv_nxv8i64_unmasked:
1595; CHECK:       # %bb.0:
1596; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1597; CHECK-NEXT:    vor.vv v8, v8, v16
1598; CHECK-NEXT:    ret
1599  %v = call <vscale x 8 x i64> @llvm.vp.or.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %b, <vscale x 8 x i1> splat (i1 true), i32 %evl)
1600  ret <vscale x 8 x i64> %v
1601}
1602
1603define <vscale x 8 x i64> @vor_vx_nxv8i64(<vscale x 8 x i64> %va, i64 %b, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1604; RV32-LABEL: vor_vx_nxv8i64:
1605; RV32:       # %bb.0:
1606; RV32-NEXT:    addi sp, sp, -16
1607; RV32-NEXT:    .cfi_def_cfa_offset 16
1608; RV32-NEXT:    sw a0, 8(sp)
1609; RV32-NEXT:    sw a1, 12(sp)
1610; RV32-NEXT:    addi a0, sp, 8
1611; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma
1612; RV32-NEXT:    vlse64.v v16, (a0), zero
1613; RV32-NEXT:    vor.vv v8, v8, v16, v0.t
1614; RV32-NEXT:    addi sp, sp, 16
1615; RV32-NEXT:    .cfi_def_cfa_offset 0
1616; RV32-NEXT:    ret
1617;
1618; RV64-LABEL: vor_vx_nxv8i64:
1619; RV64:       # %bb.0:
1620; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
1621; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1622; RV64-NEXT:    ret
1623  %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 0
1624  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1625  %v = call <vscale x 8 x i64> @llvm.vp.or.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> %m, i32 %evl)
1626  ret <vscale x 8 x i64> %v
1627}
1628
1629define <vscale x 8 x i64> @vor_vx_nxv8i64_unmasked(<vscale x 8 x i64> %va, i64 %b, i32 zeroext %evl) {
1630; RV32-LABEL: vor_vx_nxv8i64_unmasked:
1631; RV32:       # %bb.0:
1632; RV32-NEXT:    addi sp, sp, -16
1633; RV32-NEXT:    .cfi_def_cfa_offset 16
1634; RV32-NEXT:    sw a0, 8(sp)
1635; RV32-NEXT:    sw a1, 12(sp)
1636; RV32-NEXT:    addi a0, sp, 8
1637; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma
1638; RV32-NEXT:    vlse64.v v16, (a0), zero
1639; RV32-NEXT:    vor.vv v8, v8, v16
1640; RV32-NEXT:    addi sp, sp, 16
1641; RV32-NEXT:    .cfi_def_cfa_offset 0
1642; RV32-NEXT:    ret
1643;
1644; RV64-LABEL: vor_vx_nxv8i64_unmasked:
1645; RV64:       # %bb.0:
1646; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
1647; RV64-NEXT:    vor.vx v8, v8, a0
1648; RV64-NEXT:    ret
1649  %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 0
1650  %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1651  %v = call <vscale x 8 x i64> @llvm.vp.or.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> %vb, <vscale x 8 x i1> splat (i1 true), i32 %evl)
1652  ret <vscale x 8 x i64> %v
1653}
1654
1655define <vscale x 8 x i64> @vor_vi_nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1656; CHECK-LABEL: vor_vi_nxv8i64:
1657; CHECK:       # %bb.0:
1658; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1659; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1660; CHECK-NEXT:    ret
1661  %v = call <vscale x 8 x i64> @llvm.vp.or.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> splat (i64 5), <vscale x 8 x i1> %m, i32 %evl)
1662  ret <vscale x 8 x i64> %v
1663}
1664
1665define <vscale x 8 x i64> @vor_vi_nxv8i64_unmasked(<vscale x 8 x i64> %va, i32 zeroext %evl) {
1666; CHECK-LABEL: vor_vi_nxv8i64_unmasked:
1667; CHECK:       # %bb.0:
1668; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1669; CHECK-NEXT:    vor.vi v8, v8, 5
1670; CHECK-NEXT:    ret
1671  %v = call <vscale x 8 x i64> @llvm.vp.or.nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i64> splat (i64 5), <vscale x 8 x i1> splat (i1 true), i32 %evl)
1672  ret <vscale x 8 x i64> %v
1673}
1674