1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s \
3 ; RUN: | FileCheck %s --check-prefixes=CHECK,RV32
4 ; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s \
5 ; RUN: | FileCheck %s --check-prefixes=CHECK,RV64
7 declare <vscale x 8 x i7> @llvm.vp.or.nxv8i7(<vscale x 8 x i7>, <vscale x 8 x i7>, <vscale x 8 x i1>, i32)
9 define <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:
12 ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma
13 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
21 declare <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)
23 define <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:
26 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
27 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
33 define <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:
36 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
37 ; CHECK-NEXT: vor.vv v8, v8, v9
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
43 define <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:
46 ; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma
47 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
55 define <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:
58 ; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma
59 ; CHECK-NEXT: vor.vx v8, v8, a0
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
67 define <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:
70 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
71 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
77 define <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:
80 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
81 ; CHECK-NEXT: vor.vi v8, v8, 5
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
87 declare <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)
89 define <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:
92 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
93 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
99 define <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:
102 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
103 ; CHECK-NEXT: vor.vv v8, v8, v9
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
109 define <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:
112 ; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma
113 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
121 define <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:
124 ; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma
125 ; CHECK-NEXT: vor.vx v8, v8, a0
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
133 define <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:
136 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
137 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
143 define <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:
146 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
147 ; CHECK-NEXT: vor.vi v8, v8, 5
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
153 declare <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)
155 define <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:
158 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
159 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
165 define <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:
168 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
169 ; CHECK-NEXT: vor.vv v8, v8, v9
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
175 define <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:
178 ; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma
179 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
187 define <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:
190 ; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma
191 ; CHECK-NEXT: vor.vx v8, v8, a0
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
199 define <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:
202 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
203 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
209 define <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:
212 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
213 ; CHECK-NEXT: vor.vi v8, v8, 5
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
219 declare <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)
221 define <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:
224 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
225 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
231 define <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:
234 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
235 ; CHECK-NEXT: vor.vv v8, v8, v9
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
241 define <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:
244 ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma
245 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
253 define <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:
256 ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma
257 ; CHECK-NEXT: vor.vx v8, v8, a0
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
265 define <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:
268 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
269 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
275 define <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:
278 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
279 ; CHECK-NEXT: vor.vi v8, v8, 5
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
285 declare <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)
287 define <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:
290 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
291 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
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
297 define <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:
300 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
301 ; CHECK-NEXT: vor.vv v8, v8, v10
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
307 define <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:
310 ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma
311 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
319 define <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:
322 ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma
323 ; CHECK-NEXT: vor.vx v8, v8, a0
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
331 define <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:
334 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
335 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
341 define <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:
344 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
345 ; CHECK-NEXT: vor.vi v8, v8, 5
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
351 declare <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)
353 define <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:
356 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
357 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
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
363 define <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:
366 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
367 ; CHECK-NEXT: vor.vv v8, v8, v12
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
373 define <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:
376 ; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma
377 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
385 define <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:
388 ; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma
389 ; CHECK-NEXT: vor.vx v8, v8, a0
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
397 define <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:
400 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
401 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
407 define <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:
410 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
411 ; CHECK-NEXT: vor.vi v8, v8, 5
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
417 declare <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)
419 define <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:
422 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
423 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
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
429 define <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:
432 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
433 ; CHECK-NEXT: vor.vv v8, v8, v16
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
439 define <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:
442 ; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, ma
443 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
451 define <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:
454 ; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, ma
455 ; CHECK-NEXT: vor.vx v8, v8, a0
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
463 define <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:
466 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
467 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
473 define <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:
476 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
477 ; CHECK-NEXT: vor.vi v8, v8, 5
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
483 declare <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)
485 define <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:
488 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
489 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
495 define <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:
498 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
499 ; CHECK-NEXT: vor.vv v8, v8, v9
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
505 define <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:
508 ; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma
509 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
517 define <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:
520 ; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma
521 ; CHECK-NEXT: vor.vx v8, v8, a0
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
529 define <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:
532 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
533 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
539 define <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:
542 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
543 ; CHECK-NEXT: vor.vi v8, v8, 5
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
549 declare <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)
551 define <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:
554 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
555 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
561 define <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:
564 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
565 ; CHECK-NEXT: vor.vv v8, v8, v9
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
571 define <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:
574 ; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma
575 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
583 define <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:
586 ; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma
587 ; CHECK-NEXT: vor.vx v8, v8, a0
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
595 define <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:
598 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
599 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
605 define <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:
608 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
609 ; CHECK-NEXT: vor.vi v8, v8, 5
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
615 declare <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)
617 define <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:
620 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
621 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
627 define <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:
630 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
631 ; CHECK-NEXT: vor.vv v8, v8, v9
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
637 define <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:
640 ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
641 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
649 define <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:
652 ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
653 ; CHECK-NEXT: vor.vx v8, v8, a0
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
661 define <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:
664 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
665 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
671 define <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:
674 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
675 ; CHECK-NEXT: vor.vi v8, v8, 5
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
681 declare <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)
683 define <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:
686 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
687 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
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
693 define <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:
696 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
697 ; CHECK-NEXT: vor.vv v8, v8, v10
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
703 define <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:
706 ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma
707 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
715 define <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:
718 ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma
719 ; CHECK-NEXT: vor.vx v8, v8, a0
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
727 define <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:
730 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
731 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
737 define <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:
740 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
741 ; CHECK-NEXT: vor.vi v8, v8, 5
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
747 declare <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)
749 define <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:
752 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
753 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
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
759 define <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:
762 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
763 ; CHECK-NEXT: vor.vv v8, v8, v12
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
769 define <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:
772 ; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma
773 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
781 define <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:
784 ; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma
785 ; CHECK-NEXT: vor.vx v8, v8, a0
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
793 define <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:
796 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
797 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
803 define <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:
806 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
807 ; CHECK-NEXT: vor.vi v8, v8, 5
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
813 declare <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)
815 define <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:
818 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
819 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
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
825 define <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:
828 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
829 ; CHECK-NEXT: vor.vv v8, v8, v16
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
835 define <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:
838 ; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma
839 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
847 define <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:
850 ; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma
851 ; CHECK-NEXT: vor.vx v8, v8, a0
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
859 define <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:
862 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
863 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
869 define <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:
872 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
873 ; CHECK-NEXT: vor.vi v8, v8, 5
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
879 declare <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)
881 define <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:
884 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
885 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
891 define <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:
894 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
895 ; CHECK-NEXT: vor.vv v8, v8, v9
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
901 define <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:
904 ; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma
905 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
913 define <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:
916 ; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma
917 ; CHECK-NEXT: vor.vx v8, v8, a0
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
925 define <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:
928 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
929 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
935 define <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:
938 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
939 ; CHECK-NEXT: vor.vi v8, v8, 5
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
945 declare <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)
947 define <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:
950 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
951 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
957 define <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:
960 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
961 ; CHECK-NEXT: vor.vv v8, v8, v9
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
967 define <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:
970 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
971 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
979 define <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:
982 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
983 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
991 define <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:
994 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
995 ; CHECK-NEXT: vor.vx v8, v8, a0
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
1003 define <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:
1006 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
1007 ; CHECK-NEXT: vor.vx v8, v8, a0
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
1015 define <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:
1018 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
1019 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1025 define <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:
1028 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
1029 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1035 declare <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)
1037 define <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:
1040 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1041 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
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
1047 define <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:
1050 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1051 ; CHECK-NEXT: vor.vv v8, v8, v10
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
1057 define <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:
1060 ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma
1061 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
1069 define <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:
1072 ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma
1073 ; CHECK-NEXT: vor.vx v8, v8, a0
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
1081 define <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:
1084 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1085 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1091 define <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:
1094 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1095 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1101 declare <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)
1103 define <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:
1106 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1107 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
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
1113 define <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:
1116 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1117 ; CHECK-NEXT: vor.vv v8, v8, v12
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
1123 define <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:
1126 ; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma
1127 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
1135 define <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:
1138 ; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma
1139 ; CHECK-NEXT: vor.vx v8, v8, a0
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
1147 define <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:
1150 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1151 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1157 define <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:
1160 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1161 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1167 declare <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)
1169 define <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:
1172 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1173 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
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
1179 define <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:
1182 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1183 ; CHECK-NEXT: vor.vv v8, v8, v16
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
1189 define <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:
1192 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1193 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
1201 define <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:
1204 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1205 ; CHECK-NEXT: vor.vx v8, v8, a0
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
1213 define <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:
1216 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1217 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1223 define <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:
1226 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1227 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1233 declare <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)
1235 define <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:
1238 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1239 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
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
1245 define <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:
1248 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1249 ; CHECK-NEXT: vor.vv v8, v8, v16
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
1255 define <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:
1258 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1259 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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
1267 define <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:
1270 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1271 ; CHECK-NEXT: vor.vx v8, v8, a0
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
1279 define <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:
1282 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1283 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1289 define <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:
1292 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1293 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1299 declare <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)
1301 define <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:
1304 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1305 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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
1311 define <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:
1314 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1315 ; CHECK-NEXT: vor.vv v8, v8, v9
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
1321 define <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:
1324 ; RV32-NEXT: addi sp, sp, -16
1325 ; RV32-NEXT: .cfi_def_cfa_offset 16
1326 ; RV32-NEXT: sw a1, 12(sp)
1327 ; RV32-NEXT: sw a0, 8(sp)
1328 ; RV32-NEXT: addi a0, sp, 8
1329 ; RV32-NEXT: vsetvli a1, zero, e64, m1, ta, ma
1330 ; RV32-NEXT: vlse64.v v9, (a0), zero
1331 ; RV32-NEXT: vsetvli zero, a2, e64, m1, ta, ma
1332 ; RV32-NEXT: vor.vv v8, v8, v9, v0.t
1333 ; RV32-NEXT: addi sp, sp, 16
1336 ; RV64-LABEL: vor_vx_nxv1i64:
1338 ; RV64-NEXT: vsetvli zero, a1, e64, m1, ta, ma
1339 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
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
1347 define <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:
1350 ; RV32-NEXT: addi sp, sp, -16
1351 ; RV32-NEXT: .cfi_def_cfa_offset 16
1352 ; RV32-NEXT: sw a1, 12(sp)
1353 ; RV32-NEXT: sw a0, 8(sp)
1354 ; RV32-NEXT: addi a0, sp, 8
1355 ; RV32-NEXT: vsetvli a1, zero, e64, m1, ta, ma
1356 ; RV32-NEXT: vlse64.v v9, (a0), zero
1357 ; RV32-NEXT: vsetvli zero, a2, e64, m1, ta, ma
1358 ; RV32-NEXT: vor.vv v8, v8, v9
1359 ; RV32-NEXT: addi sp, sp, 16
1362 ; RV64-LABEL: vor_vx_nxv1i64_unmasked:
1364 ; RV64-NEXT: vsetvli zero, a1, e64, m1, ta, ma
1365 ; RV64-NEXT: vor.vx v8, v8, a0
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
1373 define <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:
1376 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1377 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1383 define <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:
1386 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1387 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1393 declare <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)
1395 define <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:
1398 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1399 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
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
1405 define <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:
1408 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1409 ; CHECK-NEXT: vor.vv v8, v8, v10
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
1415 define <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:
1418 ; RV32-NEXT: addi sp, sp, -16
1419 ; RV32-NEXT: .cfi_def_cfa_offset 16
1420 ; RV32-NEXT: sw a1, 12(sp)
1421 ; RV32-NEXT: sw a0, 8(sp)
1422 ; RV32-NEXT: addi a0, sp, 8
1423 ; RV32-NEXT: vsetvli a1, zero, e64, m2, ta, ma
1424 ; RV32-NEXT: vlse64.v v10, (a0), zero
1425 ; RV32-NEXT: vsetvli zero, a2, e64, m2, ta, ma
1426 ; RV32-NEXT: vor.vv v8, v8, v10, v0.t
1427 ; RV32-NEXT: addi sp, sp, 16
1430 ; RV64-LABEL: vor_vx_nxv2i64:
1432 ; RV64-NEXT: vsetvli zero, a1, e64, m2, ta, ma
1433 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
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
1441 define <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:
1444 ; RV32-NEXT: addi sp, sp, -16
1445 ; RV32-NEXT: .cfi_def_cfa_offset 16
1446 ; RV32-NEXT: sw a1, 12(sp)
1447 ; RV32-NEXT: sw a0, 8(sp)
1448 ; RV32-NEXT: addi a0, sp, 8
1449 ; RV32-NEXT: vsetvli a1, zero, e64, m2, ta, ma
1450 ; RV32-NEXT: vlse64.v v10, (a0), zero
1451 ; RV32-NEXT: vsetvli zero, a2, e64, m2, ta, ma
1452 ; RV32-NEXT: vor.vv v8, v8, v10
1453 ; RV32-NEXT: addi sp, sp, 16
1456 ; RV64-LABEL: vor_vx_nxv2i64_unmasked:
1458 ; RV64-NEXT: vsetvli zero, a1, e64, m2, ta, ma
1459 ; RV64-NEXT: vor.vx v8, v8, a0
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
1467 define <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:
1470 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1471 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1477 define <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:
1480 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1481 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1487 declare <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)
1489 define <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:
1492 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1493 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
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
1499 define <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:
1502 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1503 ; CHECK-NEXT: vor.vv v8, v8, v12
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
1509 define <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:
1512 ; RV32-NEXT: addi sp, sp, -16
1513 ; RV32-NEXT: .cfi_def_cfa_offset 16
1514 ; RV32-NEXT: sw a1, 12(sp)
1515 ; RV32-NEXT: sw a0, 8(sp)
1516 ; RV32-NEXT: addi a0, sp, 8
1517 ; RV32-NEXT: vsetvli a1, zero, e64, m4, ta, ma
1518 ; RV32-NEXT: vlse64.v v12, (a0), zero
1519 ; RV32-NEXT: vsetvli zero, a2, e64, m4, ta, ma
1520 ; RV32-NEXT: vor.vv v8, v8, v12, v0.t
1521 ; RV32-NEXT: addi sp, sp, 16
1524 ; RV64-LABEL: vor_vx_nxv4i64:
1526 ; RV64-NEXT: vsetvli zero, a1, e64, m4, ta, ma
1527 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
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
1535 define <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:
1538 ; RV32-NEXT: addi sp, sp, -16
1539 ; RV32-NEXT: .cfi_def_cfa_offset 16
1540 ; RV32-NEXT: sw a1, 12(sp)
1541 ; RV32-NEXT: sw a0, 8(sp)
1542 ; RV32-NEXT: addi a0, sp, 8
1543 ; RV32-NEXT: vsetvli a1, zero, e64, m4, ta, ma
1544 ; RV32-NEXT: vlse64.v v12, (a0), zero
1545 ; RV32-NEXT: vsetvli zero, a2, e64, m4, ta, ma
1546 ; RV32-NEXT: vor.vv v8, v8, v12
1547 ; RV32-NEXT: addi sp, sp, 16
1550 ; RV64-LABEL: vor_vx_nxv4i64_unmasked:
1552 ; RV64-NEXT: vsetvli zero, a1, e64, m4, ta, ma
1553 ; RV64-NEXT: vor.vx v8, v8, a0
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
1561 define <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:
1564 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1565 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1571 define <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:
1574 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1575 ; CHECK-NEXT: vor.vi v8, v8, 5
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
1581 declare <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)
1583 define <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:
1586 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1587 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
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
1593 define <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:
1596 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1597 ; CHECK-NEXT: vor.vv v8, v8, v16
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
1603 define <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:
1606 ; RV32-NEXT: addi sp, sp, -16
1607 ; RV32-NEXT: .cfi_def_cfa_offset 16
1608 ; RV32-NEXT: sw a1, 12(sp)
1609 ; RV32-NEXT: sw a0, 8(sp)
1610 ; RV32-NEXT: addi a0, sp, 8
1611 ; RV32-NEXT: vsetvli a1, zero, e64, m8, ta, ma
1612 ; RV32-NEXT: vlse64.v v16, (a0), zero
1613 ; RV32-NEXT: vsetvli zero, a2, e64, m8, ta, ma
1614 ; RV32-NEXT: vor.vv v8, v8, v16, v0.t
1615 ; RV32-NEXT: addi sp, sp, 16
1618 ; RV64-LABEL: vor_vx_nxv8i64:
1620 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, ma
1621 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
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
1629 define <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:
1632 ; RV32-NEXT: addi sp, sp, -16
1633 ; RV32-NEXT: .cfi_def_cfa_offset 16
1634 ; RV32-NEXT: sw a1, 12(sp)
1635 ; RV32-NEXT: sw a0, 8(sp)
1636 ; RV32-NEXT: addi a0, sp, 8
1637 ; RV32-NEXT: vsetvli a1, zero, e64, m8, ta, ma
1638 ; RV32-NEXT: vlse64.v v16, (a0), zero
1639 ; RV32-NEXT: vsetvli zero, a2, e64, m8, ta, ma
1640 ; RV32-NEXT: vor.vv v8, v8, v16
1641 ; RV32-NEXT: addi sp, sp, 16
1644 ; RV64-LABEL: vor_vx_nxv8i64_unmasked:
1646 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, ma
1647 ; RV64-NEXT: vor.vx v8, v8, a0
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
1655 define <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:
1658 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1659 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
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
1665 define <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:
1668 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1669 ; CHECK-NEXT: vor.vi v8, v8, 5
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