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 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
40 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
41 %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)
42 ret <vscale x 1 x i8> %v
45 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) {
46 ; CHECK-LABEL: vor_vx_nxv1i8:
48 ; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma
49 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
51 %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 0
52 %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
53 %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)
54 ret <vscale x 1 x i8> %v
57 define <vscale x 1 x i8> @vor_vx_nxv1i8_unmasked(<vscale x 1 x i8> %va, i8 %b, i32 zeroext %evl) {
58 ; CHECK-LABEL: vor_vx_nxv1i8_unmasked:
60 ; CHECK-NEXT: vsetvli zero, a1, e8, mf8, ta, ma
61 ; CHECK-NEXT: vor.vx v8, v8, a0
63 %elt.head = insertelement <vscale x 1 x i8> poison, i8 %b, i32 0
64 %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
65 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
66 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
67 %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)
68 ret <vscale x 1 x i8> %v
71 define <vscale x 1 x i8> @vor_vi_nxv1i8(<vscale x 1 x i8> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
72 ; CHECK-LABEL: vor_vi_nxv1i8:
74 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
75 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
77 %elt.head = insertelement <vscale x 1 x i8> poison, i8 5, i32 0
78 %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
79 %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)
80 ret <vscale x 1 x i8> %v
83 define <vscale x 1 x i8> @vor_vi_nxv1i8_unmasked(<vscale x 1 x i8> %va, i32 zeroext %evl) {
84 ; CHECK-LABEL: vor_vi_nxv1i8_unmasked:
86 ; CHECK-NEXT: vsetvli zero, a0, e8, mf8, ta, ma
87 ; CHECK-NEXT: vor.vi v8, v8, 5
89 %elt.head = insertelement <vscale x 1 x i8> poison, i8 5, i32 0
90 %vb = shufflevector <vscale x 1 x i8> %elt.head, <vscale x 1 x i8> poison, <vscale x 1 x i32> zeroinitializer
91 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
92 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
93 %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)
94 ret <vscale x 1 x i8> %v
97 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)
99 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) {
100 ; CHECK-LABEL: vor_vv_nxv2i8:
102 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
103 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
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> %m, i32 %evl)
106 ret <vscale x 2 x i8> %v
109 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) {
110 ; CHECK-LABEL: vor_vv_nxv2i8_unmasked:
112 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
113 ; CHECK-NEXT: vor.vv v8, v8, v9
115 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
116 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> 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> %b, <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(<vscale x 2 x i8> %va, i8 %b, <vscale x 2 x i1> %m, i32 zeroext %evl) {
122 ; CHECK-LABEL: vor_vx_nxv2i8:
124 ; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma
125 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
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> %m, i32 %evl)
130 ret <vscale x 2 x i8> %v
133 define <vscale x 2 x i8> @vor_vx_nxv2i8_unmasked(<vscale x 2 x i8> %va, i8 %b, i32 zeroext %evl) {
134 ; CHECK-LABEL: vor_vx_nxv2i8_unmasked:
136 ; CHECK-NEXT: vsetvli zero, a1, e8, mf4, ta, ma
137 ; CHECK-NEXT: vor.vx v8, v8, a0
139 %elt.head = insertelement <vscale x 2 x i8> poison, i8 %b, i32 0
140 %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer
141 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
142 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
143 %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)
144 ret <vscale x 2 x i8> %v
147 define <vscale x 2 x i8> @vor_vi_nxv2i8(<vscale x 2 x i8> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
148 ; CHECK-LABEL: vor_vi_nxv2i8:
150 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
151 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
153 %elt.head = insertelement <vscale x 2 x i8> poison, i8 5, i32 0
154 %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer
155 %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)
156 ret <vscale x 2 x i8> %v
159 define <vscale x 2 x i8> @vor_vi_nxv2i8_unmasked(<vscale x 2 x i8> %va, i32 zeroext %evl) {
160 ; CHECK-LABEL: vor_vi_nxv2i8_unmasked:
162 ; CHECK-NEXT: vsetvli zero, a0, e8, mf4, ta, ma
163 ; CHECK-NEXT: vor.vi v8, v8, 5
165 %elt.head = insertelement <vscale x 2 x i8> poison, i8 5, i32 0
166 %vb = shufflevector <vscale x 2 x i8> %elt.head, <vscale x 2 x i8> poison, <vscale x 2 x i32> zeroinitializer
167 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
168 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
169 %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)
170 ret <vscale x 2 x i8> %v
173 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)
175 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) {
176 ; CHECK-LABEL: vor_vv_nxv4i8:
178 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
179 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
181 %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)
182 ret <vscale x 4 x i8> %v
185 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) {
186 ; CHECK-LABEL: vor_vv_nxv4i8_unmasked:
188 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
189 ; CHECK-NEXT: vor.vv v8, v8, v9
191 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
192 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
193 %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)
194 ret <vscale x 4 x i8> %v
197 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) {
198 ; CHECK-LABEL: vor_vx_nxv4i8:
200 ; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma
201 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
203 %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0
204 %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
205 %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)
206 ret <vscale x 4 x i8> %v
209 define <vscale x 4 x i8> @vor_vx_nxv4i8_unmasked(<vscale x 4 x i8> %va, i8 %b, i32 zeroext %evl) {
210 ; CHECK-LABEL: vor_vx_nxv4i8_unmasked:
212 ; CHECK-NEXT: vsetvli zero, a1, e8, mf2, ta, ma
213 ; CHECK-NEXT: vor.vx v8, v8, a0
215 %elt.head = insertelement <vscale x 4 x i8> poison, i8 %b, i32 0
216 %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
217 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
218 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
219 %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)
220 ret <vscale x 4 x i8> %v
223 define <vscale x 4 x i8> @vor_vi_nxv4i8(<vscale x 4 x i8> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
224 ; CHECK-LABEL: vor_vi_nxv4i8:
226 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
227 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
229 %elt.head = insertelement <vscale x 4 x i8> poison, i8 5, i32 0
230 %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
231 %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)
232 ret <vscale x 4 x i8> %v
235 define <vscale x 4 x i8> @vor_vi_nxv4i8_unmasked(<vscale x 4 x i8> %va, i32 zeroext %evl) {
236 ; CHECK-LABEL: vor_vi_nxv4i8_unmasked:
238 ; CHECK-NEXT: vsetvli zero, a0, e8, mf2, ta, ma
239 ; CHECK-NEXT: vor.vi v8, v8, 5
241 %elt.head = insertelement <vscale x 4 x i8> poison, i8 5, i32 0
242 %vb = shufflevector <vscale x 4 x i8> %elt.head, <vscale x 4 x i8> poison, <vscale x 4 x i32> zeroinitializer
243 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
244 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
245 %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)
246 ret <vscale x 4 x i8> %v
249 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)
251 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) {
252 ; CHECK-LABEL: vor_vv_nxv8i8:
254 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
255 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
257 %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)
258 ret <vscale x 8 x i8> %v
261 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) {
262 ; CHECK-LABEL: vor_vv_nxv8i8_unmasked:
264 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
265 ; CHECK-NEXT: vor.vv v8, v8, v9
267 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
268 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
269 %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)
270 ret <vscale x 8 x i8> %v
273 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) {
274 ; CHECK-LABEL: vor_vx_nxv8i8:
276 ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma
277 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
279 %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0
280 %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
281 %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)
282 ret <vscale x 8 x i8> %v
285 define <vscale x 8 x i8> @vor_vx_nxv8i8_unmasked(<vscale x 8 x i8> %va, i8 %b, i32 zeroext %evl) {
286 ; CHECK-LABEL: vor_vx_nxv8i8_unmasked:
288 ; CHECK-NEXT: vsetvli zero, a1, e8, m1, ta, ma
289 ; CHECK-NEXT: vor.vx v8, v8, a0
291 %elt.head = insertelement <vscale x 8 x i8> poison, i8 %b, i32 0
292 %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
293 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
294 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
295 %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)
296 ret <vscale x 8 x i8> %v
299 define <vscale x 8 x i8> @vor_vi_nxv8i8(<vscale x 8 x i8> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
300 ; CHECK-LABEL: vor_vi_nxv8i8:
302 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
303 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
305 %elt.head = insertelement <vscale x 8 x i8> poison, i8 5, i32 0
306 %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
307 %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)
308 ret <vscale x 8 x i8> %v
311 define <vscale x 8 x i8> @vor_vi_nxv8i8_unmasked(<vscale x 8 x i8> %va, i32 zeroext %evl) {
312 ; CHECK-LABEL: vor_vi_nxv8i8_unmasked:
314 ; CHECK-NEXT: vsetvli zero, a0, e8, m1, ta, ma
315 ; CHECK-NEXT: vor.vi v8, v8, 5
317 %elt.head = insertelement <vscale x 8 x i8> poison, i8 5, i32 0
318 %vb = shufflevector <vscale x 8 x i8> %elt.head, <vscale x 8 x i8> poison, <vscale x 8 x i32> zeroinitializer
319 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
320 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
321 %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)
322 ret <vscale x 8 x i8> %v
325 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)
327 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) {
328 ; CHECK-LABEL: vor_vv_nxv16i8:
330 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
331 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
333 %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)
334 ret <vscale x 16 x i8> %v
337 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) {
338 ; CHECK-LABEL: vor_vv_nxv16i8_unmasked:
340 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
341 ; CHECK-NEXT: vor.vv v8, v8, v10
343 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
344 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
345 %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)
346 ret <vscale x 16 x i8> %v
349 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) {
350 ; CHECK-LABEL: vor_vx_nxv16i8:
352 ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma
353 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
355 %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0
356 %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
357 %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)
358 ret <vscale x 16 x i8> %v
361 define <vscale x 16 x i8> @vor_vx_nxv16i8_unmasked(<vscale x 16 x i8> %va, i8 %b, i32 zeroext %evl) {
362 ; CHECK-LABEL: vor_vx_nxv16i8_unmasked:
364 ; CHECK-NEXT: vsetvli zero, a1, e8, m2, ta, ma
365 ; CHECK-NEXT: vor.vx v8, v8, a0
367 %elt.head = insertelement <vscale x 16 x i8> poison, i8 %b, i32 0
368 %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
369 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
370 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
371 %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)
372 ret <vscale x 16 x i8> %v
375 define <vscale x 16 x i8> @vor_vi_nxv16i8(<vscale x 16 x i8> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {
376 ; CHECK-LABEL: vor_vi_nxv16i8:
378 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
379 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
381 %elt.head = insertelement <vscale x 16 x i8> poison, i8 5, i32 0
382 %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
383 %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)
384 ret <vscale x 16 x i8> %v
387 define <vscale x 16 x i8> @vor_vi_nxv16i8_unmasked(<vscale x 16 x i8> %va, i32 zeroext %evl) {
388 ; CHECK-LABEL: vor_vi_nxv16i8_unmasked:
390 ; CHECK-NEXT: vsetvli zero, a0, e8, m2, ta, ma
391 ; CHECK-NEXT: vor.vi v8, v8, 5
393 %elt.head = insertelement <vscale x 16 x i8> poison, i8 5, i32 0
394 %vb = shufflevector <vscale x 16 x i8> %elt.head, <vscale x 16 x i8> poison, <vscale x 16 x i32> zeroinitializer
395 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
396 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
397 %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)
398 ret <vscale x 16 x i8> %v
401 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)
403 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) {
404 ; CHECK-LABEL: vor_vv_nxv32i8:
406 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
407 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
409 %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)
410 ret <vscale x 32 x i8> %v
413 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) {
414 ; CHECK-LABEL: vor_vv_nxv32i8_unmasked:
416 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
417 ; CHECK-NEXT: vor.vv v8, v8, v12
419 %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
420 %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
421 %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)
422 ret <vscale x 32 x i8> %v
425 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) {
426 ; CHECK-LABEL: vor_vx_nxv32i8:
428 ; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma
429 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
431 %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0
432 %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
433 %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)
434 ret <vscale x 32 x i8> %v
437 define <vscale x 32 x i8> @vor_vx_nxv32i8_unmasked(<vscale x 32 x i8> %va, i8 %b, i32 zeroext %evl) {
438 ; CHECK-LABEL: vor_vx_nxv32i8_unmasked:
440 ; CHECK-NEXT: vsetvli zero, a1, e8, m4, ta, ma
441 ; CHECK-NEXT: vor.vx v8, v8, a0
443 %elt.head = insertelement <vscale x 32 x i8> poison, i8 %b, i32 0
444 %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
445 %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
446 %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
447 %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)
448 ret <vscale x 32 x i8> %v
451 define <vscale x 32 x i8> @vor_vi_nxv32i8(<vscale x 32 x i8> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {
452 ; CHECK-LABEL: vor_vi_nxv32i8:
454 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
455 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
457 %elt.head = insertelement <vscale x 32 x i8> poison, i8 5, i32 0
458 %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
459 %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)
460 ret <vscale x 32 x i8> %v
463 define <vscale x 32 x i8> @vor_vi_nxv32i8_unmasked(<vscale x 32 x i8> %va, i32 zeroext %evl) {
464 ; CHECK-LABEL: vor_vi_nxv32i8_unmasked:
466 ; CHECK-NEXT: vsetvli zero, a0, e8, m4, ta, ma
467 ; CHECK-NEXT: vor.vi v8, v8, 5
469 %elt.head = insertelement <vscale x 32 x i8> poison, i8 5, i32 0
470 %vb = shufflevector <vscale x 32 x i8> %elt.head, <vscale x 32 x i8> poison, <vscale x 32 x i32> zeroinitializer
471 %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
472 %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
473 %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)
474 ret <vscale x 32 x i8> %v
477 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)
479 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) {
480 ; CHECK-LABEL: vor_vv_nxv64i8:
482 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
483 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
485 %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)
486 ret <vscale x 64 x i8> %v
489 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) {
490 ; CHECK-LABEL: vor_vv_nxv64i8_unmasked:
492 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
493 ; CHECK-NEXT: vor.vv v8, v8, v16
495 %head = insertelement <vscale x 64 x i1> poison, i1 true, i32 0
496 %m = shufflevector <vscale x 64 x i1> %head, <vscale x 64 x i1> poison, <vscale x 64 x i32> zeroinitializer
497 %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)
498 ret <vscale x 64 x i8> %v
501 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) {
502 ; CHECK-LABEL: vor_vx_nxv64i8:
504 ; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, ma
505 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
507 %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0
508 %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
509 %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)
510 ret <vscale x 64 x i8> %v
513 define <vscale x 64 x i8> @vor_vx_nxv64i8_unmasked(<vscale x 64 x i8> %va, i8 %b, i32 zeroext %evl) {
514 ; CHECK-LABEL: vor_vx_nxv64i8_unmasked:
516 ; CHECK-NEXT: vsetvli zero, a1, e8, m8, ta, ma
517 ; CHECK-NEXT: vor.vx v8, v8, a0
519 %elt.head = insertelement <vscale x 64 x i8> poison, i8 %b, i32 0
520 %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
521 %head = insertelement <vscale x 64 x i1> poison, i1 true, i32 0
522 %m = shufflevector <vscale x 64 x i1> %head, <vscale x 64 x i1> poison, <vscale x 64 x i32> zeroinitializer
523 %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)
524 ret <vscale x 64 x i8> %v
527 define <vscale x 64 x i8> @vor_vi_nxv64i8(<vscale x 64 x i8> %va, <vscale x 64 x i1> %m, i32 zeroext %evl) {
528 ; CHECK-LABEL: vor_vi_nxv64i8:
530 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
531 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
533 %elt.head = insertelement <vscale x 64 x i8> poison, i8 5, i32 0
534 %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
535 %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)
536 ret <vscale x 64 x i8> %v
539 define <vscale x 64 x i8> @vor_vi_nxv64i8_unmasked(<vscale x 64 x i8> %va, i32 zeroext %evl) {
540 ; CHECK-LABEL: vor_vi_nxv64i8_unmasked:
542 ; CHECK-NEXT: vsetvli zero, a0, e8, m8, ta, ma
543 ; CHECK-NEXT: vor.vi v8, v8, 5
545 %elt.head = insertelement <vscale x 64 x i8> poison, i8 5, i32 0
546 %vb = shufflevector <vscale x 64 x i8> %elt.head, <vscale x 64 x i8> poison, <vscale x 64 x i32> zeroinitializer
547 %head = insertelement <vscale x 64 x i1> poison, i1 true, i32 0
548 %m = shufflevector <vscale x 64 x i1> %head, <vscale x 64 x i1> poison, <vscale x 64 x i32> zeroinitializer
549 %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)
550 ret <vscale x 64 x i8> %v
553 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)
555 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) {
556 ; CHECK-LABEL: vor_vv_nxv1i16:
558 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
559 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
561 %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)
562 ret <vscale x 1 x i16> %v
565 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) {
566 ; CHECK-LABEL: vor_vv_nxv1i16_unmasked:
568 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
569 ; CHECK-NEXT: vor.vv v8, v8, v9
571 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
572 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
573 %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)
574 ret <vscale x 1 x i16> %v
577 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) {
578 ; CHECK-LABEL: vor_vx_nxv1i16:
580 ; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma
581 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
583 %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0
584 %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
585 %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)
586 ret <vscale x 1 x i16> %v
589 define <vscale x 1 x i16> @vor_vx_nxv1i16_unmasked(<vscale x 1 x i16> %va, i16 %b, i32 zeroext %evl) {
590 ; CHECK-LABEL: vor_vx_nxv1i16_unmasked:
592 ; CHECK-NEXT: vsetvli zero, a1, e16, mf4, ta, ma
593 ; CHECK-NEXT: vor.vx v8, v8, a0
595 %elt.head = insertelement <vscale x 1 x i16> poison, i16 %b, i32 0
596 %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
597 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
598 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
599 %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)
600 ret <vscale x 1 x i16> %v
603 define <vscale x 1 x i16> @vor_vi_nxv1i16(<vscale x 1 x i16> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
604 ; CHECK-LABEL: vor_vi_nxv1i16:
606 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
607 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
609 %elt.head = insertelement <vscale x 1 x i16> poison, i16 5, i32 0
610 %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
611 %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)
612 ret <vscale x 1 x i16> %v
615 define <vscale x 1 x i16> @vor_vi_nxv1i16_unmasked(<vscale x 1 x i16> %va, i32 zeroext %evl) {
616 ; CHECK-LABEL: vor_vi_nxv1i16_unmasked:
618 ; CHECK-NEXT: vsetvli zero, a0, e16, mf4, ta, ma
619 ; CHECK-NEXT: vor.vi v8, v8, 5
621 %elt.head = insertelement <vscale x 1 x i16> poison, i16 5, i32 0
622 %vb = shufflevector <vscale x 1 x i16> %elt.head, <vscale x 1 x i16> poison, <vscale x 1 x i32> zeroinitializer
623 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
624 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
625 %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)
626 ret <vscale x 1 x i16> %v
629 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)
631 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) {
632 ; CHECK-LABEL: vor_vv_nxv2i16:
634 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
635 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
637 %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)
638 ret <vscale x 2 x i16> %v
641 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) {
642 ; CHECK-LABEL: vor_vv_nxv2i16_unmasked:
644 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
645 ; CHECK-NEXT: vor.vv v8, v8, v9
647 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
648 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
649 %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)
650 ret <vscale x 2 x i16> %v
653 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) {
654 ; CHECK-LABEL: vor_vx_nxv2i16:
656 ; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma
657 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
659 %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0
660 %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
661 %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)
662 ret <vscale x 2 x i16> %v
665 define <vscale x 2 x i16> @vor_vx_nxv2i16_unmasked(<vscale x 2 x i16> %va, i16 %b, i32 zeroext %evl) {
666 ; CHECK-LABEL: vor_vx_nxv2i16_unmasked:
668 ; CHECK-NEXT: vsetvli zero, a1, e16, mf2, ta, ma
669 ; CHECK-NEXT: vor.vx v8, v8, a0
671 %elt.head = insertelement <vscale x 2 x i16> poison, i16 %b, i32 0
672 %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
673 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
674 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
675 %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)
676 ret <vscale x 2 x i16> %v
679 define <vscale x 2 x i16> @vor_vi_nxv2i16(<vscale x 2 x i16> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
680 ; CHECK-LABEL: vor_vi_nxv2i16:
682 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
683 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
685 %elt.head = insertelement <vscale x 2 x i16> poison, i16 5, i32 0
686 %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
687 %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)
688 ret <vscale x 2 x i16> %v
691 define <vscale x 2 x i16> @vor_vi_nxv2i16_unmasked(<vscale x 2 x i16> %va, i32 zeroext %evl) {
692 ; CHECK-LABEL: vor_vi_nxv2i16_unmasked:
694 ; CHECK-NEXT: vsetvli zero, a0, e16, mf2, ta, ma
695 ; CHECK-NEXT: vor.vi v8, v8, 5
697 %elt.head = insertelement <vscale x 2 x i16> poison, i16 5, i32 0
698 %vb = shufflevector <vscale x 2 x i16> %elt.head, <vscale x 2 x i16> poison, <vscale x 2 x i32> zeroinitializer
699 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
700 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
701 %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)
702 ret <vscale x 2 x i16> %v
705 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)
707 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) {
708 ; CHECK-LABEL: vor_vv_nxv4i16:
710 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
711 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
713 %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)
714 ret <vscale x 4 x i16> %v
717 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) {
718 ; CHECK-LABEL: vor_vv_nxv4i16_unmasked:
720 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
721 ; CHECK-NEXT: vor.vv v8, v8, v9
723 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
724 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
725 %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)
726 ret <vscale x 4 x i16> %v
729 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) {
730 ; CHECK-LABEL: vor_vx_nxv4i16:
732 ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
733 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
735 %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0
736 %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
737 %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)
738 ret <vscale x 4 x i16> %v
741 define <vscale x 4 x i16> @vor_vx_nxv4i16_unmasked(<vscale x 4 x i16> %va, i16 %b, i32 zeroext %evl) {
742 ; CHECK-LABEL: vor_vx_nxv4i16_unmasked:
744 ; CHECK-NEXT: vsetvli zero, a1, e16, m1, ta, ma
745 ; CHECK-NEXT: vor.vx v8, v8, a0
747 %elt.head = insertelement <vscale x 4 x i16> poison, i16 %b, i32 0
748 %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
749 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
750 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
751 %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)
752 ret <vscale x 4 x i16> %v
755 define <vscale x 4 x i16> @vor_vi_nxv4i16(<vscale x 4 x i16> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
756 ; CHECK-LABEL: vor_vi_nxv4i16:
758 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
759 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
761 %elt.head = insertelement <vscale x 4 x i16> poison, i16 5, i32 0
762 %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
763 %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)
764 ret <vscale x 4 x i16> %v
767 define <vscale x 4 x i16> @vor_vi_nxv4i16_unmasked(<vscale x 4 x i16> %va, i32 zeroext %evl) {
768 ; CHECK-LABEL: vor_vi_nxv4i16_unmasked:
770 ; CHECK-NEXT: vsetvli zero, a0, e16, m1, ta, ma
771 ; CHECK-NEXT: vor.vi v8, v8, 5
773 %elt.head = insertelement <vscale x 4 x i16> poison, i16 5, i32 0
774 %vb = shufflevector <vscale x 4 x i16> %elt.head, <vscale x 4 x i16> poison, <vscale x 4 x i32> zeroinitializer
775 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
776 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
777 %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)
778 ret <vscale x 4 x i16> %v
781 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)
783 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) {
784 ; CHECK-LABEL: vor_vv_nxv8i16:
786 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
787 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
789 %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)
790 ret <vscale x 8 x i16> %v
793 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) {
794 ; CHECK-LABEL: vor_vv_nxv8i16_unmasked:
796 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
797 ; CHECK-NEXT: vor.vv v8, v8, v10
799 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
800 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
801 %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)
802 ret <vscale x 8 x i16> %v
805 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) {
806 ; CHECK-LABEL: vor_vx_nxv8i16:
808 ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma
809 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
811 %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0
812 %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
813 %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)
814 ret <vscale x 8 x i16> %v
817 define <vscale x 8 x i16> @vor_vx_nxv8i16_unmasked(<vscale x 8 x i16> %va, i16 %b, i32 zeroext %evl) {
818 ; CHECK-LABEL: vor_vx_nxv8i16_unmasked:
820 ; CHECK-NEXT: vsetvli zero, a1, e16, m2, ta, ma
821 ; CHECK-NEXT: vor.vx v8, v8, a0
823 %elt.head = insertelement <vscale x 8 x i16> poison, i16 %b, i32 0
824 %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
825 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
826 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
827 %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)
828 ret <vscale x 8 x i16> %v
831 define <vscale x 8 x i16> @vor_vi_nxv8i16(<vscale x 8 x i16> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
832 ; CHECK-LABEL: vor_vi_nxv8i16:
834 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
835 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
837 %elt.head = insertelement <vscale x 8 x i16> poison, i16 5, i32 0
838 %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
839 %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)
840 ret <vscale x 8 x i16> %v
843 define <vscale x 8 x i16> @vor_vi_nxv8i16_unmasked(<vscale x 8 x i16> %va, i32 zeroext %evl) {
844 ; CHECK-LABEL: vor_vi_nxv8i16_unmasked:
846 ; CHECK-NEXT: vsetvli zero, a0, e16, m2, ta, ma
847 ; CHECK-NEXT: vor.vi v8, v8, 5
849 %elt.head = insertelement <vscale x 8 x i16> poison, i16 5, i32 0
850 %vb = shufflevector <vscale x 8 x i16> %elt.head, <vscale x 8 x i16> poison, <vscale x 8 x i32> zeroinitializer
851 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
852 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
853 %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)
854 ret <vscale x 8 x i16> %v
857 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)
859 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) {
860 ; CHECK-LABEL: vor_vv_nxv16i16:
862 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
863 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
865 %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)
866 ret <vscale x 16 x i16> %v
869 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) {
870 ; CHECK-LABEL: vor_vv_nxv16i16_unmasked:
872 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
873 ; CHECK-NEXT: vor.vv v8, v8, v12
875 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
876 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
877 %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)
878 ret <vscale x 16 x i16> %v
881 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) {
882 ; CHECK-LABEL: vor_vx_nxv16i16:
884 ; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma
885 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
887 %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0
888 %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
889 %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)
890 ret <vscale x 16 x i16> %v
893 define <vscale x 16 x i16> @vor_vx_nxv16i16_unmasked(<vscale x 16 x i16> %va, i16 %b, i32 zeroext %evl) {
894 ; CHECK-LABEL: vor_vx_nxv16i16_unmasked:
896 ; CHECK-NEXT: vsetvli zero, a1, e16, m4, ta, ma
897 ; CHECK-NEXT: vor.vx v8, v8, a0
899 %elt.head = insertelement <vscale x 16 x i16> poison, i16 %b, i32 0
900 %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
901 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
902 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
903 %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)
904 ret <vscale x 16 x i16> %v
907 define <vscale x 16 x i16> @vor_vi_nxv16i16(<vscale x 16 x i16> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {
908 ; CHECK-LABEL: vor_vi_nxv16i16:
910 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
911 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
913 %elt.head = insertelement <vscale x 16 x i16> poison, i16 5, i32 0
914 %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
915 %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)
916 ret <vscale x 16 x i16> %v
919 define <vscale x 16 x i16> @vor_vi_nxv16i16_unmasked(<vscale x 16 x i16> %va, i32 zeroext %evl) {
920 ; CHECK-LABEL: vor_vi_nxv16i16_unmasked:
922 ; CHECK-NEXT: vsetvli zero, a0, e16, m4, ta, ma
923 ; CHECK-NEXT: vor.vi v8, v8, 5
925 %elt.head = insertelement <vscale x 16 x i16> poison, i16 5, i32 0
926 %vb = shufflevector <vscale x 16 x i16> %elt.head, <vscale x 16 x i16> poison, <vscale x 16 x i32> zeroinitializer
927 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
928 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
929 %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)
930 ret <vscale x 16 x i16> %v
933 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)
935 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) {
936 ; CHECK-LABEL: vor_vv_nxv32i16:
938 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
939 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
941 %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)
942 ret <vscale x 32 x i16> %v
945 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) {
946 ; CHECK-LABEL: vor_vv_nxv32i16_unmasked:
948 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
949 ; CHECK-NEXT: vor.vv v8, v8, v16
951 %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
952 %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
953 %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)
954 ret <vscale x 32 x i16> %v
957 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) {
958 ; CHECK-LABEL: vor_vx_nxv32i16:
960 ; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma
961 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
963 %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0
964 %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
965 %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)
966 ret <vscale x 32 x i16> %v
969 define <vscale x 32 x i16> @vor_vx_nxv32i16_unmasked(<vscale x 32 x i16> %va, i16 %b, i32 zeroext %evl) {
970 ; CHECK-LABEL: vor_vx_nxv32i16_unmasked:
972 ; CHECK-NEXT: vsetvli zero, a1, e16, m8, ta, ma
973 ; CHECK-NEXT: vor.vx v8, v8, a0
975 %elt.head = insertelement <vscale x 32 x i16> poison, i16 %b, i32 0
976 %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
977 %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
978 %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
979 %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)
980 ret <vscale x 32 x i16> %v
983 define <vscale x 32 x i16> @vor_vi_nxv32i16(<vscale x 32 x i16> %va, <vscale x 32 x i1> %m, i32 zeroext %evl) {
984 ; CHECK-LABEL: vor_vi_nxv32i16:
986 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
987 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
989 %elt.head = insertelement <vscale x 32 x i16> poison, i16 5, i32 0
990 %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
991 %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)
992 ret <vscale x 32 x i16> %v
995 define <vscale x 32 x i16> @vor_vi_nxv32i16_unmasked(<vscale x 32 x i16> %va, i32 zeroext %evl) {
996 ; CHECK-LABEL: vor_vi_nxv32i16_unmasked:
998 ; CHECK-NEXT: vsetvli zero, a0, e16, m8, ta, ma
999 ; CHECK-NEXT: vor.vi v8, v8, 5
1001 %elt.head = insertelement <vscale x 32 x i16> poison, i16 5, i32 0
1002 %vb = shufflevector <vscale x 32 x i16> %elt.head, <vscale x 32 x i16> poison, <vscale x 32 x i32> zeroinitializer
1003 %head = insertelement <vscale x 32 x i1> poison, i1 true, i32 0
1004 %m = shufflevector <vscale x 32 x i1> %head, <vscale x 32 x i1> poison, <vscale x 32 x i32> zeroinitializer
1005 %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)
1006 ret <vscale x 32 x i16> %v
1009 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)
1011 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) {
1012 ; CHECK-LABEL: vor_vv_nxv1i32:
1014 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
1015 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
1017 %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)
1018 ret <vscale x 1 x i32> %v
1021 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) {
1022 ; CHECK-LABEL: vor_vv_nxv1i32_unmasked:
1024 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
1025 ; CHECK-NEXT: vor.vv v8, v8, v9
1027 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
1028 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
1029 %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)
1030 ret <vscale x 1 x i32> %v
1033 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) {
1034 ; CHECK-LABEL: vor_vx_nxv1i32:
1036 ; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma
1037 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
1039 %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0
1040 %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
1041 %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)
1042 ret <vscale x 1 x i32> %v
1045 define <vscale x 1 x i32> @vor_vx_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 %b, i32 zeroext %evl) {
1046 ; CHECK-LABEL: vor_vx_nxv1i32_unmasked:
1048 ; CHECK-NEXT: vsetvli zero, a1, e32, mf2, ta, ma
1049 ; CHECK-NEXT: vor.vx v8, v8, a0
1051 %elt.head = insertelement <vscale x 1 x i32> poison, i32 %b, i32 0
1052 %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
1053 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
1054 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
1055 %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)
1056 ret <vscale x 1 x i32> %v
1059 define <vscale x 1 x i32> @vor_vi_nxv1i32(<vscale x 1 x i32> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
1060 ; CHECK-LABEL: vor_vi_nxv1i32:
1062 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
1063 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1065 %elt.head = insertelement <vscale x 1 x i32> poison, i32 5, i32 0
1066 %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
1067 %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)
1068 ret <vscale x 1 x i32> %v
1071 define <vscale x 1 x i32> @vor_vi_nxv1i32_unmasked(<vscale x 1 x i32> %va, i32 zeroext %evl) {
1072 ; CHECK-LABEL: vor_vi_nxv1i32_unmasked:
1074 ; CHECK-NEXT: vsetvli zero, a0, e32, mf2, ta, ma
1075 ; CHECK-NEXT: vor.vi v8, v8, 5
1077 %elt.head = insertelement <vscale x 1 x i32> poison, i32 5, i32 0
1078 %vb = shufflevector <vscale x 1 x i32> %elt.head, <vscale x 1 x i32> poison, <vscale x 1 x i32> zeroinitializer
1079 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
1080 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
1081 %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)
1082 ret <vscale x 1 x i32> %v
1085 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)
1087 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) {
1088 ; CHECK-LABEL: vor_vv_nxv2i32:
1090 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
1091 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
1093 %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)
1094 ret <vscale x 2 x i32> %v
1097 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) {
1098 ; CHECK-LABEL: vor_vv_nxv2i32_unmasked:
1100 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
1101 ; CHECK-NEXT: vor.vv v8, v8, v9
1103 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1104 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1105 %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)
1106 ret <vscale x 2 x i32> %v
1109 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) {
1110 ; CHECK-LABEL: vor_vx_nxv2i32:
1112 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
1113 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
1115 %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
1116 %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
1117 %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)
1118 ret <vscale x 2 x i32> %v
1121 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) {
1122 ; CHECK-LABEL: vor_vx_nxv2i32_commute:
1124 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
1125 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
1127 %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
1128 %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
1129 %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)
1130 ret <vscale x 2 x i32> %v
1133 define <vscale x 2 x i32> @vor_vx_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {
1134 ; CHECK-LABEL: vor_vx_nxv2i32_unmasked:
1136 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
1137 ; CHECK-NEXT: vor.vx v8, v8, a0
1139 %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
1140 %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
1141 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1142 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1143 %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)
1144 ret <vscale x 2 x i32> %v
1147 define <vscale x 2 x i32> @vor_vx_nxv2i32_unmasked_commute(<vscale x 2 x i32> %va, i32 %b, i32 zeroext %evl) {
1148 ; CHECK-LABEL: vor_vx_nxv2i32_unmasked_commute:
1150 ; CHECK-NEXT: vsetvli zero, a1, e32, m1, ta, ma
1151 ; CHECK-NEXT: vor.vx v8, v8, a0
1153 %elt.head = insertelement <vscale x 2 x i32> poison, i32 %b, i32 0
1154 %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
1155 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1156 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1157 %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)
1158 ret <vscale x 2 x i32> %v
1161 define <vscale x 2 x i32> @vor_vi_nxv2i32(<vscale x 2 x i32> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1162 ; CHECK-LABEL: vor_vi_nxv2i32:
1164 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
1165 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1167 %elt.head = insertelement <vscale x 2 x i32> poison, i32 5, i32 0
1168 %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
1169 %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)
1170 ret <vscale x 2 x i32> %v
1173 define <vscale x 2 x i32> @vor_vi_nxv2i32_unmasked(<vscale x 2 x i32> %va, i32 zeroext %evl) {
1174 ; CHECK-LABEL: vor_vi_nxv2i32_unmasked:
1176 ; CHECK-NEXT: vsetvli zero, a0, e32, m1, ta, ma
1177 ; CHECK-NEXT: vor.vi v8, v8, 5
1179 %elt.head = insertelement <vscale x 2 x i32> poison, i32 5, i32 0
1180 %vb = shufflevector <vscale x 2 x i32> %elt.head, <vscale x 2 x i32> poison, <vscale x 2 x i32> zeroinitializer
1181 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1182 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1183 %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)
1184 ret <vscale x 2 x i32> %v
1187 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)
1189 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) {
1190 ; CHECK-LABEL: vor_vv_nxv4i32:
1192 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1193 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
1195 %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)
1196 ret <vscale x 4 x i32> %v
1199 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) {
1200 ; CHECK-LABEL: vor_vv_nxv4i32_unmasked:
1202 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1203 ; CHECK-NEXT: vor.vv v8, v8, v10
1205 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1206 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1207 %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)
1208 ret <vscale x 4 x i32> %v
1211 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) {
1212 ; CHECK-LABEL: vor_vx_nxv4i32:
1214 ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma
1215 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
1217 %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0
1218 %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
1219 %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)
1220 ret <vscale x 4 x i32> %v
1223 define <vscale x 4 x i32> @vor_vx_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 %b, i32 zeroext %evl) {
1224 ; CHECK-LABEL: vor_vx_nxv4i32_unmasked:
1226 ; CHECK-NEXT: vsetvli zero, a1, e32, m2, ta, ma
1227 ; CHECK-NEXT: vor.vx v8, v8, a0
1229 %elt.head = insertelement <vscale x 4 x i32> poison, i32 %b, i32 0
1230 %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
1231 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1232 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1233 %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)
1234 ret <vscale x 4 x i32> %v
1237 define <vscale x 4 x i32> @vor_vi_nxv4i32(<vscale x 4 x i32> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1238 ; CHECK-LABEL: vor_vi_nxv4i32:
1240 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1241 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1243 %elt.head = insertelement <vscale x 4 x i32> poison, i32 5, i32 0
1244 %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
1245 %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)
1246 ret <vscale x 4 x i32> %v
1249 define <vscale x 4 x i32> @vor_vi_nxv4i32_unmasked(<vscale x 4 x i32> %va, i32 zeroext %evl) {
1250 ; CHECK-LABEL: vor_vi_nxv4i32_unmasked:
1252 ; CHECK-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1253 ; CHECK-NEXT: vor.vi v8, v8, 5
1255 %elt.head = insertelement <vscale x 4 x i32> poison, i32 5, i32 0
1256 %vb = shufflevector <vscale x 4 x i32> %elt.head, <vscale x 4 x i32> poison, <vscale x 4 x i32> zeroinitializer
1257 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1258 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1259 %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)
1260 ret <vscale x 4 x i32> %v
1263 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)
1265 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) {
1266 ; CHECK-LABEL: vor_vv_nxv8i32:
1268 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1269 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
1271 %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)
1272 ret <vscale x 8 x i32> %v
1275 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) {
1276 ; CHECK-LABEL: vor_vv_nxv8i32_unmasked:
1278 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1279 ; CHECK-NEXT: vor.vv v8, v8, v12
1281 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1282 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1283 %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)
1284 ret <vscale x 8 x i32> %v
1287 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) {
1288 ; CHECK-LABEL: vor_vx_nxv8i32:
1290 ; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma
1291 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
1293 %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0
1294 %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
1295 %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)
1296 ret <vscale x 8 x i32> %v
1299 define <vscale x 8 x i32> @vor_vx_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 %b, i32 zeroext %evl) {
1300 ; CHECK-LABEL: vor_vx_nxv8i32_unmasked:
1302 ; CHECK-NEXT: vsetvli zero, a1, e32, m4, ta, ma
1303 ; CHECK-NEXT: vor.vx v8, v8, a0
1305 %elt.head = insertelement <vscale x 8 x i32> poison, i32 %b, i32 0
1306 %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
1307 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1308 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1309 %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)
1310 ret <vscale x 8 x i32> %v
1313 define <vscale x 8 x i32> @vor_vi_nxv8i32(<vscale x 8 x i32> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1314 ; CHECK-LABEL: vor_vi_nxv8i32:
1316 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1317 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1319 %elt.head = insertelement <vscale x 8 x i32> poison, i32 5, i32 0
1320 %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
1321 %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)
1322 ret <vscale x 8 x i32> %v
1325 define <vscale x 8 x i32> @vor_vi_nxv8i32_unmasked(<vscale x 8 x i32> %va, i32 zeroext %evl) {
1326 ; CHECK-LABEL: vor_vi_nxv8i32_unmasked:
1328 ; CHECK-NEXT: vsetvli zero, a0, e32, m4, ta, ma
1329 ; CHECK-NEXT: vor.vi v8, v8, 5
1331 %elt.head = insertelement <vscale x 8 x i32> poison, i32 5, i32 0
1332 %vb = shufflevector <vscale x 8 x i32> %elt.head, <vscale x 8 x i32> poison, <vscale x 8 x i32> zeroinitializer
1333 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1334 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1335 %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)
1336 ret <vscale x 8 x i32> %v
1339 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)
1341 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) {
1342 ; CHECK-LABEL: vor_vv_nxv10i32:
1344 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1345 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
1347 %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)
1348 ret <vscale x 10 x i32> %v
1351 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) {
1352 ; CHECK-LABEL: vor_vv_nxv10i32_unmasked:
1354 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1355 ; CHECK-NEXT: vor.vv v8, v8, v16
1357 %head = insertelement <vscale x 10 x i1> poison, i1 true, i32 0
1358 %m = shufflevector <vscale x 10 x i1> %head, <vscale x 10 x i1> poison, <vscale x 10 x i32> zeroinitializer
1359 %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)
1360 ret <vscale x 10 x i32> %v
1363 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) {
1364 ; CHECK-LABEL: vor_vx_nxv10i32:
1366 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1367 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
1369 %elt.head = insertelement <vscale x 10 x i32> poison, i32 %b, i32 0
1370 %vb = shufflevector <vscale x 10 x i32> %elt.head, <vscale x 10 x i32> poison, <vscale x 10 x i32> zeroinitializer
1371 %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)
1372 ret <vscale x 10 x i32> %v
1375 define <vscale x 10 x i32> @vor_vx_nxv10i32_unmasked(<vscale x 10 x i32> %va, i32 %b, i32 zeroext %evl) {
1376 ; CHECK-LABEL: vor_vx_nxv10i32_unmasked:
1378 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1379 ; CHECK-NEXT: vor.vx v8, v8, a0
1381 %elt.head = insertelement <vscale x 10 x i32> poison, i32 %b, i32 0
1382 %vb = shufflevector <vscale x 10 x i32> %elt.head, <vscale x 10 x i32> poison, <vscale x 10 x i32> zeroinitializer
1383 %head = insertelement <vscale x 10 x i1> poison, i1 true, i32 0
1384 %m = shufflevector <vscale x 10 x i1> %head, <vscale x 10 x i1> poison, <vscale x 10 x i32> zeroinitializer
1385 %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)
1386 ret <vscale x 10 x i32> %v
1389 define <vscale x 10 x i32> @vor_vi_nxv10i32(<vscale x 10 x i32> %va, <vscale x 10 x i1> %m, i32 zeroext %evl) {
1390 ; CHECK-LABEL: vor_vi_nxv10i32:
1392 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1393 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1395 %elt.head = insertelement <vscale x 10 x i32> poison, i32 5, i32 0
1396 %vb = shufflevector <vscale x 10 x i32> %elt.head, <vscale x 10 x i32> poison, <vscale x 10 x i32> zeroinitializer
1397 %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)
1398 ret <vscale x 10 x i32> %v
1401 define <vscale x 10 x i32> @vor_vi_nxv10i32_unmasked(<vscale x 10 x i32> %va, i32 zeroext %evl) {
1402 ; CHECK-LABEL: vor_vi_nxv10i32_unmasked:
1404 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1405 ; CHECK-NEXT: vor.vi v8, v8, 5
1407 %elt.head = insertelement <vscale x 10 x i32> poison, i32 5, i32 0
1408 %vb = shufflevector <vscale x 10 x i32> %elt.head, <vscale x 10 x i32> poison, <vscale x 10 x i32> zeroinitializer
1409 %head = insertelement <vscale x 10 x i1> poison, i1 true, i32 0
1410 %m = shufflevector <vscale x 10 x i1> %head, <vscale x 10 x i1> poison, <vscale x 10 x i32> zeroinitializer
1411 %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)
1412 ret <vscale x 10 x i32> %v
1415 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)
1417 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) {
1418 ; CHECK-LABEL: vor_vv_nxv16i32:
1420 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1421 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
1423 %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)
1424 ret <vscale x 16 x i32> %v
1427 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) {
1428 ; CHECK-LABEL: vor_vv_nxv16i32_unmasked:
1430 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1431 ; CHECK-NEXT: vor.vv v8, v8, v16
1433 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
1434 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
1435 %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)
1436 ret <vscale x 16 x i32> %v
1439 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) {
1440 ; CHECK-LABEL: vor_vx_nxv16i32:
1442 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1443 ; CHECK-NEXT: vor.vx v8, v8, a0, v0.t
1445 %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0
1446 %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
1447 %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)
1448 ret <vscale x 16 x i32> %v
1451 define <vscale x 16 x i32> @vor_vx_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 %b, i32 zeroext %evl) {
1452 ; CHECK-LABEL: vor_vx_nxv16i32_unmasked:
1454 ; CHECK-NEXT: vsetvli zero, a1, e32, m8, ta, ma
1455 ; CHECK-NEXT: vor.vx v8, v8, a0
1457 %elt.head = insertelement <vscale x 16 x i32> poison, i32 %b, i32 0
1458 %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
1459 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
1460 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
1461 %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)
1462 ret <vscale x 16 x i32> %v
1465 define <vscale x 16 x i32> @vor_vi_nxv16i32(<vscale x 16 x i32> %va, <vscale x 16 x i1> %m, i32 zeroext %evl) {
1466 ; CHECK-LABEL: vor_vi_nxv16i32:
1468 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1469 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1471 %elt.head = insertelement <vscale x 16 x i32> poison, i32 5, i32 0
1472 %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
1473 %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)
1474 ret <vscale x 16 x i32> %v
1477 define <vscale x 16 x i32> @vor_vi_nxv16i32_unmasked(<vscale x 16 x i32> %va, i32 zeroext %evl) {
1478 ; CHECK-LABEL: vor_vi_nxv16i32_unmasked:
1480 ; CHECK-NEXT: vsetvli zero, a0, e32, m8, ta, ma
1481 ; CHECK-NEXT: vor.vi v8, v8, 5
1483 %elt.head = insertelement <vscale x 16 x i32> poison, i32 5, i32 0
1484 %vb = shufflevector <vscale x 16 x i32> %elt.head, <vscale x 16 x i32> poison, <vscale x 16 x i32> zeroinitializer
1485 %head = insertelement <vscale x 16 x i1> poison, i1 true, i32 0
1486 %m = shufflevector <vscale x 16 x i1> %head, <vscale x 16 x i1> poison, <vscale x 16 x i32> zeroinitializer
1487 %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)
1488 ret <vscale x 16 x i32> %v
1491 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)
1493 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) {
1494 ; CHECK-LABEL: vor_vv_nxv1i64:
1496 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1497 ; CHECK-NEXT: vor.vv v8, v8, v9, v0.t
1499 %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)
1500 ret <vscale x 1 x i64> %v
1503 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) {
1504 ; CHECK-LABEL: vor_vv_nxv1i64_unmasked:
1506 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1507 ; CHECK-NEXT: vor.vv v8, v8, v9
1509 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
1510 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
1511 %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)
1512 ret <vscale x 1 x i64> %v
1515 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) {
1516 ; RV32-LABEL: vor_vx_nxv1i64:
1518 ; RV32-NEXT: addi sp, sp, -16
1519 ; RV32-NEXT: .cfi_def_cfa_offset 16
1520 ; RV32-NEXT: sw a1, 12(sp)
1521 ; RV32-NEXT: sw a0, 8(sp)
1522 ; RV32-NEXT: addi a0, sp, 8
1523 ; RV32-NEXT: vsetvli a1, zero, e64, m1, ta, ma
1524 ; RV32-NEXT: vlse64.v v9, (a0), zero
1525 ; RV32-NEXT: vsetvli zero, a2, e64, m1, ta, ma
1526 ; RV32-NEXT: vor.vv v8, v8, v9, v0.t
1527 ; RV32-NEXT: addi sp, sp, 16
1530 ; RV64-LABEL: vor_vx_nxv1i64:
1532 ; RV64-NEXT: vsetvli zero, a1, e64, m1, ta, ma
1533 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
1535 %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0
1536 %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
1537 %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)
1538 ret <vscale x 1 x i64> %v
1541 define <vscale x 1 x i64> @vor_vx_nxv1i64_unmasked(<vscale x 1 x i64> %va, i64 %b, i32 zeroext %evl) {
1542 ; RV32-LABEL: vor_vx_nxv1i64_unmasked:
1544 ; RV32-NEXT: addi sp, sp, -16
1545 ; RV32-NEXT: .cfi_def_cfa_offset 16
1546 ; RV32-NEXT: sw a1, 12(sp)
1547 ; RV32-NEXT: sw a0, 8(sp)
1548 ; RV32-NEXT: addi a0, sp, 8
1549 ; RV32-NEXT: vsetvli a1, zero, e64, m1, ta, ma
1550 ; RV32-NEXT: vlse64.v v9, (a0), zero
1551 ; RV32-NEXT: vsetvli zero, a2, e64, m1, ta, ma
1552 ; RV32-NEXT: vor.vv v8, v8, v9
1553 ; RV32-NEXT: addi sp, sp, 16
1556 ; RV64-LABEL: vor_vx_nxv1i64_unmasked:
1558 ; RV64-NEXT: vsetvli zero, a1, e64, m1, ta, ma
1559 ; RV64-NEXT: vor.vx v8, v8, a0
1561 %elt.head = insertelement <vscale x 1 x i64> poison, i64 %b, i32 0
1562 %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
1563 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
1564 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
1565 %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)
1566 ret <vscale x 1 x i64> %v
1569 define <vscale x 1 x i64> @vor_vi_nxv1i64(<vscale x 1 x i64> %va, <vscale x 1 x i1> %m, i32 zeroext %evl) {
1570 ; CHECK-LABEL: vor_vi_nxv1i64:
1572 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1573 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1575 %elt.head = insertelement <vscale x 1 x i64> poison, i64 5, i32 0
1576 %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
1577 %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)
1578 ret <vscale x 1 x i64> %v
1581 define <vscale x 1 x i64> @vor_vi_nxv1i64_unmasked(<vscale x 1 x i64> %va, i32 zeroext %evl) {
1582 ; CHECK-LABEL: vor_vi_nxv1i64_unmasked:
1584 ; CHECK-NEXT: vsetvli zero, a0, e64, m1, ta, ma
1585 ; CHECK-NEXT: vor.vi v8, v8, 5
1587 %elt.head = insertelement <vscale x 1 x i64> poison, i64 5, i32 0
1588 %vb = shufflevector <vscale x 1 x i64> %elt.head, <vscale x 1 x i64> poison, <vscale x 1 x i32> zeroinitializer
1589 %head = insertelement <vscale x 1 x i1> poison, i1 true, i32 0
1590 %m = shufflevector <vscale x 1 x i1> %head, <vscale x 1 x i1> poison, <vscale x 1 x i32> zeroinitializer
1591 %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)
1592 ret <vscale x 1 x i64> %v
1595 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)
1597 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) {
1598 ; CHECK-LABEL: vor_vv_nxv2i64:
1600 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1601 ; CHECK-NEXT: vor.vv v8, v8, v10, v0.t
1603 %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)
1604 ret <vscale x 2 x i64> %v
1607 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) {
1608 ; CHECK-LABEL: vor_vv_nxv2i64_unmasked:
1610 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1611 ; CHECK-NEXT: vor.vv v8, v8, v10
1613 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1614 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1615 %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)
1616 ret <vscale x 2 x i64> %v
1619 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) {
1620 ; RV32-LABEL: vor_vx_nxv2i64:
1622 ; RV32-NEXT: addi sp, sp, -16
1623 ; RV32-NEXT: .cfi_def_cfa_offset 16
1624 ; RV32-NEXT: sw a1, 12(sp)
1625 ; RV32-NEXT: sw a0, 8(sp)
1626 ; RV32-NEXT: addi a0, sp, 8
1627 ; RV32-NEXT: vsetvli a1, zero, e64, m2, ta, ma
1628 ; RV32-NEXT: vlse64.v v10, (a0), zero
1629 ; RV32-NEXT: vsetvli zero, a2, e64, m2, ta, ma
1630 ; RV32-NEXT: vor.vv v8, v8, v10, v0.t
1631 ; RV32-NEXT: addi sp, sp, 16
1634 ; RV64-LABEL: vor_vx_nxv2i64:
1636 ; RV64-NEXT: vsetvli zero, a1, e64, m2, ta, ma
1637 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
1639 %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0
1640 %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1641 %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)
1642 ret <vscale x 2 x i64> %v
1645 define <vscale x 2 x i64> @vor_vx_nxv2i64_unmasked(<vscale x 2 x i64> %va, i64 %b, i32 zeroext %evl) {
1646 ; RV32-LABEL: vor_vx_nxv2i64_unmasked:
1648 ; RV32-NEXT: addi sp, sp, -16
1649 ; RV32-NEXT: .cfi_def_cfa_offset 16
1650 ; RV32-NEXT: sw a1, 12(sp)
1651 ; RV32-NEXT: sw a0, 8(sp)
1652 ; RV32-NEXT: addi a0, sp, 8
1653 ; RV32-NEXT: vsetvli a1, zero, e64, m2, ta, ma
1654 ; RV32-NEXT: vlse64.v v10, (a0), zero
1655 ; RV32-NEXT: vsetvli zero, a2, e64, m2, ta, ma
1656 ; RV32-NEXT: vor.vv v8, v8, v10
1657 ; RV32-NEXT: addi sp, sp, 16
1660 ; RV64-LABEL: vor_vx_nxv2i64_unmasked:
1662 ; RV64-NEXT: vsetvli zero, a1, e64, m2, ta, ma
1663 ; RV64-NEXT: vor.vx v8, v8, a0
1665 %elt.head = insertelement <vscale x 2 x i64> poison, i64 %b, i32 0
1666 %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1667 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1668 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1669 %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)
1670 ret <vscale x 2 x i64> %v
1673 define <vscale x 2 x i64> @vor_vi_nxv2i64(<vscale x 2 x i64> %va, <vscale x 2 x i1> %m, i32 zeroext %evl) {
1674 ; CHECK-LABEL: vor_vi_nxv2i64:
1676 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1677 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1679 %elt.head = insertelement <vscale x 2 x i64> poison, i64 5, i32 0
1680 %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1681 %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)
1682 ret <vscale x 2 x i64> %v
1685 define <vscale x 2 x i64> @vor_vi_nxv2i64_unmasked(<vscale x 2 x i64> %va, i32 zeroext %evl) {
1686 ; CHECK-LABEL: vor_vi_nxv2i64_unmasked:
1688 ; CHECK-NEXT: vsetvli zero, a0, e64, m2, ta, ma
1689 ; CHECK-NEXT: vor.vi v8, v8, 5
1691 %elt.head = insertelement <vscale x 2 x i64> poison, i64 5, i32 0
1692 %vb = shufflevector <vscale x 2 x i64> %elt.head, <vscale x 2 x i64> poison, <vscale x 2 x i32> zeroinitializer
1693 %head = insertelement <vscale x 2 x i1> poison, i1 true, i32 0
1694 %m = shufflevector <vscale x 2 x i1> %head, <vscale x 2 x i1> poison, <vscale x 2 x i32> zeroinitializer
1695 %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)
1696 ret <vscale x 2 x i64> %v
1699 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)
1701 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) {
1702 ; CHECK-LABEL: vor_vv_nxv4i64:
1704 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1705 ; CHECK-NEXT: vor.vv v8, v8, v12, v0.t
1707 %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)
1708 ret <vscale x 4 x i64> %v
1711 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) {
1712 ; CHECK-LABEL: vor_vv_nxv4i64_unmasked:
1714 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1715 ; CHECK-NEXT: vor.vv v8, v8, v12
1717 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1718 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1719 %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)
1720 ret <vscale x 4 x i64> %v
1723 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) {
1724 ; RV32-LABEL: vor_vx_nxv4i64:
1726 ; RV32-NEXT: addi sp, sp, -16
1727 ; RV32-NEXT: .cfi_def_cfa_offset 16
1728 ; RV32-NEXT: sw a1, 12(sp)
1729 ; RV32-NEXT: sw a0, 8(sp)
1730 ; RV32-NEXT: addi a0, sp, 8
1731 ; RV32-NEXT: vsetvli a1, zero, e64, m4, ta, ma
1732 ; RV32-NEXT: vlse64.v v12, (a0), zero
1733 ; RV32-NEXT: vsetvli zero, a2, e64, m4, ta, ma
1734 ; RV32-NEXT: vor.vv v8, v8, v12, v0.t
1735 ; RV32-NEXT: addi sp, sp, 16
1738 ; RV64-LABEL: vor_vx_nxv4i64:
1740 ; RV64-NEXT: vsetvli zero, a1, e64, m4, ta, ma
1741 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
1743 %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 0
1744 %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1745 %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)
1746 ret <vscale x 4 x i64> %v
1749 define <vscale x 4 x i64> @vor_vx_nxv4i64_unmasked(<vscale x 4 x i64> %va, i64 %b, i32 zeroext %evl) {
1750 ; RV32-LABEL: vor_vx_nxv4i64_unmasked:
1752 ; RV32-NEXT: addi sp, sp, -16
1753 ; RV32-NEXT: .cfi_def_cfa_offset 16
1754 ; RV32-NEXT: sw a1, 12(sp)
1755 ; RV32-NEXT: sw a0, 8(sp)
1756 ; RV32-NEXT: addi a0, sp, 8
1757 ; RV32-NEXT: vsetvli a1, zero, e64, m4, ta, ma
1758 ; RV32-NEXT: vlse64.v v12, (a0), zero
1759 ; RV32-NEXT: vsetvli zero, a2, e64, m4, ta, ma
1760 ; RV32-NEXT: vor.vv v8, v8, v12
1761 ; RV32-NEXT: addi sp, sp, 16
1764 ; RV64-LABEL: vor_vx_nxv4i64_unmasked:
1766 ; RV64-NEXT: vsetvli zero, a1, e64, m4, ta, ma
1767 ; RV64-NEXT: vor.vx v8, v8, a0
1769 %elt.head = insertelement <vscale x 4 x i64> poison, i64 %b, i32 0
1770 %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1771 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1772 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1773 %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)
1774 ret <vscale x 4 x i64> %v
1777 define <vscale x 4 x i64> @vor_vi_nxv4i64(<vscale x 4 x i64> %va, <vscale x 4 x i1> %m, i32 zeroext %evl) {
1778 ; CHECK-LABEL: vor_vi_nxv4i64:
1780 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1781 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1783 %elt.head = insertelement <vscale x 4 x i64> poison, i64 5, i32 0
1784 %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1785 %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)
1786 ret <vscale x 4 x i64> %v
1789 define <vscale x 4 x i64> @vor_vi_nxv4i64_unmasked(<vscale x 4 x i64> %va, i32 zeroext %evl) {
1790 ; CHECK-LABEL: vor_vi_nxv4i64_unmasked:
1792 ; CHECK-NEXT: vsetvli zero, a0, e64, m4, ta, ma
1793 ; CHECK-NEXT: vor.vi v8, v8, 5
1795 %elt.head = insertelement <vscale x 4 x i64> poison, i64 5, i32 0
1796 %vb = shufflevector <vscale x 4 x i64> %elt.head, <vscale x 4 x i64> poison, <vscale x 4 x i32> zeroinitializer
1797 %head = insertelement <vscale x 4 x i1> poison, i1 true, i32 0
1798 %m = shufflevector <vscale x 4 x i1> %head, <vscale x 4 x i1> poison, <vscale x 4 x i32> zeroinitializer
1799 %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)
1800 ret <vscale x 4 x i64> %v
1803 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)
1805 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) {
1806 ; CHECK-LABEL: vor_vv_nxv8i64:
1808 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1809 ; CHECK-NEXT: vor.vv v8, v8, v16, v0.t
1811 %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)
1812 ret <vscale x 8 x i64> %v
1815 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) {
1816 ; CHECK-LABEL: vor_vv_nxv8i64_unmasked:
1818 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1819 ; CHECK-NEXT: vor.vv v8, v8, v16
1821 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1822 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1823 %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)
1824 ret <vscale x 8 x i64> %v
1827 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) {
1828 ; RV32-LABEL: vor_vx_nxv8i64:
1830 ; RV32-NEXT: addi sp, sp, -16
1831 ; RV32-NEXT: .cfi_def_cfa_offset 16
1832 ; RV32-NEXT: sw a1, 12(sp)
1833 ; RV32-NEXT: sw a0, 8(sp)
1834 ; RV32-NEXT: addi a0, sp, 8
1835 ; RV32-NEXT: vsetvli a1, zero, e64, m8, ta, ma
1836 ; RV32-NEXT: vlse64.v v16, (a0), zero
1837 ; RV32-NEXT: vsetvli zero, a2, e64, m8, ta, ma
1838 ; RV32-NEXT: vor.vv v8, v8, v16, v0.t
1839 ; RV32-NEXT: addi sp, sp, 16
1842 ; RV64-LABEL: vor_vx_nxv8i64:
1844 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, ma
1845 ; RV64-NEXT: vor.vx v8, v8, a0, v0.t
1847 %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 0
1848 %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1849 %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)
1850 ret <vscale x 8 x i64> %v
1853 define <vscale x 8 x i64> @vor_vx_nxv8i64_unmasked(<vscale x 8 x i64> %va, i64 %b, i32 zeroext %evl) {
1854 ; RV32-LABEL: vor_vx_nxv8i64_unmasked:
1856 ; RV32-NEXT: addi sp, sp, -16
1857 ; RV32-NEXT: .cfi_def_cfa_offset 16
1858 ; RV32-NEXT: sw a1, 12(sp)
1859 ; RV32-NEXT: sw a0, 8(sp)
1860 ; RV32-NEXT: addi a0, sp, 8
1861 ; RV32-NEXT: vsetvli a1, zero, e64, m8, ta, ma
1862 ; RV32-NEXT: vlse64.v v16, (a0), zero
1863 ; RV32-NEXT: vsetvli zero, a2, e64, m8, ta, ma
1864 ; RV32-NEXT: vor.vv v8, v8, v16
1865 ; RV32-NEXT: addi sp, sp, 16
1868 ; RV64-LABEL: vor_vx_nxv8i64_unmasked:
1870 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, ma
1871 ; RV64-NEXT: vor.vx v8, v8, a0
1873 %elt.head = insertelement <vscale x 8 x i64> poison, i64 %b, i32 0
1874 %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1875 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1876 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1877 %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)
1878 ret <vscale x 8 x i64> %v
1881 define <vscale x 8 x i64> @vor_vi_nxv8i64(<vscale x 8 x i64> %va, <vscale x 8 x i1> %m, i32 zeroext %evl) {
1882 ; CHECK-LABEL: vor_vi_nxv8i64:
1884 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1885 ; CHECK-NEXT: vor.vi v8, v8, 5, v0.t
1887 %elt.head = insertelement <vscale x 8 x i64> poison, i64 5, i32 0
1888 %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1889 %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)
1890 ret <vscale x 8 x i64> %v
1893 define <vscale x 8 x i64> @vor_vi_nxv8i64_unmasked(<vscale x 8 x i64> %va, i32 zeroext %evl) {
1894 ; CHECK-LABEL: vor_vi_nxv8i64_unmasked:
1896 ; CHECK-NEXT: vsetvli zero, a0, e64, m8, ta, ma
1897 ; CHECK-NEXT: vor.vi v8, v8, 5
1899 %elt.head = insertelement <vscale x 8 x i64> poison, i64 5, i32 0
1900 %vb = shufflevector <vscale x 8 x i64> %elt.head, <vscale x 8 x i64> poison, <vscale x 8 x i32> zeroinitializer
1901 %head = insertelement <vscale x 8 x i1> poison, i1 true, i32 0
1902 %m = shufflevector <vscale x 8 x i1> %head, <vscale x 8 x i1> poison, <vscale x 8 x i32> zeroinitializer
1903 %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)
1904 ret <vscale x 8 x i64> %v