Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / vor-vp.ll
blobccab5e40d450ff2bf9d9a64f81c4797d22dbc8a0
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   %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:
47 ; CHECK:       # %bb.0:
48 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
49 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
50 ; CHECK-NEXT:    ret
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:
59 ; CHECK:       # %bb.0:
60 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
61 ; CHECK-NEXT:    vor.vx v8, v8, a0
62 ; CHECK-NEXT:    ret
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:
73 ; CHECK:       # %bb.0:
74 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
75 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
76 ; CHECK-NEXT:    ret
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:
85 ; CHECK:       # %bb.0:
86 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
87 ; CHECK-NEXT:    vor.vi v8, v8, 5
88 ; CHECK-NEXT:    ret
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:
101 ; CHECK:       # %bb.0:
102 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
103 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
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> %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:
111 ; CHECK:       # %bb.0:
112 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
113 ; CHECK-NEXT:    vor.vv v8, v8, v9
114 ; CHECK-NEXT:    ret
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:
123 ; CHECK:       # %bb.0:
124 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
125 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
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> %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:
135 ; CHECK:       # %bb.0:
136 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
137 ; CHECK-NEXT:    vor.vx v8, v8, a0
138 ; CHECK-NEXT:    ret
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:
149 ; CHECK:       # %bb.0:
150 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
151 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
152 ; CHECK-NEXT:    ret
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:
161 ; CHECK:       # %bb.0:
162 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
163 ; CHECK-NEXT:    vor.vi v8, v8, 5
164 ; CHECK-NEXT:    ret
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:
177 ; CHECK:       # %bb.0:
178 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
179 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
180 ; CHECK-NEXT:    ret
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:
187 ; CHECK:       # %bb.0:
188 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
189 ; CHECK-NEXT:    vor.vv v8, v8, v9
190 ; CHECK-NEXT:    ret
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:
199 ; CHECK:       # %bb.0:
200 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
201 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
202 ; CHECK-NEXT:    ret
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:
211 ; CHECK:       # %bb.0:
212 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
213 ; CHECK-NEXT:    vor.vx v8, v8, a0
214 ; CHECK-NEXT:    ret
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:
225 ; CHECK:       # %bb.0:
226 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
227 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
228 ; CHECK-NEXT:    ret
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:
237 ; CHECK:       # %bb.0:
238 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
239 ; CHECK-NEXT:    vor.vi v8, v8, 5
240 ; CHECK-NEXT:    ret
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:
253 ; CHECK:       # %bb.0:
254 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
255 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
256 ; CHECK-NEXT:    ret
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:
263 ; CHECK:       # %bb.0:
264 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
265 ; CHECK-NEXT:    vor.vv v8, v8, v9
266 ; CHECK-NEXT:    ret
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:
275 ; CHECK:       # %bb.0:
276 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
277 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
278 ; CHECK-NEXT:    ret
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:
287 ; CHECK:       # %bb.0:
288 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
289 ; CHECK-NEXT:    vor.vx v8, v8, a0
290 ; CHECK-NEXT:    ret
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:
301 ; CHECK:       # %bb.0:
302 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
303 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
304 ; CHECK-NEXT:    ret
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:
313 ; CHECK:       # %bb.0:
314 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
315 ; CHECK-NEXT:    vor.vi v8, v8, 5
316 ; CHECK-NEXT:    ret
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:
329 ; CHECK:       # %bb.0:
330 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
331 ; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
332 ; CHECK-NEXT:    ret
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:
339 ; CHECK:       # %bb.0:
340 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
341 ; CHECK-NEXT:    vor.vv v8, v8, v10
342 ; CHECK-NEXT:    ret
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:
351 ; CHECK:       # %bb.0:
352 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
353 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
354 ; CHECK-NEXT:    ret
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:
363 ; CHECK:       # %bb.0:
364 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
365 ; CHECK-NEXT:    vor.vx v8, v8, a0
366 ; CHECK-NEXT:    ret
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:
377 ; CHECK:       # %bb.0:
378 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
379 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
380 ; CHECK-NEXT:    ret
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:
389 ; CHECK:       # %bb.0:
390 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
391 ; CHECK-NEXT:    vor.vi v8, v8, 5
392 ; CHECK-NEXT:    ret
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:
405 ; CHECK:       # %bb.0:
406 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
407 ; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
408 ; CHECK-NEXT:    ret
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:
415 ; CHECK:       # %bb.0:
416 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
417 ; CHECK-NEXT:    vor.vv v8, v8, v12
418 ; CHECK-NEXT:    ret
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:
427 ; CHECK:       # %bb.0:
428 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
429 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
430 ; CHECK-NEXT:    ret
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:
439 ; CHECK:       # %bb.0:
440 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
441 ; CHECK-NEXT:    vor.vx v8, v8, a0
442 ; CHECK-NEXT:    ret
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:
453 ; CHECK:       # %bb.0:
454 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
455 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
456 ; CHECK-NEXT:    ret
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:
465 ; CHECK:       # %bb.0:
466 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
467 ; CHECK-NEXT:    vor.vi v8, v8, 5
468 ; CHECK-NEXT:    ret
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:
481 ; CHECK:       # %bb.0:
482 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
483 ; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
484 ; CHECK-NEXT:    ret
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:
491 ; CHECK:       # %bb.0:
492 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
493 ; CHECK-NEXT:    vor.vv v8, v8, v16
494 ; CHECK-NEXT:    ret
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:
503 ; CHECK:       # %bb.0:
504 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
505 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
506 ; CHECK-NEXT:    ret
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:
515 ; CHECK:       # %bb.0:
516 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
517 ; CHECK-NEXT:    vor.vx v8, v8, a0
518 ; CHECK-NEXT:    ret
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:
529 ; CHECK:       # %bb.0:
530 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
531 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
532 ; CHECK-NEXT:    ret
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:
541 ; CHECK:       # %bb.0:
542 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
543 ; CHECK-NEXT:    vor.vi v8, v8, 5
544 ; CHECK-NEXT:    ret
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:
557 ; CHECK:       # %bb.0:
558 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
559 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
560 ; CHECK-NEXT:    ret
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:
567 ; CHECK:       # %bb.0:
568 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
569 ; CHECK-NEXT:    vor.vv v8, v8, v9
570 ; CHECK-NEXT:    ret
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:
579 ; CHECK:       # %bb.0:
580 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
581 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
582 ; CHECK-NEXT:    ret
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:
591 ; CHECK:       # %bb.0:
592 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
593 ; CHECK-NEXT:    vor.vx v8, v8, a0
594 ; CHECK-NEXT:    ret
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:
605 ; CHECK:       # %bb.0:
606 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
607 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
608 ; CHECK-NEXT:    ret
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:
617 ; CHECK:       # %bb.0:
618 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
619 ; CHECK-NEXT:    vor.vi v8, v8, 5
620 ; CHECK-NEXT:    ret
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:
633 ; CHECK:       # %bb.0:
634 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
635 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
636 ; CHECK-NEXT:    ret
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:
643 ; CHECK:       # %bb.0:
644 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
645 ; CHECK-NEXT:    vor.vv v8, v8, v9
646 ; CHECK-NEXT:    ret
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:
655 ; CHECK:       # %bb.0:
656 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
657 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
658 ; CHECK-NEXT:    ret
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:
667 ; CHECK:       # %bb.0:
668 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
669 ; CHECK-NEXT:    vor.vx v8, v8, a0
670 ; CHECK-NEXT:    ret
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:
681 ; CHECK:       # %bb.0:
682 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
683 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
684 ; CHECK-NEXT:    ret
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:
693 ; CHECK:       # %bb.0:
694 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
695 ; CHECK-NEXT:    vor.vi v8, v8, 5
696 ; CHECK-NEXT:    ret
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:
709 ; CHECK:       # %bb.0:
710 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
711 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
712 ; CHECK-NEXT:    ret
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:
719 ; CHECK:       # %bb.0:
720 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
721 ; CHECK-NEXT:    vor.vv v8, v8, v9
722 ; CHECK-NEXT:    ret
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:
731 ; CHECK:       # %bb.0:
732 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
733 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
734 ; CHECK-NEXT:    ret
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:
743 ; CHECK:       # %bb.0:
744 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
745 ; CHECK-NEXT:    vor.vx v8, v8, a0
746 ; CHECK-NEXT:    ret
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:
757 ; CHECK:       # %bb.0:
758 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
759 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
760 ; CHECK-NEXT:    ret
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:
769 ; CHECK:       # %bb.0:
770 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
771 ; CHECK-NEXT:    vor.vi v8, v8, 5
772 ; CHECK-NEXT:    ret
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:
785 ; CHECK:       # %bb.0:
786 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
787 ; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
788 ; CHECK-NEXT:    ret
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:
795 ; CHECK:       # %bb.0:
796 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
797 ; CHECK-NEXT:    vor.vv v8, v8, v10
798 ; CHECK-NEXT:    ret
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:
807 ; CHECK:       # %bb.0:
808 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
809 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
810 ; CHECK-NEXT:    ret
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:
819 ; CHECK:       # %bb.0:
820 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
821 ; CHECK-NEXT:    vor.vx v8, v8, a0
822 ; CHECK-NEXT:    ret
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:
833 ; CHECK:       # %bb.0:
834 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
835 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
836 ; CHECK-NEXT:    ret
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:
845 ; CHECK:       # %bb.0:
846 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
847 ; CHECK-NEXT:    vor.vi v8, v8, 5
848 ; CHECK-NEXT:    ret
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:
861 ; CHECK:       # %bb.0:
862 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
863 ; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
864 ; CHECK-NEXT:    ret
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:
871 ; CHECK:       # %bb.0:
872 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
873 ; CHECK-NEXT:    vor.vv v8, v8, v12
874 ; CHECK-NEXT:    ret
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:
883 ; CHECK:       # %bb.0:
884 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
885 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
886 ; CHECK-NEXT:    ret
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:
895 ; CHECK:       # %bb.0:
896 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
897 ; CHECK-NEXT:    vor.vx v8, v8, a0
898 ; CHECK-NEXT:    ret
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:
909 ; CHECK:       # %bb.0:
910 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
911 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
912 ; CHECK-NEXT:    ret
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:
921 ; CHECK:       # %bb.0:
922 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
923 ; CHECK-NEXT:    vor.vi v8, v8, 5
924 ; CHECK-NEXT:    ret
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:
937 ; CHECK:       # %bb.0:
938 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
939 ; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
940 ; CHECK-NEXT:    ret
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:
947 ; CHECK:       # %bb.0:
948 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
949 ; CHECK-NEXT:    vor.vv v8, v8, v16
950 ; CHECK-NEXT:    ret
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:
959 ; CHECK:       # %bb.0:
960 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
961 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
962 ; CHECK-NEXT:    ret
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:
971 ; CHECK:       # %bb.0:
972 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
973 ; CHECK-NEXT:    vor.vx v8, v8, a0
974 ; CHECK-NEXT:    ret
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:
985 ; CHECK:       # %bb.0:
986 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
987 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
988 ; CHECK-NEXT:    ret
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:
997 ; CHECK:       # %bb.0:
998 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
999 ; CHECK-NEXT:    vor.vi v8, v8, 5
1000 ; CHECK-NEXT:    ret
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:
1013 ; CHECK:       # %bb.0:
1014 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
1015 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
1016 ; CHECK-NEXT:    ret
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:
1023 ; CHECK:       # %bb.0:
1024 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
1025 ; CHECK-NEXT:    vor.vv v8, v8, v9
1026 ; CHECK-NEXT:    ret
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:
1035 ; CHECK:       # %bb.0:
1036 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
1037 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1038 ; CHECK-NEXT:    ret
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:
1047 ; CHECK:       # %bb.0:
1048 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
1049 ; CHECK-NEXT:    vor.vx v8, v8, a0
1050 ; CHECK-NEXT:    ret
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:
1061 ; CHECK:       # %bb.0:
1062 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
1063 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1064 ; CHECK-NEXT:    ret
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:
1073 ; CHECK:       # %bb.0:
1074 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
1075 ; CHECK-NEXT:    vor.vi v8, v8, 5
1076 ; CHECK-NEXT:    ret
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:
1089 ; CHECK:       # %bb.0:
1090 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
1091 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
1092 ; CHECK-NEXT:    ret
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:
1099 ; CHECK:       # %bb.0:
1100 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
1101 ; CHECK-NEXT:    vor.vv v8, v8, v9
1102 ; CHECK-NEXT:    ret
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:
1111 ; CHECK:       # %bb.0:
1112 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1113 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1114 ; CHECK-NEXT:    ret
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:
1123 ; CHECK:       # %bb.0:
1124 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1125 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1126 ; CHECK-NEXT:    ret
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:
1135 ; CHECK:       # %bb.0:
1136 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1137 ; CHECK-NEXT:    vor.vx v8, v8, a0
1138 ; CHECK-NEXT:    ret
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:
1149 ; CHECK:       # %bb.0:
1150 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1151 ; CHECK-NEXT:    vor.vx v8, v8, a0
1152 ; CHECK-NEXT:    ret
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:
1163 ; CHECK:       # %bb.0:
1164 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
1165 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1166 ; CHECK-NEXT:    ret
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:
1175 ; CHECK:       # %bb.0:
1176 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
1177 ; CHECK-NEXT:    vor.vi v8, v8, 5
1178 ; CHECK-NEXT:    ret
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:
1191 ; CHECK:       # %bb.0:
1192 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1193 ; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
1194 ; CHECK-NEXT:    ret
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:
1201 ; CHECK:       # %bb.0:
1202 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1203 ; CHECK-NEXT:    vor.vv v8, v8, v10
1204 ; CHECK-NEXT:    ret
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:
1213 ; CHECK:       # %bb.0:
1214 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
1215 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1216 ; CHECK-NEXT:    ret
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:
1225 ; CHECK:       # %bb.0:
1226 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
1227 ; CHECK-NEXT:    vor.vx v8, v8, a0
1228 ; CHECK-NEXT:    ret
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:
1239 ; CHECK:       # %bb.0:
1240 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1241 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1242 ; CHECK-NEXT:    ret
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:
1251 ; CHECK:       # %bb.0:
1252 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1253 ; CHECK-NEXT:    vor.vi v8, v8, 5
1254 ; CHECK-NEXT:    ret
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:
1267 ; CHECK:       # %bb.0:
1268 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1269 ; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
1270 ; CHECK-NEXT:    ret
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:
1277 ; CHECK:       # %bb.0:
1278 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1279 ; CHECK-NEXT:    vor.vv v8, v8, v12
1280 ; CHECK-NEXT:    ret
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:
1289 ; CHECK:       # %bb.0:
1290 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
1291 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1292 ; CHECK-NEXT:    ret
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:
1301 ; CHECK:       # %bb.0:
1302 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
1303 ; CHECK-NEXT:    vor.vx v8, v8, a0
1304 ; CHECK-NEXT:    ret
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:
1315 ; CHECK:       # %bb.0:
1316 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1317 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1318 ; CHECK-NEXT:    ret
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:
1327 ; CHECK:       # %bb.0:
1328 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1329 ; CHECK-NEXT:    vor.vi v8, v8, 5
1330 ; CHECK-NEXT:    ret
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:
1343 ; CHECK:       # %bb.0:
1344 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1345 ; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
1346 ; CHECK-NEXT:    ret
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:
1353 ; CHECK:       # %bb.0:
1354 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1355 ; CHECK-NEXT:    vor.vv v8, v8, v16
1356 ; CHECK-NEXT:    ret
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:
1365 ; CHECK:       # %bb.0:
1366 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1367 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1368 ; CHECK-NEXT:    ret
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:
1377 ; CHECK:       # %bb.0:
1378 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1379 ; CHECK-NEXT:    vor.vx v8, v8, a0
1380 ; CHECK-NEXT:    ret
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:
1391 ; CHECK:       # %bb.0:
1392 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1393 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1394 ; CHECK-NEXT:    ret
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:
1403 ; CHECK:       # %bb.0:
1404 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1405 ; CHECK-NEXT:    vor.vi v8, v8, 5
1406 ; CHECK-NEXT:    ret
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:
1419 ; CHECK:       # %bb.0:
1420 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1421 ; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
1422 ; CHECK-NEXT:    ret
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:
1429 ; CHECK:       # %bb.0:
1430 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1431 ; CHECK-NEXT:    vor.vv v8, v8, v16
1432 ; CHECK-NEXT:    ret
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:
1441 ; CHECK:       # %bb.0:
1442 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1443 ; CHECK-NEXT:    vor.vx v8, v8, a0, v0.t
1444 ; CHECK-NEXT:    ret
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:
1453 ; CHECK:       # %bb.0:
1454 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1455 ; CHECK-NEXT:    vor.vx v8, v8, a0
1456 ; CHECK-NEXT:    ret
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:
1467 ; CHECK:       # %bb.0:
1468 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1469 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1470 ; CHECK-NEXT:    ret
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:
1479 ; CHECK:       # %bb.0:
1480 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
1481 ; CHECK-NEXT:    vor.vi v8, v8, 5
1482 ; CHECK-NEXT:    ret
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:
1495 ; CHECK:       # %bb.0:
1496 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1497 ; CHECK-NEXT:    vor.vv v8, v8, v9, v0.t
1498 ; CHECK-NEXT:    ret
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:
1505 ; CHECK:       # %bb.0:
1506 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1507 ; CHECK-NEXT:    vor.vv v8, v8, v9
1508 ; CHECK-NEXT:    ret
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:
1517 ; RV32:       # %bb.0:
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
1528 ; RV32-NEXT:    ret
1530 ; RV64-LABEL: vor_vx_nxv1i64:
1531 ; RV64:       # %bb.0:
1532 ; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
1533 ; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1534 ; RV64-NEXT:    ret
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:
1543 ; RV32:       # %bb.0:
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
1554 ; RV32-NEXT:    ret
1556 ; RV64-LABEL: vor_vx_nxv1i64_unmasked:
1557 ; RV64:       # %bb.0:
1558 ; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
1559 ; RV64-NEXT:    vor.vx v8, v8, a0
1560 ; RV64-NEXT:    ret
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:
1571 ; CHECK:       # %bb.0:
1572 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1573 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1574 ; CHECK-NEXT:    ret
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:
1583 ; CHECK:       # %bb.0:
1584 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1585 ; CHECK-NEXT:    vor.vi v8, v8, 5
1586 ; CHECK-NEXT:    ret
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:
1599 ; CHECK:       # %bb.0:
1600 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1601 ; CHECK-NEXT:    vor.vv v8, v8, v10, v0.t
1602 ; CHECK-NEXT:    ret
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:
1609 ; CHECK:       # %bb.0:
1610 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1611 ; CHECK-NEXT:    vor.vv v8, v8, v10
1612 ; CHECK-NEXT:    ret
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:
1621 ; RV32:       # %bb.0:
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
1632 ; RV32-NEXT:    ret
1634 ; RV64-LABEL: vor_vx_nxv2i64:
1635 ; RV64:       # %bb.0:
1636 ; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1637 ; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1638 ; RV64-NEXT:    ret
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:
1647 ; RV32:       # %bb.0:
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
1658 ; RV32-NEXT:    ret
1660 ; RV64-LABEL: vor_vx_nxv2i64_unmasked:
1661 ; RV64:       # %bb.0:
1662 ; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1663 ; RV64-NEXT:    vor.vx v8, v8, a0
1664 ; RV64-NEXT:    ret
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:
1675 ; CHECK:       # %bb.0:
1676 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1677 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1678 ; CHECK-NEXT:    ret
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:
1687 ; CHECK:       # %bb.0:
1688 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1689 ; CHECK-NEXT:    vor.vi v8, v8, 5
1690 ; CHECK-NEXT:    ret
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:
1703 ; CHECK:       # %bb.0:
1704 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1705 ; CHECK-NEXT:    vor.vv v8, v8, v12, v0.t
1706 ; CHECK-NEXT:    ret
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:
1713 ; CHECK:       # %bb.0:
1714 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1715 ; CHECK-NEXT:    vor.vv v8, v8, v12
1716 ; CHECK-NEXT:    ret
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:
1725 ; RV32:       # %bb.0:
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
1736 ; RV32-NEXT:    ret
1738 ; RV64-LABEL: vor_vx_nxv4i64:
1739 ; RV64:       # %bb.0:
1740 ; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1741 ; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1742 ; RV64-NEXT:    ret
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:
1751 ; RV32:       # %bb.0:
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
1762 ; RV32-NEXT:    ret
1764 ; RV64-LABEL: vor_vx_nxv4i64_unmasked:
1765 ; RV64:       # %bb.0:
1766 ; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1767 ; RV64-NEXT:    vor.vx v8, v8, a0
1768 ; RV64-NEXT:    ret
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:
1779 ; CHECK:       # %bb.0:
1780 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1781 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1782 ; CHECK-NEXT:    ret
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:
1791 ; CHECK:       # %bb.0:
1792 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1793 ; CHECK-NEXT:    vor.vi v8, v8, 5
1794 ; CHECK-NEXT:    ret
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:
1807 ; CHECK:       # %bb.0:
1808 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1809 ; CHECK-NEXT:    vor.vv v8, v8, v16, v0.t
1810 ; CHECK-NEXT:    ret
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:
1817 ; CHECK:       # %bb.0:
1818 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1819 ; CHECK-NEXT:    vor.vv v8, v8, v16
1820 ; CHECK-NEXT:    ret
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:
1829 ; RV32:       # %bb.0:
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
1840 ; RV32-NEXT:    ret
1842 ; RV64-LABEL: vor_vx_nxv8i64:
1843 ; RV64:       # %bb.0:
1844 ; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
1845 ; RV64-NEXT:    vor.vx v8, v8, a0, v0.t
1846 ; RV64-NEXT:    ret
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:
1855 ; RV32:       # %bb.0:
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
1866 ; RV32-NEXT:    ret
1868 ; RV64-LABEL: vor_vx_nxv8i64_unmasked:
1869 ; RV64:       # %bb.0:
1870 ; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
1871 ; RV64-NEXT:    vor.vx v8, v8, a0
1872 ; RV64-NEXT:    ret
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:
1883 ; CHECK:       # %bb.0:
1884 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1885 ; CHECK-NEXT:    vor.vi v8, v8, 5, v0.t
1886 ; CHECK-NEXT:    ret
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:
1895 ; CHECK:       # %bb.0:
1896 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1897 ; CHECK-NEXT:    vor.vi v8, v8, 5
1898 ; CHECK-NEXT:    ret
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