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