libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / config / loongarch / lasxintrin.h
blob16b21455d8150b9ffda3c71972e854b97ea2fe6d
1 /* LARCH Loongson ASX intrinsics include file.
3 Copyright (C) 2018-2024 Free Software Foundation, Inc.
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published
9 by the Free Software Foundation; either version 3, or (at your
10 option) any later version.
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
17 Under Section 7 of GPL version 3, you are granted additional
18 permissions described in the GCC Runtime Library Exception, version
19 3.1, as published by the Free Software Foundation.
21 You should have received a copy of the GNU General Public License and
22 a copy of the GCC Runtime Library Exception along with this program;
23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
24 <http://www.gnu.org/licenses/>. */
26 #ifndef _GCC_LOONGSON_ASXINTRIN_H
27 #define _GCC_LOONGSON_ASXINTRIN_H 1
29 #if defined(__loongarch_asx)
31 typedef signed char v32i8 __attribute__ ((vector_size(32), aligned(32)));
32 typedef signed char v32i8_b __attribute__ ((vector_size(32), aligned(1)));
33 typedef unsigned char v32u8 __attribute__ ((vector_size(32), aligned(32)));
34 typedef unsigned char v32u8_b __attribute__ ((vector_size(32), aligned(1)));
35 typedef short v16i16 __attribute__ ((vector_size(32), aligned(32)));
36 typedef short v16i16_h __attribute__ ((vector_size(32), aligned(2)));
37 typedef unsigned short v16u16 __attribute__ ((vector_size(32), aligned(32)));
38 typedef unsigned short v16u16_h __attribute__ ((vector_size(32), aligned(2)));
39 typedef int v8i32 __attribute__ ((vector_size(32), aligned(32)));
40 typedef int v8i32_w __attribute__ ((vector_size(32), aligned(4)));
41 typedef unsigned int v8u32 __attribute__ ((vector_size(32), aligned(32)));
42 typedef unsigned int v8u32_w __attribute__ ((vector_size(32), aligned(4)));
43 typedef long long v4i64 __attribute__ ((vector_size(32), aligned(32)));
44 typedef long long v4i64_d __attribute__ ((vector_size(32), aligned(8)));
45 typedef unsigned long long v4u64 __attribute__ ((vector_size(32), aligned(32)));
46 typedef unsigned long long v4u64_d __attribute__ ((vector_size(32), aligned(8)));
47 typedef float v8f32 __attribute__ ((vector_size(32), aligned(32)));
48 typedef float v8f32_w __attribute__ ((vector_size(32), aligned(4)));
49 typedef double v4f64 __attribute__ ((vector_size(32), aligned(32)));
50 typedef double v4f64_d __attribute__ ((vector_size(32), aligned(8)));
51 typedef float __m256 __attribute__ ((__vector_size__ (32),
52 __may_alias__));
53 typedef long long __m256i __attribute__ ((__vector_size__ (32),
54 __may_alias__));
55 typedef double __m256d __attribute__ ((__vector_size__ (32),
56 __may_alias__));
58 /* Assembly instruction format: xd, xj, xk. */
59 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
60 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
61 __m256i __lasx_xvsll_b (__m256i _1, __m256i _2)
63 return (__m256i)__builtin_lasx_xvsll_b ((v32i8)_1, (v32i8)_2);
66 /* Assembly instruction format: xd, xj, xk. */
67 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
68 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
69 __m256i __lasx_xvsll_h (__m256i _1, __m256i _2)
71 return (__m256i)__builtin_lasx_xvsll_h ((v16i16)_1, (v16i16)_2);
74 /* Assembly instruction format: xd, xj, xk. */
75 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
76 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
77 __m256i __lasx_xvsll_w (__m256i _1, __m256i _2)
79 return (__m256i)__builtin_lasx_xvsll_w ((v8i32)_1, (v8i32)_2);
82 /* Assembly instruction format: xd, xj, xk. */
83 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
84 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
85 __m256i __lasx_xvsll_d (__m256i _1, __m256i _2)
87 return (__m256i)__builtin_lasx_xvsll_d ((v4i64)_1, (v4i64)_2);
90 /* Assembly instruction format: xd, xj, ui3. */
91 /* Data types in instruction templates: V32QI, V32QI, UQI. */
92 #define __lasx_xvslli_b(/*__m256i*/ _1, /*ui3*/ _2) \
93 ((__m256i)__builtin_lasx_xvslli_b ((v32i8)(_1), (_2)))
95 /* Assembly instruction format: xd, xj, ui4. */
96 /* Data types in instruction templates: V16HI, V16HI, UQI. */
97 #define __lasx_xvslli_h(/*__m256i*/ _1, /*ui4*/ _2) \
98 ((__m256i)__builtin_lasx_xvslli_h ((v16i16)(_1), (_2)))
100 /* Assembly instruction format: xd, xj, ui5. */
101 /* Data types in instruction templates: V8SI, V8SI, UQI. */
102 #define __lasx_xvslli_w(/*__m256i*/ _1, /*ui5*/ _2) \
103 ((__m256i)__builtin_lasx_xvslli_w ((v8i32)(_1), (_2)))
105 /* Assembly instruction format: xd, xj, ui6. */
106 /* Data types in instruction templates: V4DI, V4DI, UQI. */
107 #define __lasx_xvslli_d(/*__m256i*/ _1, /*ui6*/ _2) \
108 ((__m256i)__builtin_lasx_xvslli_d ((v4i64)(_1), (_2)))
110 /* Assembly instruction format: xd, xj, xk. */
111 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
112 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
113 __m256i __lasx_xvsra_b (__m256i _1, __m256i _2)
115 return (__m256i)__builtin_lasx_xvsra_b ((v32i8)_1, (v32i8)_2);
118 /* Assembly instruction format: xd, xj, xk. */
119 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
120 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
121 __m256i __lasx_xvsra_h (__m256i _1, __m256i _2)
123 return (__m256i)__builtin_lasx_xvsra_h ((v16i16)_1, (v16i16)_2);
126 /* Assembly instruction format: xd, xj, xk. */
127 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
128 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
129 __m256i __lasx_xvsra_w (__m256i _1, __m256i _2)
131 return (__m256i)__builtin_lasx_xvsra_w ((v8i32)_1, (v8i32)_2);
134 /* Assembly instruction format: xd, xj, xk. */
135 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
136 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
137 __m256i __lasx_xvsra_d (__m256i _1, __m256i _2)
139 return (__m256i)__builtin_lasx_xvsra_d ((v4i64)_1, (v4i64)_2);
142 /* Assembly instruction format: xd, xj, ui3. */
143 /* Data types in instruction templates: V32QI, V32QI, UQI. */
144 #define __lasx_xvsrai_b(/*__m256i*/ _1, /*ui3*/ _2) \
145 ((__m256i)__builtin_lasx_xvsrai_b ((v32i8)(_1), (_2)))
147 /* Assembly instruction format: xd, xj, ui4. */
148 /* Data types in instruction templates: V16HI, V16HI, UQI. */
149 #define __lasx_xvsrai_h(/*__m256i*/ _1, /*ui4*/ _2) \
150 ((__m256i)__builtin_lasx_xvsrai_h ((v16i16)(_1), (_2)))
152 /* Assembly instruction format: xd, xj, ui5. */
153 /* Data types in instruction templates: V8SI, V8SI, UQI. */
154 #define __lasx_xvsrai_w(/*__m256i*/ _1, /*ui5*/ _2) \
155 ((__m256i)__builtin_lasx_xvsrai_w ((v8i32)(_1), (_2)))
157 /* Assembly instruction format: xd, xj, ui6. */
158 /* Data types in instruction templates: V4DI, V4DI, UQI. */
159 #define __lasx_xvsrai_d(/*__m256i*/ _1, /*ui6*/ _2) \
160 ((__m256i)__builtin_lasx_xvsrai_d ((v4i64)(_1), (_2)))
162 /* Assembly instruction format: xd, xj, xk. */
163 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
164 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
165 __m256i __lasx_xvsrar_b (__m256i _1, __m256i _2)
167 return (__m256i)__builtin_lasx_xvsrar_b ((v32i8)_1, (v32i8)_2);
170 /* Assembly instruction format: xd, xj, xk. */
171 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
172 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
173 __m256i __lasx_xvsrar_h (__m256i _1, __m256i _2)
175 return (__m256i)__builtin_lasx_xvsrar_h ((v16i16)_1, (v16i16)_2);
178 /* Assembly instruction format: xd, xj, xk. */
179 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
180 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
181 __m256i __lasx_xvsrar_w (__m256i _1, __m256i _2)
183 return (__m256i)__builtin_lasx_xvsrar_w ((v8i32)_1, (v8i32)_2);
186 /* Assembly instruction format: xd, xj, xk. */
187 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
188 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
189 __m256i __lasx_xvsrar_d (__m256i _1, __m256i _2)
191 return (__m256i)__builtin_lasx_xvsrar_d ((v4i64)_1, (v4i64)_2);
194 /* Assembly instruction format: xd, xj, ui3. */
195 /* Data types in instruction templates: V32QI, V32QI, UQI. */
196 #define __lasx_xvsrari_b(/*__m256i*/ _1, /*ui3*/ _2) \
197 ((__m256i)__builtin_lasx_xvsrari_b ((v32i8)(_1), (_2)))
199 /* Assembly instruction format: xd, xj, ui4. */
200 /* Data types in instruction templates: V16HI, V16HI, UQI. */
201 #define __lasx_xvsrari_h(/*__m256i*/ _1, /*ui4*/ _2) \
202 ((__m256i)__builtin_lasx_xvsrari_h ((v16i16)(_1), (_2)))
204 /* Assembly instruction format: xd, xj, ui5. */
205 /* Data types in instruction templates: V8SI, V8SI, UQI. */
206 #define __lasx_xvsrari_w(/*__m256i*/ _1, /*ui5*/ _2) \
207 ((__m256i)__builtin_lasx_xvsrari_w ((v8i32)(_1), (_2)))
209 /* Assembly instruction format: xd, xj, ui6. */
210 /* Data types in instruction templates: V4DI, V4DI, UQI. */
211 #define __lasx_xvsrari_d(/*__m256i*/ _1, /*ui6*/ _2) \
212 ((__m256i)__builtin_lasx_xvsrari_d ((v4i64)(_1), (_2)))
214 /* Assembly instruction format: xd, xj, xk. */
215 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
216 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
217 __m256i __lasx_xvsrl_b (__m256i _1, __m256i _2)
219 return (__m256i)__builtin_lasx_xvsrl_b ((v32i8)_1, (v32i8)_2);
222 /* Assembly instruction format: xd, xj, xk. */
223 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
224 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
225 __m256i __lasx_xvsrl_h (__m256i _1, __m256i _2)
227 return (__m256i)__builtin_lasx_xvsrl_h ((v16i16)_1, (v16i16)_2);
230 /* Assembly instruction format: xd, xj, xk. */
231 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
232 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
233 __m256i __lasx_xvsrl_w (__m256i _1, __m256i _2)
235 return (__m256i)__builtin_lasx_xvsrl_w ((v8i32)_1, (v8i32)_2);
238 /* Assembly instruction format: xd, xj, xk. */
239 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
240 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
241 __m256i __lasx_xvsrl_d (__m256i _1, __m256i _2)
243 return (__m256i)__builtin_lasx_xvsrl_d ((v4i64)_1, (v4i64)_2);
246 /* Assembly instruction format: xd, xj, ui3. */
247 /* Data types in instruction templates: V32QI, V32QI, UQI. */
248 #define __lasx_xvsrli_b(/*__m256i*/ _1, /*ui3*/ _2) \
249 ((__m256i)__builtin_lasx_xvsrli_b ((v32i8)(_1), (_2)))
251 /* Assembly instruction format: xd, xj, ui4. */
252 /* Data types in instruction templates: V16HI, V16HI, UQI. */
253 #define __lasx_xvsrli_h(/*__m256i*/ _1, /*ui4*/ _2) \
254 ((__m256i)__builtin_lasx_xvsrli_h ((v16i16)(_1), (_2)))
256 /* Assembly instruction format: xd, xj, ui5. */
257 /* Data types in instruction templates: V8SI, V8SI, UQI. */
258 #define __lasx_xvsrli_w(/*__m256i*/ _1, /*ui5*/ _2) \
259 ((__m256i)__builtin_lasx_xvsrli_w ((v8i32)(_1), (_2)))
261 /* Assembly instruction format: xd, xj, ui6. */
262 /* Data types in instruction templates: V4DI, V4DI, UQI. */
263 #define __lasx_xvsrli_d(/*__m256i*/ _1, /*ui6*/ _2) \
264 ((__m256i)__builtin_lasx_xvsrli_d ((v4i64)(_1), (_2)))
266 /* Assembly instruction format: xd, xj, xk. */
267 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
268 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
269 __m256i __lasx_xvsrlr_b (__m256i _1, __m256i _2)
271 return (__m256i)__builtin_lasx_xvsrlr_b ((v32i8)_1, (v32i8)_2);
274 /* Assembly instruction format: xd, xj, xk. */
275 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
276 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
277 __m256i __lasx_xvsrlr_h (__m256i _1, __m256i _2)
279 return (__m256i)__builtin_lasx_xvsrlr_h ((v16i16)_1, (v16i16)_2);
282 /* Assembly instruction format: xd, xj, xk. */
283 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
284 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
285 __m256i __lasx_xvsrlr_w (__m256i _1, __m256i _2)
287 return (__m256i)__builtin_lasx_xvsrlr_w ((v8i32)_1, (v8i32)_2);
290 /* Assembly instruction format: xd, xj, xk. */
291 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
292 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
293 __m256i __lasx_xvsrlr_d (__m256i _1, __m256i _2)
295 return (__m256i)__builtin_lasx_xvsrlr_d ((v4i64)_1, (v4i64)_2);
298 /* Assembly instruction format: xd, xj, ui3. */
299 /* Data types in instruction templates: V32QI, V32QI, UQI. */
300 #define __lasx_xvsrlri_b(/*__m256i*/ _1, /*ui3*/ _2) \
301 ((__m256i)__builtin_lasx_xvsrlri_b ((v32i8)(_1), (_2)))
303 /* Assembly instruction format: xd, xj, ui4. */
304 /* Data types in instruction templates: V16HI, V16HI, UQI. */
305 #define __lasx_xvsrlri_h(/*__m256i*/ _1, /*ui4*/ _2) \
306 ((__m256i)__builtin_lasx_xvsrlri_h ((v16i16)(_1), (_2)))
308 /* Assembly instruction format: xd, xj, ui5. */
309 /* Data types in instruction templates: V8SI, V8SI, UQI. */
310 #define __lasx_xvsrlri_w(/*__m256i*/ _1, /*ui5*/ _2) \
311 ((__m256i)__builtin_lasx_xvsrlri_w ((v8i32)(_1), (_2)))
313 /* Assembly instruction format: xd, xj, ui6. */
314 /* Data types in instruction templates: V4DI, V4DI, UQI. */
315 #define __lasx_xvsrlri_d(/*__m256i*/ _1, /*ui6*/ _2) \
316 ((__m256i)__builtin_lasx_xvsrlri_d ((v4i64)(_1), (_2)))
318 /* Assembly instruction format: xd, xj, xk. */
319 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
320 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
321 __m256i __lasx_xvbitclr_b (__m256i _1, __m256i _2)
323 return (__m256i)__builtin_lasx_xvbitclr_b ((v32u8)_1, (v32u8)_2);
326 /* Assembly instruction format: xd, xj, xk. */
327 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
328 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
329 __m256i __lasx_xvbitclr_h (__m256i _1, __m256i _2)
331 return (__m256i)__builtin_lasx_xvbitclr_h ((v16u16)_1, (v16u16)_2);
334 /* Assembly instruction format: xd, xj, xk. */
335 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
336 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
337 __m256i __lasx_xvbitclr_w (__m256i _1, __m256i _2)
339 return (__m256i)__builtin_lasx_xvbitclr_w ((v8u32)_1, (v8u32)_2);
342 /* Assembly instruction format: xd, xj, xk. */
343 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
344 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
345 __m256i __lasx_xvbitclr_d (__m256i _1, __m256i _2)
347 return (__m256i)__builtin_lasx_xvbitclr_d ((v4u64)_1, (v4u64)_2);
350 /* Assembly instruction format: xd, xj, ui3. */
351 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
352 #define __lasx_xvbitclri_b(/*__m256i*/ _1, /*ui3*/ _2) \
353 ((__m256i)__builtin_lasx_xvbitclri_b ((v32u8)(_1), (_2)))
355 /* Assembly instruction format: xd, xj, ui4. */
356 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */
357 #define __lasx_xvbitclri_h(/*__m256i*/ _1, /*ui4*/ _2) \
358 ((__m256i)__builtin_lasx_xvbitclri_h ((v16u16)(_1), (_2)))
360 /* Assembly instruction format: xd, xj, ui5. */
361 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */
362 #define __lasx_xvbitclri_w(/*__m256i*/ _1, /*ui5*/ _2) \
363 ((__m256i)__builtin_lasx_xvbitclri_w ((v8u32)(_1), (_2)))
365 /* Assembly instruction format: xd, xj, ui6. */
366 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */
367 #define __lasx_xvbitclri_d(/*__m256i*/ _1, /*ui6*/ _2) \
368 ((__m256i)__builtin_lasx_xvbitclri_d ((v4u64)(_1), (_2)))
370 /* Assembly instruction format: xd, xj, xk. */
371 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
372 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
373 __m256i __lasx_xvbitset_b (__m256i _1, __m256i _2)
375 return (__m256i)__builtin_lasx_xvbitset_b ((v32u8)_1, (v32u8)_2);
378 /* Assembly instruction format: xd, xj, xk. */
379 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
380 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
381 __m256i __lasx_xvbitset_h (__m256i _1, __m256i _2)
383 return (__m256i)__builtin_lasx_xvbitset_h ((v16u16)_1, (v16u16)_2);
386 /* Assembly instruction format: xd, xj, xk. */
387 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
388 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
389 __m256i __lasx_xvbitset_w (__m256i _1, __m256i _2)
391 return (__m256i)__builtin_lasx_xvbitset_w ((v8u32)_1, (v8u32)_2);
394 /* Assembly instruction format: xd, xj, xk. */
395 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
396 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
397 __m256i __lasx_xvbitset_d (__m256i _1, __m256i _2)
399 return (__m256i)__builtin_lasx_xvbitset_d ((v4u64)_1, (v4u64)_2);
402 /* Assembly instruction format: xd, xj, ui3. */
403 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
404 #define __lasx_xvbitseti_b(/*__m256i*/ _1, /*ui3*/ _2) \
405 ((__m256i)__builtin_lasx_xvbitseti_b ((v32u8)(_1), (_2)))
407 /* Assembly instruction format: xd, xj, ui4. */
408 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */
409 #define __lasx_xvbitseti_h(/*__m256i*/ _1, /*ui4*/ _2) \
410 ((__m256i)__builtin_lasx_xvbitseti_h ((v16u16)(_1), (_2)))
412 /* Assembly instruction format: xd, xj, ui5. */
413 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */
414 #define __lasx_xvbitseti_w(/*__m256i*/ _1, /*ui5*/ _2) \
415 ((__m256i)__builtin_lasx_xvbitseti_w ((v8u32)(_1), (_2)))
417 /* Assembly instruction format: xd, xj, ui6. */
418 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */
419 #define __lasx_xvbitseti_d(/*__m256i*/ _1, /*ui6*/ _2) \
420 ((__m256i)__builtin_lasx_xvbitseti_d ((v4u64)(_1), (_2)))
422 /* Assembly instruction format: xd, xj, xk. */
423 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
424 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
425 __m256i __lasx_xvbitrev_b (__m256i _1, __m256i _2)
427 return (__m256i)__builtin_lasx_xvbitrev_b ((v32u8)_1, (v32u8)_2);
430 /* Assembly instruction format: xd, xj, xk. */
431 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
432 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
433 __m256i __lasx_xvbitrev_h (__m256i _1, __m256i _2)
435 return (__m256i)__builtin_lasx_xvbitrev_h ((v16u16)_1, (v16u16)_2);
438 /* Assembly instruction format: xd, xj, xk. */
439 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
440 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
441 __m256i __lasx_xvbitrev_w (__m256i _1, __m256i _2)
443 return (__m256i)__builtin_lasx_xvbitrev_w ((v8u32)_1, (v8u32)_2);
446 /* Assembly instruction format: xd, xj, xk. */
447 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
448 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
449 __m256i __lasx_xvbitrev_d (__m256i _1, __m256i _2)
451 return (__m256i)__builtin_lasx_xvbitrev_d ((v4u64)_1, (v4u64)_2);
454 /* Assembly instruction format: xd, xj, ui3. */
455 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
456 #define __lasx_xvbitrevi_b(/*__m256i*/ _1, /*ui3*/ _2) \
457 ((__m256i)__builtin_lasx_xvbitrevi_b ((v32u8)(_1), (_2)))
459 /* Assembly instruction format: xd, xj, ui4. */
460 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */
461 #define __lasx_xvbitrevi_h(/*__m256i*/ _1, /*ui4*/ _2) \
462 ((__m256i)__builtin_lasx_xvbitrevi_h ((v16u16)(_1), (_2)))
464 /* Assembly instruction format: xd, xj, ui5. */
465 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */
466 #define __lasx_xvbitrevi_w(/*__m256i*/ _1, /*ui5*/ _2) \
467 ((__m256i)__builtin_lasx_xvbitrevi_w ((v8u32)(_1), (_2)))
469 /* Assembly instruction format: xd, xj, ui6. */
470 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */
471 #define __lasx_xvbitrevi_d(/*__m256i*/ _1, /*ui6*/ _2) \
472 ((__m256i)__builtin_lasx_xvbitrevi_d ((v4u64)(_1), (_2)))
474 /* Assembly instruction format: xd, xj, xk. */
475 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
476 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
477 __m256i __lasx_xvadd_b (__m256i _1, __m256i _2)
479 return (__m256i)__builtin_lasx_xvadd_b ((v32i8)_1, (v32i8)_2);
482 /* Assembly instruction format: xd, xj, xk. */
483 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
484 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
485 __m256i __lasx_xvadd_h (__m256i _1, __m256i _2)
487 return (__m256i)__builtin_lasx_xvadd_h ((v16i16)_1, (v16i16)_2);
490 /* Assembly instruction format: xd, xj, xk. */
491 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
492 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
493 __m256i __lasx_xvadd_w (__m256i _1, __m256i _2)
495 return (__m256i)__builtin_lasx_xvadd_w ((v8i32)_1, (v8i32)_2);
498 /* Assembly instruction format: xd, xj, xk. */
499 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
500 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
501 __m256i __lasx_xvadd_d (__m256i _1, __m256i _2)
503 return (__m256i)__builtin_lasx_xvadd_d ((v4i64)_1, (v4i64)_2);
506 /* Assembly instruction format: xd, xj, ui5. */
507 /* Data types in instruction templates: V32QI, V32QI, UQI. */
508 #define __lasx_xvaddi_bu(/*__m256i*/ _1, /*ui5*/ _2) \
509 ((__m256i)__builtin_lasx_xvaddi_bu ((v32i8)(_1), (_2)))
511 /* Assembly instruction format: xd, xj, ui5. */
512 /* Data types in instruction templates: V16HI, V16HI, UQI. */
513 #define __lasx_xvaddi_hu(/*__m256i*/ _1, /*ui5*/ _2) \
514 ((__m256i)__builtin_lasx_xvaddi_hu ((v16i16)(_1), (_2)))
516 /* Assembly instruction format: xd, xj, ui5. */
517 /* Data types in instruction templates: V8SI, V8SI, UQI. */
518 #define __lasx_xvaddi_wu(/*__m256i*/ _1, /*ui5*/ _2) \
519 ((__m256i)__builtin_lasx_xvaddi_wu ((v8i32)(_1), (_2)))
521 /* Assembly instruction format: xd, xj, ui5. */
522 /* Data types in instruction templates: V4DI, V4DI, UQI. */
523 #define __lasx_xvaddi_du(/*__m256i*/ _1, /*ui5*/ _2) \
524 ((__m256i)__builtin_lasx_xvaddi_du ((v4i64)(_1), (_2)))
526 /* Assembly instruction format: xd, xj, xk. */
527 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
528 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
529 __m256i __lasx_xvsub_b (__m256i _1, __m256i _2)
531 return (__m256i)__builtin_lasx_xvsub_b ((v32i8)_1, (v32i8)_2);
534 /* Assembly instruction format: xd, xj, xk. */
535 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
536 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
537 __m256i __lasx_xvsub_h (__m256i _1, __m256i _2)
539 return (__m256i)__builtin_lasx_xvsub_h ((v16i16)_1, (v16i16)_2);
542 /* Assembly instruction format: xd, xj, xk. */
543 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
544 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
545 __m256i __lasx_xvsub_w (__m256i _1, __m256i _2)
547 return (__m256i)__builtin_lasx_xvsub_w ((v8i32)_1, (v8i32)_2);
550 /* Assembly instruction format: xd, xj, xk. */
551 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
552 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
553 __m256i __lasx_xvsub_d (__m256i _1, __m256i _2)
555 return (__m256i)__builtin_lasx_xvsub_d ((v4i64)_1, (v4i64)_2);
558 /* Assembly instruction format: xd, xj, ui5. */
559 /* Data types in instruction templates: V32QI, V32QI, UQI. */
560 #define __lasx_xvsubi_bu(/*__m256i*/ _1, /*ui5*/ _2) \
561 ((__m256i)__builtin_lasx_xvsubi_bu ((v32i8)(_1), (_2)))
563 /* Assembly instruction format: xd, xj, ui5. */
564 /* Data types in instruction templates: V16HI, V16HI, UQI. */
565 #define __lasx_xvsubi_hu(/*__m256i*/ _1, /*ui5*/ _2) \
566 ((__m256i)__builtin_lasx_xvsubi_hu ((v16i16)(_1), (_2)))
568 /* Assembly instruction format: xd, xj, ui5. */
569 /* Data types in instruction templates: V8SI, V8SI, UQI. */
570 #define __lasx_xvsubi_wu(/*__m256i*/ _1, /*ui5*/ _2) \
571 ((__m256i)__builtin_lasx_xvsubi_wu ((v8i32)(_1), (_2)))
573 /* Assembly instruction format: xd, xj, ui5. */
574 /* Data types in instruction templates: V4DI, V4DI, UQI. */
575 #define __lasx_xvsubi_du(/*__m256i*/ _1, /*ui5*/ _2) \
576 ((__m256i)__builtin_lasx_xvsubi_du ((v4i64)(_1), (_2)))
578 /* Assembly instruction format: xd, xj, xk. */
579 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
580 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
581 __m256i __lasx_xvmax_b (__m256i _1, __m256i _2)
583 return (__m256i)__builtin_lasx_xvmax_b ((v32i8)_1, (v32i8)_2);
586 /* Assembly instruction format: xd, xj, xk. */
587 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
588 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
589 __m256i __lasx_xvmax_h (__m256i _1, __m256i _2)
591 return (__m256i)__builtin_lasx_xvmax_h ((v16i16)_1, (v16i16)_2);
594 /* Assembly instruction format: xd, xj, xk. */
595 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
596 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
597 __m256i __lasx_xvmax_w (__m256i _1, __m256i _2)
599 return (__m256i)__builtin_lasx_xvmax_w ((v8i32)_1, (v8i32)_2);
602 /* Assembly instruction format: xd, xj, xk. */
603 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
604 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
605 __m256i __lasx_xvmax_d (__m256i _1, __m256i _2)
607 return (__m256i)__builtin_lasx_xvmax_d ((v4i64)_1, (v4i64)_2);
610 /* Assembly instruction format: xd, xj, si5. */
611 /* Data types in instruction templates: V32QI, V32QI, QI. */
612 #define __lasx_xvmaxi_b(/*__m256i*/ _1, /*si5*/ _2) \
613 ((__m256i)__builtin_lasx_xvmaxi_b ((v32i8)(_1), (_2)))
615 /* Assembly instruction format: xd, xj, si5. */
616 /* Data types in instruction templates: V16HI, V16HI, QI. */
617 #define __lasx_xvmaxi_h(/*__m256i*/ _1, /*si5*/ _2) \
618 ((__m256i)__builtin_lasx_xvmaxi_h ((v16i16)(_1), (_2)))
620 /* Assembly instruction format: xd, xj, si5. */
621 /* Data types in instruction templates: V8SI, V8SI, QI. */
622 #define __lasx_xvmaxi_w(/*__m256i*/ _1, /*si5*/ _2) \
623 ((__m256i)__builtin_lasx_xvmaxi_w ((v8i32)(_1), (_2)))
625 /* Assembly instruction format: xd, xj, si5. */
626 /* Data types in instruction templates: V4DI, V4DI, QI. */
627 #define __lasx_xvmaxi_d(/*__m256i*/ _1, /*si5*/ _2) \
628 ((__m256i)__builtin_lasx_xvmaxi_d ((v4i64)(_1), (_2)))
630 /* Assembly instruction format: xd, xj, xk. */
631 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
632 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
633 __m256i __lasx_xvmax_bu (__m256i _1, __m256i _2)
635 return (__m256i)__builtin_lasx_xvmax_bu ((v32u8)_1, (v32u8)_2);
638 /* Assembly instruction format: xd, xj, xk. */
639 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
640 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
641 __m256i __lasx_xvmax_hu (__m256i _1, __m256i _2)
643 return (__m256i)__builtin_lasx_xvmax_hu ((v16u16)_1, (v16u16)_2);
646 /* Assembly instruction format: xd, xj, xk. */
647 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
648 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
649 __m256i __lasx_xvmax_wu (__m256i _1, __m256i _2)
651 return (__m256i)__builtin_lasx_xvmax_wu ((v8u32)_1, (v8u32)_2);
654 /* Assembly instruction format: xd, xj, xk. */
655 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
656 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
657 __m256i __lasx_xvmax_du (__m256i _1, __m256i _2)
659 return (__m256i)__builtin_lasx_xvmax_du ((v4u64)_1, (v4u64)_2);
662 /* Assembly instruction format: xd, xj, ui5. */
663 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
664 #define __lasx_xvmaxi_bu(/*__m256i*/ _1, /*ui5*/ _2) \
665 ((__m256i)__builtin_lasx_xvmaxi_bu ((v32u8)(_1), (_2)))
667 /* Assembly instruction format: xd, xj, ui5. */
668 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */
669 #define __lasx_xvmaxi_hu(/*__m256i*/ _1, /*ui5*/ _2) \
670 ((__m256i)__builtin_lasx_xvmaxi_hu ((v16u16)(_1), (_2)))
672 /* Assembly instruction format: xd, xj, ui5. */
673 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */
674 #define __lasx_xvmaxi_wu(/*__m256i*/ _1, /*ui5*/ _2) \
675 ((__m256i)__builtin_lasx_xvmaxi_wu ((v8u32)(_1), (_2)))
677 /* Assembly instruction format: xd, xj, ui5. */
678 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */
679 #define __lasx_xvmaxi_du(/*__m256i*/ _1, /*ui5*/ _2) \
680 ((__m256i)__builtin_lasx_xvmaxi_du ((v4u64)(_1), (_2)))
682 /* Assembly instruction format: xd, xj, xk. */
683 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
684 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
685 __m256i __lasx_xvmin_b (__m256i _1, __m256i _2)
687 return (__m256i)__builtin_lasx_xvmin_b ((v32i8)_1, (v32i8)_2);
690 /* Assembly instruction format: xd, xj, xk. */
691 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
692 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
693 __m256i __lasx_xvmin_h (__m256i _1, __m256i _2)
695 return (__m256i)__builtin_lasx_xvmin_h ((v16i16)_1, (v16i16)_2);
698 /* Assembly instruction format: xd, xj, xk. */
699 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
700 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
701 __m256i __lasx_xvmin_w (__m256i _1, __m256i _2)
703 return (__m256i)__builtin_lasx_xvmin_w ((v8i32)_1, (v8i32)_2);
706 /* Assembly instruction format: xd, xj, xk. */
707 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
708 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
709 __m256i __lasx_xvmin_d (__m256i _1, __m256i _2)
711 return (__m256i)__builtin_lasx_xvmin_d ((v4i64)_1, (v4i64)_2);
714 /* Assembly instruction format: xd, xj, si5. */
715 /* Data types in instruction templates: V32QI, V32QI, QI. */
716 #define __lasx_xvmini_b(/*__m256i*/ _1, /*si5*/ _2) \
717 ((__m256i)__builtin_lasx_xvmini_b ((v32i8)(_1), (_2)))
719 /* Assembly instruction format: xd, xj, si5. */
720 /* Data types in instruction templates: V16HI, V16HI, QI. */
721 #define __lasx_xvmini_h(/*__m256i*/ _1, /*si5*/ _2) \
722 ((__m256i)__builtin_lasx_xvmini_h ((v16i16)(_1), (_2)))
724 /* Assembly instruction format: xd, xj, si5. */
725 /* Data types in instruction templates: V8SI, V8SI, QI. */
726 #define __lasx_xvmini_w(/*__m256i*/ _1, /*si5*/ _2) \
727 ((__m256i)__builtin_lasx_xvmini_w ((v8i32)(_1), (_2)))
729 /* Assembly instruction format: xd, xj, si5. */
730 /* Data types in instruction templates: V4DI, V4DI, QI. */
731 #define __lasx_xvmini_d(/*__m256i*/ _1, /*si5*/ _2) \
732 ((__m256i)__builtin_lasx_xvmini_d ((v4i64)(_1), (_2)))
734 /* Assembly instruction format: xd, xj, xk. */
735 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
736 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
737 __m256i __lasx_xvmin_bu (__m256i _1, __m256i _2)
739 return (__m256i)__builtin_lasx_xvmin_bu ((v32u8)_1, (v32u8)_2);
742 /* Assembly instruction format: xd, xj, xk. */
743 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
744 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
745 __m256i __lasx_xvmin_hu (__m256i _1, __m256i _2)
747 return (__m256i)__builtin_lasx_xvmin_hu ((v16u16)_1, (v16u16)_2);
750 /* Assembly instruction format: xd, xj, xk. */
751 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
752 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
753 __m256i __lasx_xvmin_wu (__m256i _1, __m256i _2)
755 return (__m256i)__builtin_lasx_xvmin_wu ((v8u32)_1, (v8u32)_2);
758 /* Assembly instruction format: xd, xj, xk. */
759 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
760 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
761 __m256i __lasx_xvmin_du (__m256i _1, __m256i _2)
763 return (__m256i)__builtin_lasx_xvmin_du ((v4u64)_1, (v4u64)_2);
766 /* Assembly instruction format: xd, xj, ui5. */
767 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
768 #define __lasx_xvmini_bu(/*__m256i*/ _1, /*ui5*/ _2) \
769 ((__m256i)__builtin_lasx_xvmini_bu ((v32u8)(_1), (_2)))
771 /* Assembly instruction format: xd, xj, ui5. */
772 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */
773 #define __lasx_xvmini_hu(/*__m256i*/ _1, /*ui5*/ _2) \
774 ((__m256i)__builtin_lasx_xvmini_hu ((v16u16)(_1), (_2)))
776 /* Assembly instruction format: xd, xj, ui5. */
777 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */
778 #define __lasx_xvmini_wu(/*__m256i*/ _1, /*ui5*/ _2) \
779 ((__m256i)__builtin_lasx_xvmini_wu ((v8u32)(_1), (_2)))
781 /* Assembly instruction format: xd, xj, ui5. */
782 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */
783 #define __lasx_xvmini_du(/*__m256i*/ _1, /*ui5*/ _2) \
784 ((__m256i)__builtin_lasx_xvmini_du ((v4u64)(_1), (_2)))
786 /* Assembly instruction format: xd, xj, xk. */
787 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
788 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
789 __m256i __lasx_xvseq_b (__m256i _1, __m256i _2)
791 return (__m256i)__builtin_lasx_xvseq_b ((v32i8)_1, (v32i8)_2);
794 /* Assembly instruction format: xd, xj, xk. */
795 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
796 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
797 __m256i __lasx_xvseq_h (__m256i _1, __m256i _2)
799 return (__m256i)__builtin_lasx_xvseq_h ((v16i16)_1, (v16i16)_2);
802 /* Assembly instruction format: xd, xj, xk. */
803 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
804 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
805 __m256i __lasx_xvseq_w (__m256i _1, __m256i _2)
807 return (__m256i)__builtin_lasx_xvseq_w ((v8i32)_1, (v8i32)_2);
810 /* Assembly instruction format: xd, xj, xk. */
811 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
812 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
813 __m256i __lasx_xvseq_d (__m256i _1, __m256i _2)
815 return (__m256i)__builtin_lasx_xvseq_d ((v4i64)_1, (v4i64)_2);
818 /* Assembly instruction format: xd, xj, si5. */
819 /* Data types in instruction templates: V32QI, V32QI, QI. */
820 #define __lasx_xvseqi_b(/*__m256i*/ _1, /*si5*/ _2) \
821 ((__m256i)__builtin_lasx_xvseqi_b ((v32i8)(_1), (_2)))
823 /* Assembly instruction format: xd, xj, si5. */
824 /* Data types in instruction templates: V16HI, V16HI, QI. */
825 #define __lasx_xvseqi_h(/*__m256i*/ _1, /*si5*/ _2) \
826 ((__m256i)__builtin_lasx_xvseqi_h ((v16i16)(_1), (_2)))
828 /* Assembly instruction format: xd, xj, si5. */
829 /* Data types in instruction templates: V8SI, V8SI, QI. */
830 #define __lasx_xvseqi_w(/*__m256i*/ _1, /*si5*/ _2) \
831 ((__m256i)__builtin_lasx_xvseqi_w ((v8i32)(_1), (_2)))
833 /* Assembly instruction format: xd, xj, si5. */
834 /* Data types in instruction templates: V4DI, V4DI, QI. */
835 #define __lasx_xvseqi_d(/*__m256i*/ _1, /*si5*/ _2) \
836 ((__m256i)__builtin_lasx_xvseqi_d ((v4i64)(_1), (_2)))
838 /* Assembly instruction format: xd, xj, xk. */
839 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
840 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
841 __m256i __lasx_xvslt_b (__m256i _1, __m256i _2)
843 return (__m256i)__builtin_lasx_xvslt_b ((v32i8)_1, (v32i8)_2);
846 /* Assembly instruction format: xd, xj, xk. */
847 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
848 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
849 __m256i __lasx_xvslt_h (__m256i _1, __m256i _2)
851 return (__m256i)__builtin_lasx_xvslt_h ((v16i16)_1, (v16i16)_2);
854 /* Assembly instruction format: xd, xj, xk. */
855 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
856 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
857 __m256i __lasx_xvslt_w (__m256i _1, __m256i _2)
859 return (__m256i)__builtin_lasx_xvslt_w ((v8i32)_1, (v8i32)_2);
862 /* Assembly instruction format: xd, xj, xk. */
863 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
864 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
865 __m256i __lasx_xvslt_d (__m256i _1, __m256i _2)
867 return (__m256i)__builtin_lasx_xvslt_d ((v4i64)_1, (v4i64)_2);
870 /* Assembly instruction format: xd, xj, si5. */
871 /* Data types in instruction templates: V32QI, V32QI, QI. */
872 #define __lasx_xvslti_b(/*__m256i*/ _1, /*si5*/ _2) \
873 ((__m256i)__builtin_lasx_xvslti_b ((v32i8)(_1), (_2)))
875 /* Assembly instruction format: xd, xj, si5. */
876 /* Data types in instruction templates: V16HI, V16HI, QI. */
877 #define __lasx_xvslti_h(/*__m256i*/ _1, /*si5*/ _2) \
878 ((__m256i)__builtin_lasx_xvslti_h ((v16i16)(_1), (_2)))
880 /* Assembly instruction format: xd, xj, si5. */
881 /* Data types in instruction templates: V8SI, V8SI, QI. */
882 #define __lasx_xvslti_w(/*__m256i*/ _1, /*si5*/ _2) \
883 ((__m256i)__builtin_lasx_xvslti_w ((v8i32)(_1), (_2)))
885 /* Assembly instruction format: xd, xj, si5. */
886 /* Data types in instruction templates: V4DI, V4DI, QI. */
887 #define __lasx_xvslti_d(/*__m256i*/ _1, /*si5*/ _2) \
888 ((__m256i)__builtin_lasx_xvslti_d ((v4i64)(_1), (_2)))
890 /* Assembly instruction format: xd, xj, xk. */
891 /* Data types in instruction templates: V32QI, UV32QI, UV32QI. */
892 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
893 __m256i __lasx_xvslt_bu (__m256i _1, __m256i _2)
895 return (__m256i)__builtin_lasx_xvslt_bu ((v32u8)_1, (v32u8)_2);
898 /* Assembly instruction format: xd, xj, xk. */
899 /* Data types in instruction templates: V16HI, UV16HI, UV16HI. */
900 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
901 __m256i __lasx_xvslt_hu (__m256i _1, __m256i _2)
903 return (__m256i)__builtin_lasx_xvslt_hu ((v16u16)_1, (v16u16)_2);
906 /* Assembly instruction format: xd, xj, xk. */
907 /* Data types in instruction templates: V8SI, UV8SI, UV8SI. */
908 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
909 __m256i __lasx_xvslt_wu (__m256i _1, __m256i _2)
911 return (__m256i)__builtin_lasx_xvslt_wu ((v8u32)_1, (v8u32)_2);
914 /* Assembly instruction format: xd, xj, xk. */
915 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
916 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
917 __m256i __lasx_xvslt_du (__m256i _1, __m256i _2)
919 return (__m256i)__builtin_lasx_xvslt_du ((v4u64)_1, (v4u64)_2);
922 /* Assembly instruction format: xd, xj, ui5. */
923 /* Data types in instruction templates: V32QI, UV32QI, UQI. */
924 #define __lasx_xvslti_bu(/*__m256i*/ _1, /*ui5*/ _2) \
925 ((__m256i)__builtin_lasx_xvslti_bu ((v32u8)(_1), (_2)))
927 /* Assembly instruction format: xd, xj, ui5. */
928 /* Data types in instruction templates: V16HI, UV16HI, UQI. */
929 #define __lasx_xvslti_hu(/*__m256i*/ _1, /*ui5*/ _2) \
930 ((__m256i)__builtin_lasx_xvslti_hu ((v16u16)(_1), (_2)))
932 /* Assembly instruction format: xd, xj, ui5. */
933 /* Data types in instruction templates: V8SI, UV8SI, UQI. */
934 #define __lasx_xvslti_wu(/*__m256i*/ _1, /*ui5*/ _2) \
935 ((__m256i)__builtin_lasx_xvslti_wu ((v8u32)(_1), (_2)))
937 /* Assembly instruction format: xd, xj, ui5. */
938 /* Data types in instruction templates: V4DI, UV4DI, UQI. */
939 #define __lasx_xvslti_du(/*__m256i*/ _1, /*ui5*/ _2) \
940 ((__m256i)__builtin_lasx_xvslti_du ((v4u64)(_1), (_2)))
942 /* Assembly instruction format: xd, xj, xk. */
943 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
944 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
945 __m256i __lasx_xvsle_b (__m256i _1, __m256i _2)
947 return (__m256i)__builtin_lasx_xvsle_b ((v32i8)_1, (v32i8)_2);
950 /* Assembly instruction format: xd, xj, xk. */
951 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
952 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
953 __m256i __lasx_xvsle_h (__m256i _1, __m256i _2)
955 return (__m256i)__builtin_lasx_xvsle_h ((v16i16)_1, (v16i16)_2);
958 /* Assembly instruction format: xd, xj, xk. */
959 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
960 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
961 __m256i __lasx_xvsle_w (__m256i _1, __m256i _2)
963 return (__m256i)__builtin_lasx_xvsle_w ((v8i32)_1, (v8i32)_2);
966 /* Assembly instruction format: xd, xj, xk. */
967 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
968 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
969 __m256i __lasx_xvsle_d (__m256i _1, __m256i _2)
971 return (__m256i)__builtin_lasx_xvsle_d ((v4i64)_1, (v4i64)_2);
974 /* Assembly instruction format: xd, xj, si5. */
975 /* Data types in instruction templates: V32QI, V32QI, QI. */
976 #define __lasx_xvslei_b(/*__m256i*/ _1, /*si5*/ _2) \
977 ((__m256i)__builtin_lasx_xvslei_b ((v32i8)(_1), (_2)))
979 /* Assembly instruction format: xd, xj, si5. */
980 /* Data types in instruction templates: V16HI, V16HI, QI. */
981 #define __lasx_xvslei_h(/*__m256i*/ _1, /*si5*/ _2) \
982 ((__m256i)__builtin_lasx_xvslei_h ((v16i16)(_1), (_2)))
984 /* Assembly instruction format: xd, xj, si5. */
985 /* Data types in instruction templates: V8SI, V8SI, QI. */
986 #define __lasx_xvslei_w(/*__m256i*/ _1, /*si5*/ _2) \
987 ((__m256i)__builtin_lasx_xvslei_w ((v8i32)(_1), (_2)))
989 /* Assembly instruction format: xd, xj, si5. */
990 /* Data types in instruction templates: V4DI, V4DI, QI. */
991 #define __lasx_xvslei_d(/*__m256i*/ _1, /*si5*/ _2) \
992 ((__m256i)__builtin_lasx_xvslei_d ((v4i64)(_1), (_2)))
994 /* Assembly instruction format: xd, xj, xk. */
995 /* Data types in instruction templates: V32QI, UV32QI, UV32QI. */
996 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
997 __m256i __lasx_xvsle_bu (__m256i _1, __m256i _2)
999 return (__m256i)__builtin_lasx_xvsle_bu ((v32u8)_1, (v32u8)_2);
1002 /* Assembly instruction format: xd, xj, xk. */
1003 /* Data types in instruction templates: V16HI, UV16HI, UV16HI. */
1004 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1005 __m256i __lasx_xvsle_hu (__m256i _1, __m256i _2)
1007 return (__m256i)__builtin_lasx_xvsle_hu ((v16u16)_1, (v16u16)_2);
1010 /* Assembly instruction format: xd, xj, xk. */
1011 /* Data types in instruction templates: V8SI, UV8SI, UV8SI. */
1012 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1013 __m256i __lasx_xvsle_wu (__m256i _1, __m256i _2)
1015 return (__m256i)__builtin_lasx_xvsle_wu ((v8u32)_1, (v8u32)_2);
1018 /* Assembly instruction format: xd, xj, xk. */
1019 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
1020 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1021 __m256i __lasx_xvsle_du (__m256i _1, __m256i _2)
1023 return (__m256i)__builtin_lasx_xvsle_du ((v4u64)_1, (v4u64)_2);
1026 /* Assembly instruction format: xd, xj, ui5. */
1027 /* Data types in instruction templates: V32QI, UV32QI, UQI. */
1028 #define __lasx_xvslei_bu(/*__m256i*/ _1, /*ui5*/ _2) \
1029 ((__m256i)__builtin_lasx_xvslei_bu ((v32u8)(_1), (_2)))
1031 /* Assembly instruction format: xd, xj, ui5. */
1032 /* Data types in instruction templates: V16HI, UV16HI, UQI. */
1033 #define __lasx_xvslei_hu(/*__m256i*/ _1, /*ui5*/ _2) \
1034 ((__m256i)__builtin_lasx_xvslei_hu ((v16u16)(_1), (_2)))
1036 /* Assembly instruction format: xd, xj, ui5. */
1037 /* Data types in instruction templates: V8SI, UV8SI, UQI. */
1038 #define __lasx_xvslei_wu(/*__m256i*/ _1, /*ui5*/ _2) \
1039 ((__m256i)__builtin_lasx_xvslei_wu ((v8u32)(_1), (_2)))
1041 /* Assembly instruction format: xd, xj, ui5. */
1042 /* Data types in instruction templates: V4DI, UV4DI, UQI. */
1043 #define __lasx_xvslei_du(/*__m256i*/ _1, /*ui5*/ _2) \
1044 ((__m256i)__builtin_lasx_xvslei_du ((v4u64)(_1), (_2)))
1046 /* Assembly instruction format: xd, xj, ui3. */
1047 /* Data types in instruction templates: V32QI, V32QI, UQI. */
1048 #define __lasx_xvsat_b(/*__m256i*/ _1, /*ui3*/ _2) \
1049 ((__m256i)__builtin_lasx_xvsat_b ((v32i8)(_1), (_2)))
1051 /* Assembly instruction format: xd, xj, ui4. */
1052 /* Data types in instruction templates: V16HI, V16HI, UQI. */
1053 #define __lasx_xvsat_h(/*__m256i*/ _1, /*ui4*/ _2) \
1054 ((__m256i)__builtin_lasx_xvsat_h ((v16i16)(_1), (_2)))
1056 /* Assembly instruction format: xd, xj, ui5. */
1057 /* Data types in instruction templates: V8SI, V8SI, UQI. */
1058 #define __lasx_xvsat_w(/*__m256i*/ _1, /*ui5*/ _2) \
1059 ((__m256i)__builtin_lasx_xvsat_w ((v8i32)(_1), (_2)))
1061 /* Assembly instruction format: xd, xj, ui6. */
1062 /* Data types in instruction templates: V4DI, V4DI, UQI. */
1063 #define __lasx_xvsat_d(/*__m256i*/ _1, /*ui6*/ _2) \
1064 ((__m256i)__builtin_lasx_xvsat_d ((v4i64)(_1), (_2)))
1066 /* Assembly instruction format: xd, xj, ui3. */
1067 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
1068 #define __lasx_xvsat_bu(/*__m256i*/ _1, /*ui3*/ _2) \
1069 ((__m256i)__builtin_lasx_xvsat_bu ((v32u8)(_1), (_2)))
1071 /* Assembly instruction format: xd, xj, ui4. */
1072 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */
1073 #define __lasx_xvsat_hu(/*__m256i*/ _1, /*ui4*/ _2) \
1074 ((__m256i)__builtin_lasx_xvsat_hu ((v16u16)(_1), (_2)))
1076 /* Assembly instruction format: xd, xj, ui5. */
1077 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */
1078 #define __lasx_xvsat_wu(/*__m256i*/ _1, /*ui5*/ _2) \
1079 ((__m256i)__builtin_lasx_xvsat_wu ((v8u32)(_1), (_2)))
1081 /* Assembly instruction format: xd, xj, ui6. */
1082 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */
1083 #define __lasx_xvsat_du(/*__m256i*/ _1, /*ui6*/ _2) \
1084 ((__m256i)__builtin_lasx_xvsat_du ((v4u64)(_1), (_2)))
1086 /* Assembly instruction format: xd, xj, xk. */
1087 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1088 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1089 __m256i __lasx_xvadda_b (__m256i _1, __m256i _2)
1091 return (__m256i)__builtin_lasx_xvadda_b ((v32i8)_1, (v32i8)_2);
1094 /* Assembly instruction format: xd, xj, xk. */
1095 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1096 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1097 __m256i __lasx_xvadda_h (__m256i _1, __m256i _2)
1099 return (__m256i)__builtin_lasx_xvadda_h ((v16i16)_1, (v16i16)_2);
1102 /* Assembly instruction format: xd, xj, xk. */
1103 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1104 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1105 __m256i __lasx_xvadda_w (__m256i _1, __m256i _2)
1107 return (__m256i)__builtin_lasx_xvadda_w ((v8i32)_1, (v8i32)_2);
1110 /* Assembly instruction format: xd, xj, xk. */
1111 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1112 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1113 __m256i __lasx_xvadda_d (__m256i _1, __m256i _2)
1115 return (__m256i)__builtin_lasx_xvadda_d ((v4i64)_1, (v4i64)_2);
1118 /* Assembly instruction format: xd, xj, xk. */
1119 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1120 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1121 __m256i __lasx_xvsadd_b (__m256i _1, __m256i _2)
1123 return (__m256i)__builtin_lasx_xvsadd_b ((v32i8)_1, (v32i8)_2);
1126 /* Assembly instruction format: xd, xj, xk. */
1127 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1128 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1129 __m256i __lasx_xvsadd_h (__m256i _1, __m256i _2)
1131 return (__m256i)__builtin_lasx_xvsadd_h ((v16i16)_1, (v16i16)_2);
1134 /* Assembly instruction format: xd, xj, xk. */
1135 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1136 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1137 __m256i __lasx_xvsadd_w (__m256i _1, __m256i _2)
1139 return (__m256i)__builtin_lasx_xvsadd_w ((v8i32)_1, (v8i32)_2);
1142 /* Assembly instruction format: xd, xj, xk. */
1143 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1144 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1145 __m256i __lasx_xvsadd_d (__m256i _1, __m256i _2)
1147 return (__m256i)__builtin_lasx_xvsadd_d ((v4i64)_1, (v4i64)_2);
1150 /* Assembly instruction format: xd, xj, xk. */
1151 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
1152 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1153 __m256i __lasx_xvsadd_bu (__m256i _1, __m256i _2)
1155 return (__m256i)__builtin_lasx_xvsadd_bu ((v32u8)_1, (v32u8)_2);
1158 /* Assembly instruction format: xd, xj, xk. */
1159 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
1160 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1161 __m256i __lasx_xvsadd_hu (__m256i _1, __m256i _2)
1163 return (__m256i)__builtin_lasx_xvsadd_hu ((v16u16)_1, (v16u16)_2);
1166 /* Assembly instruction format: xd, xj, xk. */
1167 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
1168 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1169 __m256i __lasx_xvsadd_wu (__m256i _1, __m256i _2)
1171 return (__m256i)__builtin_lasx_xvsadd_wu ((v8u32)_1, (v8u32)_2);
1174 /* Assembly instruction format: xd, xj, xk. */
1175 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
1176 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1177 __m256i __lasx_xvsadd_du (__m256i _1, __m256i _2)
1179 return (__m256i)__builtin_lasx_xvsadd_du ((v4u64)_1, (v4u64)_2);
1182 /* Assembly instruction format: xd, xj, xk. */
1183 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1184 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1185 __m256i __lasx_xvavg_b (__m256i _1, __m256i _2)
1187 return (__m256i)__builtin_lasx_xvavg_b ((v32i8)_1, (v32i8)_2);
1190 /* Assembly instruction format: xd, xj, xk. */
1191 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1192 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1193 __m256i __lasx_xvavg_h (__m256i _1, __m256i _2)
1195 return (__m256i)__builtin_lasx_xvavg_h ((v16i16)_1, (v16i16)_2);
1198 /* Assembly instruction format: xd, xj, xk. */
1199 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1200 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1201 __m256i __lasx_xvavg_w (__m256i _1, __m256i _2)
1203 return (__m256i)__builtin_lasx_xvavg_w ((v8i32)_1, (v8i32)_2);
1206 /* Assembly instruction format: xd, xj, xk. */
1207 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1208 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1209 __m256i __lasx_xvavg_d (__m256i _1, __m256i _2)
1211 return (__m256i)__builtin_lasx_xvavg_d ((v4i64)_1, (v4i64)_2);
1214 /* Assembly instruction format: xd, xj, xk. */
1215 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
1216 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1217 __m256i __lasx_xvavg_bu (__m256i _1, __m256i _2)
1219 return (__m256i)__builtin_lasx_xvavg_bu ((v32u8)_1, (v32u8)_2);
1222 /* Assembly instruction format: xd, xj, xk. */
1223 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
1224 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1225 __m256i __lasx_xvavg_hu (__m256i _1, __m256i _2)
1227 return (__m256i)__builtin_lasx_xvavg_hu ((v16u16)_1, (v16u16)_2);
1230 /* Assembly instruction format: xd, xj, xk. */
1231 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
1232 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1233 __m256i __lasx_xvavg_wu (__m256i _1, __m256i _2)
1235 return (__m256i)__builtin_lasx_xvavg_wu ((v8u32)_1, (v8u32)_2);
1238 /* Assembly instruction format: xd, xj, xk. */
1239 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
1240 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1241 __m256i __lasx_xvavg_du (__m256i _1, __m256i _2)
1243 return (__m256i)__builtin_lasx_xvavg_du ((v4u64)_1, (v4u64)_2);
1246 /* Assembly instruction format: xd, xj, xk. */
1247 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1248 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1249 __m256i __lasx_xvavgr_b (__m256i _1, __m256i _2)
1251 return (__m256i)__builtin_lasx_xvavgr_b ((v32i8)_1, (v32i8)_2);
1254 /* Assembly instruction format: xd, xj, xk. */
1255 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1256 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1257 __m256i __lasx_xvavgr_h (__m256i _1, __m256i _2)
1259 return (__m256i)__builtin_lasx_xvavgr_h ((v16i16)_1, (v16i16)_2);
1262 /* Assembly instruction format: xd, xj, xk. */
1263 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1264 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1265 __m256i __lasx_xvavgr_w (__m256i _1, __m256i _2)
1267 return (__m256i)__builtin_lasx_xvavgr_w ((v8i32)_1, (v8i32)_2);
1270 /* Assembly instruction format: xd, xj, xk. */
1271 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1272 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1273 __m256i __lasx_xvavgr_d (__m256i _1, __m256i _2)
1275 return (__m256i)__builtin_lasx_xvavgr_d ((v4i64)_1, (v4i64)_2);
1278 /* Assembly instruction format: xd, xj, xk. */
1279 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
1280 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1281 __m256i __lasx_xvavgr_bu (__m256i _1, __m256i _2)
1283 return (__m256i)__builtin_lasx_xvavgr_bu ((v32u8)_1, (v32u8)_2);
1286 /* Assembly instruction format: xd, xj, xk. */
1287 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
1288 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1289 __m256i __lasx_xvavgr_hu (__m256i _1, __m256i _2)
1291 return (__m256i)__builtin_lasx_xvavgr_hu ((v16u16)_1, (v16u16)_2);
1294 /* Assembly instruction format: xd, xj, xk. */
1295 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
1296 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1297 __m256i __lasx_xvavgr_wu (__m256i _1, __m256i _2)
1299 return (__m256i)__builtin_lasx_xvavgr_wu ((v8u32)_1, (v8u32)_2);
1302 /* Assembly instruction format: xd, xj, xk. */
1303 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
1304 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1305 __m256i __lasx_xvavgr_du (__m256i _1, __m256i _2)
1307 return (__m256i)__builtin_lasx_xvavgr_du ((v4u64)_1, (v4u64)_2);
1310 /* Assembly instruction format: xd, xj, xk. */
1311 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1312 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1313 __m256i __lasx_xvssub_b (__m256i _1, __m256i _2)
1315 return (__m256i)__builtin_lasx_xvssub_b ((v32i8)_1, (v32i8)_2);
1318 /* Assembly instruction format: xd, xj, xk. */
1319 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1320 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1321 __m256i __lasx_xvssub_h (__m256i _1, __m256i _2)
1323 return (__m256i)__builtin_lasx_xvssub_h ((v16i16)_1, (v16i16)_2);
1326 /* Assembly instruction format: xd, xj, xk. */
1327 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1328 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1329 __m256i __lasx_xvssub_w (__m256i _1, __m256i _2)
1331 return (__m256i)__builtin_lasx_xvssub_w ((v8i32)_1, (v8i32)_2);
1334 /* Assembly instruction format: xd, xj, xk. */
1335 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1336 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1337 __m256i __lasx_xvssub_d (__m256i _1, __m256i _2)
1339 return (__m256i)__builtin_lasx_xvssub_d ((v4i64)_1, (v4i64)_2);
1342 /* Assembly instruction format: xd, xj, xk. */
1343 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
1344 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1345 __m256i __lasx_xvssub_bu (__m256i _1, __m256i _2)
1347 return (__m256i)__builtin_lasx_xvssub_bu ((v32u8)_1, (v32u8)_2);
1350 /* Assembly instruction format: xd, xj, xk. */
1351 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
1352 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1353 __m256i __lasx_xvssub_hu (__m256i _1, __m256i _2)
1355 return (__m256i)__builtin_lasx_xvssub_hu ((v16u16)_1, (v16u16)_2);
1358 /* Assembly instruction format: xd, xj, xk. */
1359 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
1360 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1361 __m256i __lasx_xvssub_wu (__m256i _1, __m256i _2)
1363 return (__m256i)__builtin_lasx_xvssub_wu ((v8u32)_1, (v8u32)_2);
1366 /* Assembly instruction format: xd, xj, xk. */
1367 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
1368 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1369 __m256i __lasx_xvssub_du (__m256i _1, __m256i _2)
1371 return (__m256i)__builtin_lasx_xvssub_du ((v4u64)_1, (v4u64)_2);
1374 /* Assembly instruction format: xd, xj, xk. */
1375 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1376 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1377 __m256i __lasx_xvabsd_b (__m256i _1, __m256i _2)
1379 return (__m256i)__builtin_lasx_xvabsd_b ((v32i8)_1, (v32i8)_2);
1382 /* Assembly instruction format: xd, xj, xk. */
1383 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1384 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1385 __m256i __lasx_xvabsd_h (__m256i _1, __m256i _2)
1387 return (__m256i)__builtin_lasx_xvabsd_h ((v16i16)_1, (v16i16)_2);
1390 /* Assembly instruction format: xd, xj, xk. */
1391 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1392 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1393 __m256i __lasx_xvabsd_w (__m256i _1, __m256i _2)
1395 return (__m256i)__builtin_lasx_xvabsd_w ((v8i32)_1, (v8i32)_2);
1398 /* Assembly instruction format: xd, xj, xk. */
1399 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1400 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1401 __m256i __lasx_xvabsd_d (__m256i _1, __m256i _2)
1403 return (__m256i)__builtin_lasx_xvabsd_d ((v4i64)_1, (v4i64)_2);
1406 /* Assembly instruction format: xd, xj, xk. */
1407 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
1408 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1409 __m256i __lasx_xvabsd_bu (__m256i _1, __m256i _2)
1411 return (__m256i)__builtin_lasx_xvabsd_bu ((v32u8)_1, (v32u8)_2);
1414 /* Assembly instruction format: xd, xj, xk. */
1415 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
1416 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1417 __m256i __lasx_xvabsd_hu (__m256i _1, __m256i _2)
1419 return (__m256i)__builtin_lasx_xvabsd_hu ((v16u16)_1, (v16u16)_2);
1422 /* Assembly instruction format: xd, xj, xk. */
1423 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
1424 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1425 __m256i __lasx_xvabsd_wu (__m256i _1, __m256i _2)
1427 return (__m256i)__builtin_lasx_xvabsd_wu ((v8u32)_1, (v8u32)_2);
1430 /* Assembly instruction format: xd, xj, xk. */
1431 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
1432 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1433 __m256i __lasx_xvabsd_du (__m256i _1, __m256i _2)
1435 return (__m256i)__builtin_lasx_xvabsd_du ((v4u64)_1, (v4u64)_2);
1438 /* Assembly instruction format: xd, xj, xk. */
1439 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1440 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1441 __m256i __lasx_xvmul_b (__m256i _1, __m256i _2)
1443 return (__m256i)__builtin_lasx_xvmul_b ((v32i8)_1, (v32i8)_2);
1446 /* Assembly instruction format: xd, xj, xk. */
1447 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1448 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1449 __m256i __lasx_xvmul_h (__m256i _1, __m256i _2)
1451 return (__m256i)__builtin_lasx_xvmul_h ((v16i16)_1, (v16i16)_2);
1454 /* Assembly instruction format: xd, xj, xk. */
1455 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1456 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1457 __m256i __lasx_xvmul_w (__m256i _1, __m256i _2)
1459 return (__m256i)__builtin_lasx_xvmul_w ((v8i32)_1, (v8i32)_2);
1462 /* Assembly instruction format: xd, xj, xk. */
1463 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1464 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1465 __m256i __lasx_xvmul_d (__m256i _1, __m256i _2)
1467 return (__m256i)__builtin_lasx_xvmul_d ((v4i64)_1, (v4i64)_2);
1470 /* Assembly instruction format: xd, xj, xk. */
1471 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */
1472 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1473 __m256i __lasx_xvmadd_b (__m256i _1, __m256i _2, __m256i _3)
1475 return (__m256i)__builtin_lasx_xvmadd_b ((v32i8)_1, (v32i8)_2, (v32i8)_3);
1478 /* Assembly instruction format: xd, xj, xk. */
1479 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */
1480 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1481 __m256i __lasx_xvmadd_h (__m256i _1, __m256i _2, __m256i _3)
1483 return (__m256i)__builtin_lasx_xvmadd_h ((v16i16)_1, (v16i16)_2, (v16i16)_3);
1486 /* Assembly instruction format: xd, xj, xk. */
1487 /* Data types in instruction templates: V8SI, V8SI, V8SI, V8SI. */
1488 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1489 __m256i __lasx_xvmadd_w (__m256i _1, __m256i _2, __m256i _3)
1491 return (__m256i)__builtin_lasx_xvmadd_w ((v8i32)_1, (v8i32)_2, (v8i32)_3);
1494 /* Assembly instruction format: xd, xj, xk. */
1495 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */
1496 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1497 __m256i __lasx_xvmadd_d (__m256i _1, __m256i _2, __m256i _3)
1499 return (__m256i)__builtin_lasx_xvmadd_d ((v4i64)_1, (v4i64)_2, (v4i64)_3);
1502 /* Assembly instruction format: xd, xj, xk. */
1503 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */
1504 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1505 __m256i __lasx_xvmsub_b (__m256i _1, __m256i _2, __m256i _3)
1507 return (__m256i)__builtin_lasx_xvmsub_b ((v32i8)_1, (v32i8)_2, (v32i8)_3);
1510 /* Assembly instruction format: xd, xj, xk. */
1511 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */
1512 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1513 __m256i __lasx_xvmsub_h (__m256i _1, __m256i _2, __m256i _3)
1515 return (__m256i)__builtin_lasx_xvmsub_h ((v16i16)_1, (v16i16)_2, (v16i16)_3);
1518 /* Assembly instruction format: xd, xj, xk. */
1519 /* Data types in instruction templates: V8SI, V8SI, V8SI, V8SI. */
1520 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1521 __m256i __lasx_xvmsub_w (__m256i _1, __m256i _2, __m256i _3)
1523 return (__m256i)__builtin_lasx_xvmsub_w ((v8i32)_1, (v8i32)_2, (v8i32)_3);
1526 /* Assembly instruction format: xd, xj, xk. */
1527 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */
1528 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1529 __m256i __lasx_xvmsub_d (__m256i _1, __m256i _2, __m256i _3)
1531 return (__m256i)__builtin_lasx_xvmsub_d ((v4i64)_1, (v4i64)_2, (v4i64)_3);
1534 /* Assembly instruction format: xd, xj, xk. */
1535 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1536 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1537 __m256i __lasx_xvdiv_b (__m256i _1, __m256i _2)
1539 return (__m256i)__builtin_lasx_xvdiv_b ((v32i8)_1, (v32i8)_2);
1542 /* Assembly instruction format: xd, xj, xk. */
1543 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1544 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1545 __m256i __lasx_xvdiv_h (__m256i _1, __m256i _2)
1547 return (__m256i)__builtin_lasx_xvdiv_h ((v16i16)_1, (v16i16)_2);
1550 /* Assembly instruction format: xd, xj, xk. */
1551 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1552 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1553 __m256i __lasx_xvdiv_w (__m256i _1, __m256i _2)
1555 return (__m256i)__builtin_lasx_xvdiv_w ((v8i32)_1, (v8i32)_2);
1558 /* Assembly instruction format: xd, xj, xk. */
1559 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1560 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1561 __m256i __lasx_xvdiv_d (__m256i _1, __m256i _2)
1563 return (__m256i)__builtin_lasx_xvdiv_d ((v4i64)_1, (v4i64)_2);
1566 /* Assembly instruction format: xd, xj, xk. */
1567 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
1568 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1569 __m256i __lasx_xvdiv_bu (__m256i _1, __m256i _2)
1571 return (__m256i)__builtin_lasx_xvdiv_bu ((v32u8)_1, (v32u8)_2);
1574 /* Assembly instruction format: xd, xj, xk. */
1575 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
1576 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1577 __m256i __lasx_xvdiv_hu (__m256i _1, __m256i _2)
1579 return (__m256i)__builtin_lasx_xvdiv_hu ((v16u16)_1, (v16u16)_2);
1582 /* Assembly instruction format: xd, xj, xk. */
1583 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
1584 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1585 __m256i __lasx_xvdiv_wu (__m256i _1, __m256i _2)
1587 return (__m256i)__builtin_lasx_xvdiv_wu ((v8u32)_1, (v8u32)_2);
1590 /* Assembly instruction format: xd, xj, xk. */
1591 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
1592 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1593 __m256i __lasx_xvdiv_du (__m256i _1, __m256i _2)
1595 return (__m256i)__builtin_lasx_xvdiv_du ((v4u64)_1, (v4u64)_2);
1598 /* Assembly instruction format: xd, xj, xk. */
1599 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
1600 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1601 __m256i __lasx_xvhaddw_h_b (__m256i _1, __m256i _2)
1603 return (__m256i)__builtin_lasx_xvhaddw_h_b ((v32i8)_1, (v32i8)_2);
1606 /* Assembly instruction format: xd, xj, xk. */
1607 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
1608 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1609 __m256i __lasx_xvhaddw_w_h (__m256i _1, __m256i _2)
1611 return (__m256i)__builtin_lasx_xvhaddw_w_h ((v16i16)_1, (v16i16)_2);
1614 /* Assembly instruction format: xd, xj, xk. */
1615 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
1616 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1617 __m256i __lasx_xvhaddw_d_w (__m256i _1, __m256i _2)
1619 return (__m256i)__builtin_lasx_xvhaddw_d_w ((v8i32)_1, (v8i32)_2);
1622 /* Assembly instruction format: xd, xj, xk. */
1623 /* Data types in instruction templates: UV16HI, UV32QI, UV32QI. */
1624 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1625 __m256i __lasx_xvhaddw_hu_bu (__m256i _1, __m256i _2)
1627 return (__m256i)__builtin_lasx_xvhaddw_hu_bu ((v32u8)_1, (v32u8)_2);
1630 /* Assembly instruction format: xd, xj, xk. */
1631 /* Data types in instruction templates: UV8SI, UV16HI, UV16HI. */
1632 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1633 __m256i __lasx_xvhaddw_wu_hu (__m256i _1, __m256i _2)
1635 return (__m256i)__builtin_lasx_xvhaddw_wu_hu ((v16u16)_1, (v16u16)_2);
1638 /* Assembly instruction format: xd, xj, xk. */
1639 /* Data types in instruction templates: UV4DI, UV8SI, UV8SI. */
1640 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1641 __m256i __lasx_xvhaddw_du_wu (__m256i _1, __m256i _2)
1643 return (__m256i)__builtin_lasx_xvhaddw_du_wu ((v8u32)_1, (v8u32)_2);
1646 /* Assembly instruction format: xd, xj, xk. */
1647 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
1648 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1649 __m256i __lasx_xvhsubw_h_b (__m256i _1, __m256i _2)
1651 return (__m256i)__builtin_lasx_xvhsubw_h_b ((v32i8)_1, (v32i8)_2);
1654 /* Assembly instruction format: xd, xj, xk. */
1655 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
1656 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1657 __m256i __lasx_xvhsubw_w_h (__m256i _1, __m256i _2)
1659 return (__m256i)__builtin_lasx_xvhsubw_w_h ((v16i16)_1, (v16i16)_2);
1662 /* Assembly instruction format: xd, xj, xk. */
1663 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
1664 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1665 __m256i __lasx_xvhsubw_d_w (__m256i _1, __m256i _2)
1667 return (__m256i)__builtin_lasx_xvhsubw_d_w ((v8i32)_1, (v8i32)_2);
1670 /* Assembly instruction format: xd, xj, xk. */
1671 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */
1672 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1673 __m256i __lasx_xvhsubw_hu_bu (__m256i _1, __m256i _2)
1675 return (__m256i)__builtin_lasx_xvhsubw_hu_bu ((v32u8)_1, (v32u8)_2);
1678 /* Assembly instruction format: xd, xj, xk. */
1679 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */
1680 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1681 __m256i __lasx_xvhsubw_wu_hu (__m256i _1, __m256i _2)
1683 return (__m256i)__builtin_lasx_xvhsubw_wu_hu ((v16u16)_1, (v16u16)_2);
1686 /* Assembly instruction format: xd, xj, xk. */
1687 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */
1688 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1689 __m256i __lasx_xvhsubw_du_wu (__m256i _1, __m256i _2)
1691 return (__m256i)__builtin_lasx_xvhsubw_du_wu ((v8u32)_1, (v8u32)_2);
1694 /* Assembly instruction format: xd, xj, xk. */
1695 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1696 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1697 __m256i __lasx_xvmod_b (__m256i _1, __m256i _2)
1699 return (__m256i)__builtin_lasx_xvmod_b ((v32i8)_1, (v32i8)_2);
1702 /* Assembly instruction format: xd, xj, xk. */
1703 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1704 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1705 __m256i __lasx_xvmod_h (__m256i _1, __m256i _2)
1707 return (__m256i)__builtin_lasx_xvmod_h ((v16i16)_1, (v16i16)_2);
1710 /* Assembly instruction format: xd, xj, xk. */
1711 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1712 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1713 __m256i __lasx_xvmod_w (__m256i _1, __m256i _2)
1715 return (__m256i)__builtin_lasx_xvmod_w ((v8i32)_1, (v8i32)_2);
1718 /* Assembly instruction format: xd, xj, xk. */
1719 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1720 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1721 __m256i __lasx_xvmod_d (__m256i _1, __m256i _2)
1723 return (__m256i)__builtin_lasx_xvmod_d ((v4i64)_1, (v4i64)_2);
1726 /* Assembly instruction format: xd, xj, xk. */
1727 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
1728 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1729 __m256i __lasx_xvmod_bu (__m256i _1, __m256i _2)
1731 return (__m256i)__builtin_lasx_xvmod_bu ((v32u8)_1, (v32u8)_2);
1734 /* Assembly instruction format: xd, xj, xk. */
1735 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
1736 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1737 __m256i __lasx_xvmod_hu (__m256i _1, __m256i _2)
1739 return (__m256i)__builtin_lasx_xvmod_hu ((v16u16)_1, (v16u16)_2);
1742 /* Assembly instruction format: xd, xj, xk. */
1743 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
1744 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1745 __m256i __lasx_xvmod_wu (__m256i _1, __m256i _2)
1747 return (__m256i)__builtin_lasx_xvmod_wu ((v8u32)_1, (v8u32)_2);
1750 /* Assembly instruction format: xd, xj, xk. */
1751 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
1752 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1753 __m256i __lasx_xvmod_du (__m256i _1, __m256i _2)
1755 return (__m256i)__builtin_lasx_xvmod_du ((v4u64)_1, (v4u64)_2);
1758 /* Assembly instruction format: xd, xj, ui4. */
1759 /* Data types in instruction templates: V32QI, V32QI, UQI. */
1760 #define __lasx_xvrepl128vei_b(/*__m256i*/ _1, /*ui4*/ _2) \
1761 ((__m256i)__builtin_lasx_xvrepl128vei_b ((v32i8)(_1), (_2)))
1763 /* Assembly instruction format: xd, xj, ui3. */
1764 /* Data types in instruction templates: V16HI, V16HI, UQI. */
1765 #define __lasx_xvrepl128vei_h(/*__m256i*/ _1, /*ui3*/ _2) \
1766 ((__m256i)__builtin_lasx_xvrepl128vei_h ((v16i16)(_1), (_2)))
1768 /* Assembly instruction format: xd, xj, ui2. */
1769 /* Data types in instruction templates: V8SI, V8SI, UQI. */
1770 #define __lasx_xvrepl128vei_w(/*__m256i*/ _1, /*ui2*/ _2) \
1771 ((__m256i)__builtin_lasx_xvrepl128vei_w ((v8i32)(_1), (_2)))
1773 /* Assembly instruction format: xd, xj, ui1. */
1774 /* Data types in instruction templates: V4DI, V4DI, UQI. */
1775 #define __lasx_xvrepl128vei_d(/*__m256i*/ _1, /*ui1*/ _2) \
1776 ((__m256i)__builtin_lasx_xvrepl128vei_d ((v4i64)(_1), (_2)))
1778 /* Assembly instruction format: xd, xj, xk. */
1779 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1780 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1781 __m256i __lasx_xvpickev_b (__m256i _1, __m256i _2)
1783 return (__m256i)__builtin_lasx_xvpickev_b ((v32i8)_1, (v32i8)_2);
1786 /* Assembly instruction format: xd, xj, xk. */
1787 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1788 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1789 __m256i __lasx_xvpickev_h (__m256i _1, __m256i _2)
1791 return (__m256i)__builtin_lasx_xvpickev_h ((v16i16)_1, (v16i16)_2);
1794 /* Assembly instruction format: xd, xj, xk. */
1795 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1796 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1797 __m256i __lasx_xvpickev_w (__m256i _1, __m256i _2)
1799 return (__m256i)__builtin_lasx_xvpickev_w ((v8i32)_1, (v8i32)_2);
1802 /* Assembly instruction format: xd, xj, xk. */
1803 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1804 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1805 __m256i __lasx_xvpickev_d (__m256i _1, __m256i _2)
1807 return (__m256i)__builtin_lasx_xvpickev_d ((v4i64)_1, (v4i64)_2);
1810 /* Assembly instruction format: xd, xj, xk. */
1811 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1812 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1813 __m256i __lasx_xvpickod_b (__m256i _1, __m256i _2)
1815 return (__m256i)__builtin_lasx_xvpickod_b ((v32i8)_1, (v32i8)_2);
1818 /* Assembly instruction format: xd, xj, xk. */
1819 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1820 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1821 __m256i __lasx_xvpickod_h (__m256i _1, __m256i _2)
1823 return (__m256i)__builtin_lasx_xvpickod_h ((v16i16)_1, (v16i16)_2);
1826 /* Assembly instruction format: xd, xj, xk. */
1827 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1828 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1829 __m256i __lasx_xvpickod_w (__m256i _1, __m256i _2)
1831 return (__m256i)__builtin_lasx_xvpickod_w ((v8i32)_1, (v8i32)_2);
1834 /* Assembly instruction format: xd, xj, xk. */
1835 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1836 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1837 __m256i __lasx_xvpickod_d (__m256i _1, __m256i _2)
1839 return (__m256i)__builtin_lasx_xvpickod_d ((v4i64)_1, (v4i64)_2);
1842 /* Assembly instruction format: xd, xj, xk. */
1843 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1844 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1845 __m256i __lasx_xvilvh_b (__m256i _1, __m256i _2)
1847 return (__m256i)__builtin_lasx_xvilvh_b ((v32i8)_1, (v32i8)_2);
1850 /* Assembly instruction format: xd, xj, xk. */
1851 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1852 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1853 __m256i __lasx_xvilvh_h (__m256i _1, __m256i _2)
1855 return (__m256i)__builtin_lasx_xvilvh_h ((v16i16)_1, (v16i16)_2);
1858 /* Assembly instruction format: xd, xj, xk. */
1859 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1860 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1861 __m256i __lasx_xvilvh_w (__m256i _1, __m256i _2)
1863 return (__m256i)__builtin_lasx_xvilvh_w ((v8i32)_1, (v8i32)_2);
1866 /* Assembly instruction format: xd, xj, xk. */
1867 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1868 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1869 __m256i __lasx_xvilvh_d (__m256i _1, __m256i _2)
1871 return (__m256i)__builtin_lasx_xvilvh_d ((v4i64)_1, (v4i64)_2);
1874 /* Assembly instruction format: xd, xj, xk. */
1875 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1876 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1877 __m256i __lasx_xvilvl_b (__m256i _1, __m256i _2)
1879 return (__m256i)__builtin_lasx_xvilvl_b ((v32i8)_1, (v32i8)_2);
1882 /* Assembly instruction format: xd, xj, xk. */
1883 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1884 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1885 __m256i __lasx_xvilvl_h (__m256i _1, __m256i _2)
1887 return (__m256i)__builtin_lasx_xvilvl_h ((v16i16)_1, (v16i16)_2);
1890 /* Assembly instruction format: xd, xj, xk. */
1891 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1892 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1893 __m256i __lasx_xvilvl_w (__m256i _1, __m256i _2)
1895 return (__m256i)__builtin_lasx_xvilvl_w ((v8i32)_1, (v8i32)_2);
1898 /* Assembly instruction format: xd, xj, xk. */
1899 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1900 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1901 __m256i __lasx_xvilvl_d (__m256i _1, __m256i _2)
1903 return (__m256i)__builtin_lasx_xvilvl_d ((v4i64)_1, (v4i64)_2);
1906 /* Assembly instruction format: xd, xj, xk. */
1907 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1908 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1909 __m256i __lasx_xvpackev_b (__m256i _1, __m256i _2)
1911 return (__m256i)__builtin_lasx_xvpackev_b ((v32i8)_1, (v32i8)_2);
1914 /* Assembly instruction format: xd, xj, xk. */
1915 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1916 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1917 __m256i __lasx_xvpackev_h (__m256i _1, __m256i _2)
1919 return (__m256i)__builtin_lasx_xvpackev_h ((v16i16)_1, (v16i16)_2);
1922 /* Assembly instruction format: xd, xj, xk. */
1923 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1924 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1925 __m256i __lasx_xvpackev_w (__m256i _1, __m256i _2)
1927 return (__m256i)__builtin_lasx_xvpackev_w ((v8i32)_1, (v8i32)_2);
1930 /* Assembly instruction format: xd, xj, xk. */
1931 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1932 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1933 __m256i __lasx_xvpackev_d (__m256i _1, __m256i _2)
1935 return (__m256i)__builtin_lasx_xvpackev_d ((v4i64)_1, (v4i64)_2);
1938 /* Assembly instruction format: xd, xj, xk. */
1939 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
1940 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1941 __m256i __lasx_xvpackod_b (__m256i _1, __m256i _2)
1943 return (__m256i)__builtin_lasx_xvpackod_b ((v32i8)_1, (v32i8)_2);
1946 /* Assembly instruction format: xd, xj, xk. */
1947 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
1948 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1949 __m256i __lasx_xvpackod_h (__m256i _1, __m256i _2)
1951 return (__m256i)__builtin_lasx_xvpackod_h ((v16i16)_1, (v16i16)_2);
1954 /* Assembly instruction format: xd, xj, xk. */
1955 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
1956 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1957 __m256i __lasx_xvpackod_w (__m256i _1, __m256i _2)
1959 return (__m256i)__builtin_lasx_xvpackod_w ((v8i32)_1, (v8i32)_2);
1962 /* Assembly instruction format: xd, xj, xk. */
1963 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
1964 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1965 __m256i __lasx_xvpackod_d (__m256i _1, __m256i _2)
1967 return (__m256i)__builtin_lasx_xvpackod_d ((v4i64)_1, (v4i64)_2);
1970 /* Assembly instruction format: xd, xj, xk, xa. */
1971 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */
1972 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1973 __m256i __lasx_xvshuf_b (__m256i _1, __m256i _2, __m256i _3)
1975 return (__m256i)__builtin_lasx_xvshuf_b ((v32i8)_1, (v32i8)_2, (v32i8)_3);
1978 /* Assembly instruction format: xd, xj, xk. */
1979 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */
1980 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1981 __m256i __lasx_xvshuf_h (__m256i _1, __m256i _2, __m256i _3)
1983 return (__m256i)__builtin_lasx_xvshuf_h ((v16i16)_1, (v16i16)_2, (v16i16)_3);
1986 /* Assembly instruction format: xd, xj, xk. */
1987 /* Data types in instruction templates: V8SI, V8SI, V8SI, V8SI. */
1988 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1989 __m256i __lasx_xvshuf_w (__m256i _1, __m256i _2, __m256i _3)
1991 return (__m256i)__builtin_lasx_xvshuf_w ((v8i32)_1, (v8i32)_2, (v8i32)_3);
1994 /* Assembly instruction format: xd, xj, xk. */
1995 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */
1996 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1997 __m256i __lasx_xvshuf_d (__m256i _1, __m256i _2, __m256i _3)
1999 return (__m256i)__builtin_lasx_xvshuf_d ((v4i64)_1, (v4i64)_2, (v4i64)_3);
2002 /* Assembly instruction format: xd, xj, xk. */
2003 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
2004 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2005 __m256i __lasx_xvand_v (__m256i _1, __m256i _2)
2007 return (__m256i)__builtin_lasx_xvand_v ((v32u8)_1, (v32u8)_2);
2010 /* Assembly instruction format: xd, xj, ui8. */
2011 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
2012 #define __lasx_xvandi_b(/*__m256i*/ _1, /*ui8*/ _2) \
2013 ((__m256i)__builtin_lasx_xvandi_b ((v32u8)(_1), (_2)))
2015 /* Assembly instruction format: xd, xj, xk. */
2016 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
2017 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2018 __m256i __lasx_xvor_v (__m256i _1, __m256i _2)
2020 return (__m256i)__builtin_lasx_xvor_v ((v32u8)_1, (v32u8)_2);
2023 /* Assembly instruction format: xd, xj, ui8. */
2024 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
2025 #define __lasx_xvori_b(/*__m256i*/ _1, /*ui8*/ _2) \
2026 ((__m256i)__builtin_lasx_xvori_b ((v32u8)(_1), (_2)))
2028 /* Assembly instruction format: xd, xj, xk. */
2029 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
2030 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2031 __m256i __lasx_xvnor_v (__m256i _1, __m256i _2)
2033 return (__m256i)__builtin_lasx_xvnor_v ((v32u8)_1, (v32u8)_2);
2036 /* Assembly instruction format: xd, xj, ui8. */
2037 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
2038 #define __lasx_xvnori_b(/*__m256i*/ _1, /*ui8*/ _2) \
2039 ((__m256i)__builtin_lasx_xvnori_b ((v32u8)(_1), (_2)))
2041 /* Assembly instruction format: xd, xj, xk. */
2042 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
2043 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2044 __m256i __lasx_xvxor_v (__m256i _1, __m256i _2)
2046 return (__m256i)__builtin_lasx_xvxor_v ((v32u8)_1, (v32u8)_2);
2049 /* Assembly instruction format: xd, xj, ui8. */
2050 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */
2051 #define __lasx_xvxori_b(/*__m256i*/ _1, /*ui8*/ _2) \
2052 ((__m256i)__builtin_lasx_xvxori_b ((v32u8)(_1), (_2)))
2054 /* Assembly instruction format: xd, xj, xk, xa. */
2055 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI, UV32QI. */
2056 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2057 __m256i __lasx_xvbitsel_v (__m256i _1, __m256i _2, __m256i _3)
2059 return (__m256i)__builtin_lasx_xvbitsel_v ((v32u8)_1, (v32u8)_2, (v32u8)_3);
2062 /* Assembly instruction format: xd, xj, ui8. */
2063 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI, USI. */
2064 #define __lasx_xvbitseli_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
2065 ((__m256i)__builtin_lasx_xvbitseli_b ((v32u8)(_1), (v32u8)(_2), (_3)))
2067 /* Assembly instruction format: xd, xj, ui8. */
2068 /* Data types in instruction templates: V32QI, V32QI, USI. */
2069 #define __lasx_xvshuf4i_b(/*__m256i*/ _1, /*ui8*/ _2) \
2070 ((__m256i)__builtin_lasx_xvshuf4i_b ((v32i8)(_1), (_2)))
2072 /* Assembly instruction format: xd, xj, ui8. */
2073 /* Data types in instruction templates: V16HI, V16HI, USI. */
2074 #define __lasx_xvshuf4i_h(/*__m256i*/ _1, /*ui8*/ _2) \
2075 ((__m256i)__builtin_lasx_xvshuf4i_h ((v16i16)(_1), (_2)))
2077 /* Assembly instruction format: xd, xj, ui8. */
2078 /* Data types in instruction templates: V8SI, V8SI, USI. */
2079 #define __lasx_xvshuf4i_w(/*__m256i*/ _1, /*ui8*/ _2) \
2080 ((__m256i)__builtin_lasx_xvshuf4i_w ((v8i32)(_1), (_2)))
2082 /* Assembly instruction format: xd, rj. */
2083 /* Data types in instruction templates: V32QI, SI. */
2084 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2085 __m256i __lasx_xvreplgr2vr_b (int _1)
2087 return (__m256i)__builtin_lasx_xvreplgr2vr_b ((int)_1);
2090 /* Assembly instruction format: xd, rj. */
2091 /* Data types in instruction templates: V16HI, SI. */
2092 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2093 __m256i __lasx_xvreplgr2vr_h (int _1)
2095 return (__m256i)__builtin_lasx_xvreplgr2vr_h ((int)_1);
2098 /* Assembly instruction format: xd, rj. */
2099 /* Data types in instruction templates: V8SI, SI. */
2100 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2101 __m256i __lasx_xvreplgr2vr_w (int _1)
2103 return (__m256i)__builtin_lasx_xvreplgr2vr_w ((int)_1);
2106 /* Assembly instruction format: xd, rj. */
2107 /* Data types in instruction templates: V4DI, DI. */
2108 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2109 __m256i __lasx_xvreplgr2vr_d (long int _1)
2111 return (__m256i)__builtin_lasx_xvreplgr2vr_d ((long int)_1);
2114 /* Assembly instruction format: xd, xj. */
2115 /* Data types in instruction templates: V32QI, V32QI. */
2116 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2117 __m256i __lasx_xvpcnt_b (__m256i _1)
2119 return (__m256i)__builtin_lasx_xvpcnt_b ((v32i8)_1);
2122 /* Assembly instruction format: xd, xj. */
2123 /* Data types in instruction templates: V16HI, V16HI. */
2124 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2125 __m256i __lasx_xvpcnt_h (__m256i _1)
2127 return (__m256i)__builtin_lasx_xvpcnt_h ((v16i16)_1);
2130 /* Assembly instruction format: xd, xj. */
2131 /* Data types in instruction templates: V8SI, V8SI. */
2132 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2133 __m256i __lasx_xvpcnt_w (__m256i _1)
2135 return (__m256i)__builtin_lasx_xvpcnt_w ((v8i32)_1);
2138 /* Assembly instruction format: xd, xj. */
2139 /* Data types in instruction templates: V4DI, V4DI. */
2140 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2141 __m256i __lasx_xvpcnt_d (__m256i _1)
2143 return (__m256i)__builtin_lasx_xvpcnt_d ((v4i64)_1);
2146 /* Assembly instruction format: xd, xj. */
2147 /* Data types in instruction templates: V32QI, V32QI. */
2148 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2149 __m256i __lasx_xvclo_b (__m256i _1)
2151 return (__m256i)__builtin_lasx_xvclo_b ((v32i8)_1);
2154 /* Assembly instruction format: xd, xj. */
2155 /* Data types in instruction templates: V16HI, V16HI. */
2156 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2157 __m256i __lasx_xvclo_h (__m256i _1)
2159 return (__m256i)__builtin_lasx_xvclo_h ((v16i16)_1);
2162 /* Assembly instruction format: xd, xj. */
2163 /* Data types in instruction templates: V8SI, V8SI. */
2164 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2165 __m256i __lasx_xvclo_w (__m256i _1)
2167 return (__m256i)__builtin_lasx_xvclo_w ((v8i32)_1);
2170 /* Assembly instruction format: xd, xj. */
2171 /* Data types in instruction templates: V4DI, V4DI. */
2172 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2173 __m256i __lasx_xvclo_d (__m256i _1)
2175 return (__m256i)__builtin_lasx_xvclo_d ((v4i64)_1);
2178 /* Assembly instruction format: xd, xj. */
2179 /* Data types in instruction templates: V32QI, V32QI. */
2180 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2181 __m256i __lasx_xvclz_b (__m256i _1)
2183 return (__m256i)__builtin_lasx_xvclz_b ((v32i8)_1);
2186 /* Assembly instruction format: xd, xj. */
2187 /* Data types in instruction templates: V16HI, V16HI. */
2188 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2189 __m256i __lasx_xvclz_h (__m256i _1)
2191 return (__m256i)__builtin_lasx_xvclz_h ((v16i16)_1);
2194 /* Assembly instruction format: xd, xj. */
2195 /* Data types in instruction templates: V8SI, V8SI. */
2196 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2197 __m256i __lasx_xvclz_w (__m256i _1)
2199 return (__m256i)__builtin_lasx_xvclz_w ((v8i32)_1);
2202 /* Assembly instruction format: xd, xj. */
2203 /* Data types in instruction templates: V4DI, V4DI. */
2204 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2205 __m256i __lasx_xvclz_d (__m256i _1)
2207 return (__m256i)__builtin_lasx_xvclz_d ((v4i64)_1);
2210 /* Assembly instruction format: xd, xj, xk. */
2211 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2212 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2213 __m256 __lasx_xvfadd_s (__m256 _1, __m256 _2)
2215 return (__m256)__builtin_lasx_xvfadd_s ((v8f32)_1, (v8f32)_2);
2218 /* Assembly instruction format: xd, xj, xk. */
2219 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2220 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2221 __m256d __lasx_xvfadd_d (__m256d _1, __m256d _2)
2223 return (__m256d)__builtin_lasx_xvfadd_d ((v4f64)_1, (v4f64)_2);
2226 /* Assembly instruction format: xd, xj, xk. */
2227 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2228 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2229 __m256 __lasx_xvfsub_s (__m256 _1, __m256 _2)
2231 return (__m256)__builtin_lasx_xvfsub_s ((v8f32)_1, (v8f32)_2);
2234 /* Assembly instruction format: xd, xj, xk. */
2235 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2236 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2237 __m256d __lasx_xvfsub_d (__m256d _1, __m256d _2)
2239 return (__m256d)__builtin_lasx_xvfsub_d ((v4f64)_1, (v4f64)_2);
2242 /* Assembly instruction format: xd, xj, xk. */
2243 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2244 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2245 __m256 __lasx_xvfmul_s (__m256 _1, __m256 _2)
2247 return (__m256)__builtin_lasx_xvfmul_s ((v8f32)_1, (v8f32)_2);
2250 /* Assembly instruction format: xd, xj, xk. */
2251 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2252 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2253 __m256d __lasx_xvfmul_d (__m256d _1, __m256d _2)
2255 return (__m256d)__builtin_lasx_xvfmul_d ((v4f64)_1, (v4f64)_2);
2258 /* Assembly instruction format: xd, xj, xk. */
2259 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2260 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2261 __m256 __lasx_xvfdiv_s (__m256 _1, __m256 _2)
2263 return (__m256)__builtin_lasx_xvfdiv_s ((v8f32)_1, (v8f32)_2);
2266 /* Assembly instruction format: xd, xj, xk. */
2267 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2268 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2269 __m256d __lasx_xvfdiv_d (__m256d _1, __m256d _2)
2271 return (__m256d)__builtin_lasx_xvfdiv_d ((v4f64)_1, (v4f64)_2);
2274 /* Assembly instruction format: xd, xj, xk. */
2275 /* Data types in instruction templates: V16HI, V8SF, V8SF. */
2276 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2277 __m256i __lasx_xvfcvt_h_s (__m256 _1, __m256 _2)
2279 return (__m256i)__builtin_lasx_xvfcvt_h_s ((v8f32)_1, (v8f32)_2);
2282 /* Assembly instruction format: xd, xj, xk. */
2283 /* Data types in instruction templates: V8SF, V4DF, V4DF. */
2284 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2285 __m256 __lasx_xvfcvt_s_d (__m256d _1, __m256d _2)
2287 return (__m256)__builtin_lasx_xvfcvt_s_d ((v4f64)_1, (v4f64)_2);
2290 /* Assembly instruction format: xd, xj, xk. */
2291 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2292 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2293 __m256 __lasx_xvfmin_s (__m256 _1, __m256 _2)
2295 return (__m256)__builtin_lasx_xvfmin_s ((v8f32)_1, (v8f32)_2);
2298 /* Assembly instruction format: xd, xj, xk. */
2299 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2300 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2301 __m256d __lasx_xvfmin_d (__m256d _1, __m256d _2)
2303 return (__m256d)__builtin_lasx_xvfmin_d ((v4f64)_1, (v4f64)_2);
2306 /* Assembly instruction format: xd, xj, xk. */
2307 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2308 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2309 __m256 __lasx_xvfmina_s (__m256 _1, __m256 _2)
2311 return (__m256)__builtin_lasx_xvfmina_s ((v8f32)_1, (v8f32)_2);
2314 /* Assembly instruction format: xd, xj, xk. */
2315 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2316 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2317 __m256d __lasx_xvfmina_d (__m256d _1, __m256d _2)
2319 return (__m256d)__builtin_lasx_xvfmina_d ((v4f64)_1, (v4f64)_2);
2322 /* Assembly instruction format: xd, xj, xk. */
2323 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2324 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2325 __m256 __lasx_xvfmax_s (__m256 _1, __m256 _2)
2327 return (__m256)__builtin_lasx_xvfmax_s ((v8f32)_1, (v8f32)_2);
2330 /* Assembly instruction format: xd, xj, xk. */
2331 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2332 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2333 __m256d __lasx_xvfmax_d (__m256d _1, __m256d _2)
2335 return (__m256d)__builtin_lasx_xvfmax_d ((v4f64)_1, (v4f64)_2);
2338 /* Assembly instruction format: xd, xj, xk. */
2339 /* Data types in instruction templates: V8SF, V8SF, V8SF. */
2340 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2341 __m256 __lasx_xvfmaxa_s (__m256 _1, __m256 _2)
2343 return (__m256)__builtin_lasx_xvfmaxa_s ((v8f32)_1, (v8f32)_2);
2346 /* Assembly instruction format: xd, xj, xk. */
2347 /* Data types in instruction templates: V4DF, V4DF, V4DF. */
2348 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2349 __m256d __lasx_xvfmaxa_d (__m256d _1, __m256d _2)
2351 return (__m256d)__builtin_lasx_xvfmaxa_d ((v4f64)_1, (v4f64)_2);
2354 /* Assembly instruction format: xd, xj. */
2355 /* Data types in instruction templates: V8SI, V8SF. */
2356 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2357 __m256i __lasx_xvfclass_s (__m256 _1)
2359 return (__m256i)__builtin_lasx_xvfclass_s ((v8f32)_1);
2362 /* Assembly instruction format: xd, xj. */
2363 /* Data types in instruction templates: V4DI, V4DF. */
2364 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2365 __m256i __lasx_xvfclass_d (__m256d _1)
2367 return (__m256i)__builtin_lasx_xvfclass_d ((v4f64)_1);
2370 /* Assembly instruction format: xd, xj. */
2371 /* Data types in instruction templates: V8SF, V8SF. */
2372 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2373 __m256 __lasx_xvfsqrt_s (__m256 _1)
2375 return (__m256)__builtin_lasx_xvfsqrt_s ((v8f32)_1);
2378 /* Assembly instruction format: xd, xj. */
2379 /* Data types in instruction templates: V4DF, V4DF. */
2380 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2381 __m256d __lasx_xvfsqrt_d (__m256d _1)
2383 return (__m256d)__builtin_lasx_xvfsqrt_d ((v4f64)_1);
2386 /* Assembly instruction format: xd, xj. */
2387 /* Data types in instruction templates: V8SF, V8SF. */
2388 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2389 __m256 __lasx_xvfrecip_s (__m256 _1)
2391 return (__m256)__builtin_lasx_xvfrecip_s ((v8f32)_1);
2394 /* Assembly instruction format: xd, xj. */
2395 /* Data types in instruction templates: V4DF, V4DF. */
2396 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2397 __m256d __lasx_xvfrecip_d (__m256d _1)
2399 return (__m256d)__builtin_lasx_xvfrecip_d ((v4f64)_1);
2402 #if defined(__loongarch_frecipe)
2403 /* Assembly instruction format: xd, xj. */
2404 /* Data types in instruction templates: V8SF, V8SF. */
2405 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2406 __m256 __lasx_xvfrecipe_s (__m256 _1)
2408 return (__m256)__builtin_lasx_xvfrecipe_s ((v8f32)_1);
2411 /* Assembly instruction format: xd, xj. */
2412 /* Data types in instruction templates: V4DF, V4DF. */
2413 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2414 __m256d __lasx_xvfrecipe_d (__m256d _1)
2416 return (__m256d)__builtin_lasx_xvfrecipe_d ((v4f64)_1);
2419 /* Assembly instruction format: xd, xj. */
2420 /* Data types in instruction templates: V8SF, V8SF. */
2421 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2422 __m256 __lasx_xvfrsqrte_s (__m256 _1)
2424 return (__m256)__builtin_lasx_xvfrsqrte_s ((v8f32)_1);
2427 /* Assembly instruction format: xd, xj. */
2428 /* Data types in instruction templates: V4DF, V4DF. */
2429 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2430 __m256d __lasx_xvfrsqrte_d (__m256d _1)
2432 return (__m256d)__builtin_lasx_xvfrsqrte_d ((v4f64)_1);
2434 #endif
2436 /* Assembly instruction format: xd, xj. */
2437 /* Data types in instruction templates: V8SF, V8SF. */
2438 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2439 __m256 __lasx_xvfrint_s (__m256 _1)
2441 return (__m256)__builtin_lasx_xvfrint_s ((v8f32)_1);
2444 /* Assembly instruction format: xd, xj. */
2445 /* Data types in instruction templates: V4DF, V4DF. */
2446 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2447 __m256d __lasx_xvfrint_d (__m256d _1)
2449 return (__m256d)__builtin_lasx_xvfrint_d ((v4f64)_1);
2452 /* Assembly instruction format: xd, xj. */
2453 /* Data types in instruction templates: V8SF, V8SF. */
2454 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2455 __m256 __lasx_xvfrsqrt_s (__m256 _1)
2457 return (__m256)__builtin_lasx_xvfrsqrt_s ((v8f32)_1);
2460 /* Assembly instruction format: xd, xj. */
2461 /* Data types in instruction templates: V4DF, V4DF. */
2462 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2463 __m256d __lasx_xvfrsqrt_d (__m256d _1)
2465 return (__m256d)__builtin_lasx_xvfrsqrt_d ((v4f64)_1);
2468 /* Assembly instruction format: xd, xj. */
2469 /* Data types in instruction templates: V8SF, V8SF. */
2470 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2471 __m256 __lasx_xvflogb_s (__m256 _1)
2473 return (__m256)__builtin_lasx_xvflogb_s ((v8f32)_1);
2476 /* Assembly instruction format: xd, xj. */
2477 /* Data types in instruction templates: V4DF, V4DF. */
2478 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2479 __m256d __lasx_xvflogb_d (__m256d _1)
2481 return (__m256d)__builtin_lasx_xvflogb_d ((v4f64)_1);
2484 /* Assembly instruction format: xd, xj. */
2485 /* Data types in instruction templates: V8SF, V16HI. */
2486 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2487 __m256 __lasx_xvfcvth_s_h (__m256i _1)
2489 return (__m256)__builtin_lasx_xvfcvth_s_h ((v16i16)_1);
2492 /* Assembly instruction format: xd, xj. */
2493 /* Data types in instruction templates: V4DF, V8SF. */
2494 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2495 __m256d __lasx_xvfcvth_d_s (__m256 _1)
2497 return (__m256d)__builtin_lasx_xvfcvth_d_s ((v8f32)_1);
2500 /* Assembly instruction format: xd, xj. */
2501 /* Data types in instruction templates: V8SF, V16HI. */
2502 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2503 __m256 __lasx_xvfcvtl_s_h (__m256i _1)
2505 return (__m256)__builtin_lasx_xvfcvtl_s_h ((v16i16)_1);
2508 /* Assembly instruction format: xd, xj. */
2509 /* Data types in instruction templates: V4DF, V8SF. */
2510 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2511 __m256d __lasx_xvfcvtl_d_s (__m256 _1)
2513 return (__m256d)__builtin_lasx_xvfcvtl_d_s ((v8f32)_1);
2516 /* Assembly instruction format: xd, xj. */
2517 /* Data types in instruction templates: V8SI, V8SF. */
2518 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2519 __m256i __lasx_xvftint_w_s (__m256 _1)
2521 return (__m256i)__builtin_lasx_xvftint_w_s ((v8f32)_1);
2524 /* Assembly instruction format: xd, xj. */
2525 /* Data types in instruction templates: V4DI, V4DF. */
2526 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2527 __m256i __lasx_xvftint_l_d (__m256d _1)
2529 return (__m256i)__builtin_lasx_xvftint_l_d ((v4f64)_1);
2532 /* Assembly instruction format: xd, xj. */
2533 /* Data types in instruction templates: UV8SI, V8SF. */
2534 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2535 __m256i __lasx_xvftint_wu_s (__m256 _1)
2537 return (__m256i)__builtin_lasx_xvftint_wu_s ((v8f32)_1);
2540 /* Assembly instruction format: xd, xj. */
2541 /* Data types in instruction templates: UV4DI, V4DF. */
2542 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2543 __m256i __lasx_xvftint_lu_d (__m256d _1)
2545 return (__m256i)__builtin_lasx_xvftint_lu_d ((v4f64)_1);
2548 /* Assembly instruction format: xd, xj. */
2549 /* Data types in instruction templates: V8SI, V8SF. */
2550 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2551 __m256i __lasx_xvftintrz_w_s (__m256 _1)
2553 return (__m256i)__builtin_lasx_xvftintrz_w_s ((v8f32)_1);
2556 /* Assembly instruction format: xd, xj. */
2557 /* Data types in instruction templates: V4DI, V4DF. */
2558 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2559 __m256i __lasx_xvftintrz_l_d (__m256d _1)
2561 return (__m256i)__builtin_lasx_xvftintrz_l_d ((v4f64)_1);
2564 /* Assembly instruction format: xd, xj. */
2565 /* Data types in instruction templates: UV8SI, V8SF. */
2566 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2567 __m256i __lasx_xvftintrz_wu_s (__m256 _1)
2569 return (__m256i)__builtin_lasx_xvftintrz_wu_s ((v8f32)_1);
2572 /* Assembly instruction format: xd, xj. */
2573 /* Data types in instruction templates: UV4DI, V4DF. */
2574 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2575 __m256i __lasx_xvftintrz_lu_d (__m256d _1)
2577 return (__m256i)__builtin_lasx_xvftintrz_lu_d ((v4f64)_1);
2580 /* Assembly instruction format: xd, xj. */
2581 /* Data types in instruction templates: V8SF, V8SI. */
2582 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2583 __m256 __lasx_xvffint_s_w (__m256i _1)
2585 return (__m256)__builtin_lasx_xvffint_s_w ((v8i32)_1);
2588 /* Assembly instruction format: xd, xj. */
2589 /* Data types in instruction templates: V4DF, V4DI. */
2590 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2591 __m256d __lasx_xvffint_d_l (__m256i _1)
2593 return (__m256d)__builtin_lasx_xvffint_d_l ((v4i64)_1);
2596 /* Assembly instruction format: xd, xj. */
2597 /* Data types in instruction templates: V8SF, UV8SI. */
2598 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2599 __m256 __lasx_xvffint_s_wu (__m256i _1)
2601 return (__m256)__builtin_lasx_xvffint_s_wu ((v8u32)_1);
2604 /* Assembly instruction format: xd, xj. */
2605 /* Data types in instruction templates: V4DF, UV4DI. */
2606 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2607 __m256d __lasx_xvffint_d_lu (__m256i _1)
2609 return (__m256d)__builtin_lasx_xvffint_d_lu ((v4u64)_1);
2612 /* Assembly instruction format: xd, xj, rk. */
2613 /* Data types in instruction templates: V32QI, V32QI, SI. */
2614 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2615 __m256i __lasx_xvreplve_b (__m256i _1, int _2)
2617 return (__m256i)__builtin_lasx_xvreplve_b ((v32i8)_1, (int)_2);
2620 /* Assembly instruction format: xd, xj, rk. */
2621 /* Data types in instruction templates: V16HI, V16HI, SI. */
2622 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2623 __m256i __lasx_xvreplve_h (__m256i _1, int _2)
2625 return (__m256i)__builtin_lasx_xvreplve_h ((v16i16)_1, (int)_2);
2628 /* Assembly instruction format: xd, xj, rk. */
2629 /* Data types in instruction templates: V8SI, V8SI, SI. */
2630 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2631 __m256i __lasx_xvreplve_w (__m256i _1, int _2)
2633 return (__m256i)__builtin_lasx_xvreplve_w ((v8i32)_1, (int)_2);
2636 /* Assembly instruction format: xd, xj, rk. */
2637 /* Data types in instruction templates: V4DI, V4DI, SI. */
2638 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2639 __m256i __lasx_xvreplve_d (__m256i _1, int _2)
2641 return (__m256i)__builtin_lasx_xvreplve_d ((v4i64)_1, (int)_2);
2644 /* Assembly instruction format: xd, xj, ui8. */
2645 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
2646 #define __lasx_xvpermi_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
2647 ((__m256i)__builtin_lasx_xvpermi_w ((v8i32)(_1), (v8i32)(_2), (_3)))
2649 /* Assembly instruction format: xd, xj, xk. */
2650 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
2651 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2652 __m256i __lasx_xvandn_v (__m256i _1, __m256i _2)
2654 return (__m256i)__builtin_lasx_xvandn_v ((v32u8)_1, (v32u8)_2);
2657 /* Assembly instruction format: xd, xj. */
2658 /* Data types in instruction templates: V32QI, V32QI. */
2659 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2660 __m256i __lasx_xvneg_b (__m256i _1)
2662 return (__m256i)__builtin_lasx_xvneg_b ((v32i8)_1);
2665 /* Assembly instruction format: xd, xj. */
2666 /* Data types in instruction templates: V16HI, V16HI. */
2667 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2668 __m256i __lasx_xvneg_h (__m256i _1)
2670 return (__m256i)__builtin_lasx_xvneg_h ((v16i16)_1);
2673 /* Assembly instruction format: xd, xj. */
2674 /* Data types in instruction templates: V8SI, V8SI. */
2675 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2676 __m256i __lasx_xvneg_w (__m256i _1)
2678 return (__m256i)__builtin_lasx_xvneg_w ((v8i32)_1);
2681 /* Assembly instruction format: xd, xj. */
2682 /* Data types in instruction templates: V4DI, V4DI. */
2683 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2684 __m256i __lasx_xvneg_d (__m256i _1)
2686 return (__m256i)__builtin_lasx_xvneg_d ((v4i64)_1);
2689 /* Assembly instruction format: xd, xj, xk. */
2690 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
2691 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2692 __m256i __lasx_xvmuh_b (__m256i _1, __m256i _2)
2694 return (__m256i)__builtin_lasx_xvmuh_b ((v32i8)_1, (v32i8)_2);
2697 /* Assembly instruction format: xd, xj, xk. */
2698 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
2699 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2700 __m256i __lasx_xvmuh_h (__m256i _1, __m256i _2)
2702 return (__m256i)__builtin_lasx_xvmuh_h ((v16i16)_1, (v16i16)_2);
2705 /* Assembly instruction format: xd, xj, xk. */
2706 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
2707 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2708 __m256i __lasx_xvmuh_w (__m256i _1, __m256i _2)
2710 return (__m256i)__builtin_lasx_xvmuh_w ((v8i32)_1, (v8i32)_2);
2713 /* Assembly instruction format: xd, xj, xk. */
2714 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
2715 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2716 __m256i __lasx_xvmuh_d (__m256i _1, __m256i _2)
2718 return (__m256i)__builtin_lasx_xvmuh_d ((v4i64)_1, (v4i64)_2);
2721 /* Assembly instruction format: xd, xj, xk. */
2722 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */
2723 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2724 __m256i __lasx_xvmuh_bu (__m256i _1, __m256i _2)
2726 return (__m256i)__builtin_lasx_xvmuh_bu ((v32u8)_1, (v32u8)_2);
2729 /* Assembly instruction format: xd, xj, xk. */
2730 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */
2731 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2732 __m256i __lasx_xvmuh_hu (__m256i _1, __m256i _2)
2734 return (__m256i)__builtin_lasx_xvmuh_hu ((v16u16)_1, (v16u16)_2);
2737 /* Assembly instruction format: xd, xj, xk. */
2738 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */
2739 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2740 __m256i __lasx_xvmuh_wu (__m256i _1, __m256i _2)
2742 return (__m256i)__builtin_lasx_xvmuh_wu ((v8u32)_1, (v8u32)_2);
2745 /* Assembly instruction format: xd, xj, xk. */
2746 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
2747 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2748 __m256i __lasx_xvmuh_du (__m256i _1, __m256i _2)
2750 return (__m256i)__builtin_lasx_xvmuh_du ((v4u64)_1, (v4u64)_2);
2753 /* Assembly instruction format: xd, xj, ui3. */
2754 /* Data types in instruction templates: V16HI, V32QI, UQI. */
2755 #define __lasx_xvsllwil_h_b(/*__m256i*/ _1, /*ui3*/ _2) \
2756 ((__m256i)__builtin_lasx_xvsllwil_h_b ((v32i8)(_1), (_2)))
2758 /* Assembly instruction format: xd, xj, ui4. */
2759 /* Data types in instruction templates: V8SI, V16HI, UQI. */
2760 #define __lasx_xvsllwil_w_h(/*__m256i*/ _1, /*ui4*/ _2) \
2761 ((__m256i)__builtin_lasx_xvsllwil_w_h ((v16i16)(_1), (_2)))
2763 /* Assembly instruction format: xd, xj, ui5. */
2764 /* Data types in instruction templates: V4DI, V8SI, UQI. */
2765 #define __lasx_xvsllwil_d_w(/*__m256i*/ _1, /*ui5*/ _2) \
2766 ((__m256i)__builtin_lasx_xvsllwil_d_w ((v8i32)(_1), (_2)))
2768 /* Assembly instruction format: xd, xj, ui3. */
2769 /* Data types in instruction templates: UV16HI, UV32QI, UQI. */
2770 #define __lasx_xvsllwil_hu_bu(/*__m256i*/ _1, /*ui3*/ _2) \
2771 ((__m256i)__builtin_lasx_xvsllwil_hu_bu ((v32u8)(_1), (_2)))
2773 /* Assembly instruction format: xd, xj, ui4. */
2774 /* Data types in instruction templates: UV8SI, UV16HI, UQI. */
2775 #define __lasx_xvsllwil_wu_hu(/*__m256i*/ _1, /*ui4*/ _2) \
2776 ((__m256i)__builtin_lasx_xvsllwil_wu_hu ((v16u16)(_1), (_2)))
2778 /* Assembly instruction format: xd, xj, ui5. */
2779 /* Data types in instruction templates: UV4DI, UV8SI, UQI. */
2780 #define __lasx_xvsllwil_du_wu(/*__m256i*/ _1, /*ui5*/ _2) \
2781 ((__m256i)__builtin_lasx_xvsllwil_du_wu ((v8u32)(_1), (_2)))
2783 /* Assembly instruction format: xd, xj, xk. */
2784 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
2785 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2786 __m256i __lasx_xvsran_b_h (__m256i _1, __m256i _2)
2788 return (__m256i)__builtin_lasx_xvsran_b_h ((v16i16)_1, (v16i16)_2);
2791 /* Assembly instruction format: xd, xj, xk. */
2792 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
2793 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2794 __m256i __lasx_xvsran_h_w (__m256i _1, __m256i _2)
2796 return (__m256i)__builtin_lasx_xvsran_h_w ((v8i32)_1, (v8i32)_2);
2799 /* Assembly instruction format: xd, xj, xk. */
2800 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
2801 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2802 __m256i __lasx_xvsran_w_d (__m256i _1, __m256i _2)
2804 return (__m256i)__builtin_lasx_xvsran_w_d ((v4i64)_1, (v4i64)_2);
2807 /* Assembly instruction format: xd, xj, xk. */
2808 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
2809 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2810 __m256i __lasx_xvssran_b_h (__m256i _1, __m256i _2)
2812 return (__m256i)__builtin_lasx_xvssran_b_h ((v16i16)_1, (v16i16)_2);
2815 /* Assembly instruction format: xd, xj, xk. */
2816 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
2817 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2818 __m256i __lasx_xvssran_h_w (__m256i _1, __m256i _2)
2820 return (__m256i)__builtin_lasx_xvssran_h_w ((v8i32)_1, (v8i32)_2);
2823 /* Assembly instruction format: xd, xj, xk. */
2824 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
2825 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2826 __m256i __lasx_xvssran_w_d (__m256i _1, __m256i _2)
2828 return (__m256i)__builtin_lasx_xvssran_w_d ((v4i64)_1, (v4i64)_2);
2831 /* Assembly instruction format: xd, xj, xk. */
2832 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */
2833 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2834 __m256i __lasx_xvssran_bu_h (__m256i _1, __m256i _2)
2836 return (__m256i)__builtin_lasx_xvssran_bu_h ((v16u16)_1, (v16u16)_2);
2839 /* Assembly instruction format: xd, xj, xk. */
2840 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */
2841 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2842 __m256i __lasx_xvssran_hu_w (__m256i _1, __m256i _2)
2844 return (__m256i)__builtin_lasx_xvssran_hu_w ((v8u32)_1, (v8u32)_2);
2847 /* Assembly instruction format: xd, xj, xk. */
2848 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */
2849 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2850 __m256i __lasx_xvssran_wu_d (__m256i _1, __m256i _2)
2852 return (__m256i)__builtin_lasx_xvssran_wu_d ((v4u64)_1, (v4u64)_2);
2855 /* Assembly instruction format: xd, xj, xk. */
2856 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
2857 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2858 __m256i __lasx_xvsrarn_b_h (__m256i _1, __m256i _2)
2860 return (__m256i)__builtin_lasx_xvsrarn_b_h ((v16i16)_1, (v16i16)_2);
2863 /* Assembly instruction format: xd, xj, xk. */
2864 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
2865 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2866 __m256i __lasx_xvsrarn_h_w (__m256i _1, __m256i _2)
2868 return (__m256i)__builtin_lasx_xvsrarn_h_w ((v8i32)_1, (v8i32)_2);
2871 /* Assembly instruction format: xd, xj, xk. */
2872 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
2873 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2874 __m256i __lasx_xvsrarn_w_d (__m256i _1, __m256i _2)
2876 return (__m256i)__builtin_lasx_xvsrarn_w_d ((v4i64)_1, (v4i64)_2);
2879 /* Assembly instruction format: xd, xj, xk. */
2880 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
2881 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2882 __m256i __lasx_xvssrarn_b_h (__m256i _1, __m256i _2)
2884 return (__m256i)__builtin_lasx_xvssrarn_b_h ((v16i16)_1, (v16i16)_2);
2887 /* Assembly instruction format: xd, xj, xk. */
2888 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
2889 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2890 __m256i __lasx_xvssrarn_h_w (__m256i _1, __m256i _2)
2892 return (__m256i)__builtin_lasx_xvssrarn_h_w ((v8i32)_1, (v8i32)_2);
2895 /* Assembly instruction format: xd, xj, xk. */
2896 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
2897 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2898 __m256i __lasx_xvssrarn_w_d (__m256i _1, __m256i _2)
2900 return (__m256i)__builtin_lasx_xvssrarn_w_d ((v4i64)_1, (v4i64)_2);
2903 /* Assembly instruction format: xd, xj, xk. */
2904 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */
2905 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2906 __m256i __lasx_xvssrarn_bu_h (__m256i _1, __m256i _2)
2908 return (__m256i)__builtin_lasx_xvssrarn_bu_h ((v16u16)_1, (v16u16)_2);
2911 /* Assembly instruction format: xd, xj, xk. */
2912 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */
2913 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2914 __m256i __lasx_xvssrarn_hu_w (__m256i _1, __m256i _2)
2916 return (__m256i)__builtin_lasx_xvssrarn_hu_w ((v8u32)_1, (v8u32)_2);
2919 /* Assembly instruction format: xd, xj, xk. */
2920 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */
2921 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2922 __m256i __lasx_xvssrarn_wu_d (__m256i _1, __m256i _2)
2924 return (__m256i)__builtin_lasx_xvssrarn_wu_d ((v4u64)_1, (v4u64)_2);
2927 /* Assembly instruction format: xd, xj, xk. */
2928 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
2929 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2930 __m256i __lasx_xvsrln_b_h (__m256i _1, __m256i _2)
2932 return (__m256i)__builtin_lasx_xvsrln_b_h ((v16i16)_1, (v16i16)_2);
2935 /* Assembly instruction format: xd, xj, xk. */
2936 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
2937 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2938 __m256i __lasx_xvsrln_h_w (__m256i _1, __m256i _2)
2940 return (__m256i)__builtin_lasx_xvsrln_h_w ((v8i32)_1, (v8i32)_2);
2943 /* Assembly instruction format: xd, xj, xk. */
2944 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
2945 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2946 __m256i __lasx_xvsrln_w_d (__m256i _1, __m256i _2)
2948 return (__m256i)__builtin_lasx_xvsrln_w_d ((v4i64)_1, (v4i64)_2);
2951 /* Assembly instruction format: xd, xj, xk. */
2952 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */
2953 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2954 __m256i __lasx_xvssrln_bu_h (__m256i _1, __m256i _2)
2956 return (__m256i)__builtin_lasx_xvssrln_bu_h ((v16u16)_1, (v16u16)_2);
2959 /* Assembly instruction format: xd, xj, xk. */
2960 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */
2961 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2962 __m256i __lasx_xvssrln_hu_w (__m256i _1, __m256i _2)
2964 return (__m256i)__builtin_lasx_xvssrln_hu_w ((v8u32)_1, (v8u32)_2);
2967 /* Assembly instruction format: xd, xj, xk. */
2968 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */
2969 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2970 __m256i __lasx_xvssrln_wu_d (__m256i _1, __m256i _2)
2972 return (__m256i)__builtin_lasx_xvssrln_wu_d ((v4u64)_1, (v4u64)_2);
2975 /* Assembly instruction format: xd, xj, xk. */
2976 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
2977 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2978 __m256i __lasx_xvsrlrn_b_h (__m256i _1, __m256i _2)
2980 return (__m256i)__builtin_lasx_xvsrlrn_b_h ((v16i16)_1, (v16i16)_2);
2983 /* Assembly instruction format: xd, xj, xk. */
2984 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
2985 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2986 __m256i __lasx_xvsrlrn_h_w (__m256i _1, __m256i _2)
2988 return (__m256i)__builtin_lasx_xvsrlrn_h_w ((v8i32)_1, (v8i32)_2);
2991 /* Assembly instruction format: xd, xj, xk. */
2992 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
2993 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
2994 __m256i __lasx_xvsrlrn_w_d (__m256i _1, __m256i _2)
2996 return (__m256i)__builtin_lasx_xvsrlrn_w_d ((v4i64)_1, (v4i64)_2);
2999 /* Assembly instruction format: xd, xj, xk. */
3000 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */
3001 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3002 __m256i __lasx_xvssrlrn_bu_h (__m256i _1, __m256i _2)
3004 return (__m256i)__builtin_lasx_xvssrlrn_bu_h ((v16u16)_1, (v16u16)_2);
3007 /* Assembly instruction format: xd, xj, xk. */
3008 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */
3009 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3010 __m256i __lasx_xvssrlrn_hu_w (__m256i _1, __m256i _2)
3012 return (__m256i)__builtin_lasx_xvssrlrn_hu_w ((v8u32)_1, (v8u32)_2);
3015 /* Assembly instruction format: xd, xj, xk. */
3016 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */
3017 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3018 __m256i __lasx_xvssrlrn_wu_d (__m256i _1, __m256i _2)
3020 return (__m256i)__builtin_lasx_xvssrlrn_wu_d ((v4u64)_1, (v4u64)_2);
3023 /* Assembly instruction format: xd, xj, ui5. */
3024 /* Data types in instruction templates: V32QI, V32QI, V32QI, UQI. */
3025 #define __lasx_xvfrstpi_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
3026 ((__m256i)__builtin_lasx_xvfrstpi_b ((v32i8)(_1), (v32i8)(_2), (_3)))
3028 /* Assembly instruction format: xd, xj, ui5. */
3029 /* Data types in instruction templates: V16HI, V16HI, V16HI, UQI. */
3030 #define __lasx_xvfrstpi_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
3031 ((__m256i)__builtin_lasx_xvfrstpi_h ((v16i16)(_1), (v16i16)(_2), (_3)))
3033 /* Assembly instruction format: xd, xj, xk. */
3034 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */
3035 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3036 __m256i __lasx_xvfrstp_b (__m256i _1, __m256i _2, __m256i _3)
3038 return (__m256i)__builtin_lasx_xvfrstp_b ((v32i8)_1, (v32i8)_2, (v32i8)_3);
3041 /* Assembly instruction format: xd, xj, xk. */
3042 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */
3043 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3044 __m256i __lasx_xvfrstp_h (__m256i _1, __m256i _2, __m256i _3)
3046 return (__m256i)__builtin_lasx_xvfrstp_h ((v16i16)_1, (v16i16)_2, (v16i16)_3);
3049 /* Assembly instruction format: xd, xj, ui8. */
3050 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
3051 #define __lasx_xvshuf4i_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
3052 ((__m256i)__builtin_lasx_xvshuf4i_d ((v4i64)(_1), (v4i64)(_2), (_3)))
3054 /* Assembly instruction format: xd, xj, ui5. */
3055 /* Data types in instruction templates: V32QI, V32QI, UQI. */
3056 #define __lasx_xvbsrl_v(/*__m256i*/ _1, /*ui5*/ _2) \
3057 ((__m256i)__builtin_lasx_xvbsrl_v ((v32i8)(_1), (_2)))
3059 /* Assembly instruction format: xd, xj, ui5. */
3060 /* Data types in instruction templates: V32QI, V32QI, UQI. */
3061 #define __lasx_xvbsll_v(/*__m256i*/ _1, /*ui5*/ _2) \
3062 ((__m256i)__builtin_lasx_xvbsll_v ((v32i8)(_1), (_2)))
3064 /* Assembly instruction format: xd, xj, ui8. */
3065 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
3066 #define __lasx_xvextrins_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
3067 ((__m256i)__builtin_lasx_xvextrins_b ((v32i8)(_1), (v32i8)(_2), (_3)))
3069 /* Assembly instruction format: xd, xj, ui8. */
3070 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
3071 #define __lasx_xvextrins_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
3072 ((__m256i)__builtin_lasx_xvextrins_h ((v16i16)(_1), (v16i16)(_2), (_3)))
3074 /* Assembly instruction format: xd, xj, ui8. */
3075 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
3076 #define __lasx_xvextrins_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
3077 ((__m256i)__builtin_lasx_xvextrins_w ((v8i32)(_1), (v8i32)(_2), (_3)))
3079 /* Assembly instruction format: xd, xj, ui8. */
3080 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
3081 #define __lasx_xvextrins_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
3082 ((__m256i)__builtin_lasx_xvextrins_d ((v4i64)(_1), (v4i64)(_2), (_3)))
3084 /* Assembly instruction format: xd, xj. */
3085 /* Data types in instruction templates: V32QI, V32QI. */
3086 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3087 __m256i __lasx_xvmskltz_b (__m256i _1)
3089 return (__m256i)__builtin_lasx_xvmskltz_b ((v32i8)_1);
3092 /* Assembly instruction format: xd, xj. */
3093 /* Data types in instruction templates: V16HI, V16HI. */
3094 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3095 __m256i __lasx_xvmskltz_h (__m256i _1)
3097 return (__m256i)__builtin_lasx_xvmskltz_h ((v16i16)_1);
3100 /* Assembly instruction format: xd, xj. */
3101 /* Data types in instruction templates: V8SI, V8SI. */
3102 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3103 __m256i __lasx_xvmskltz_w (__m256i _1)
3105 return (__m256i)__builtin_lasx_xvmskltz_w ((v8i32)_1);
3108 /* Assembly instruction format: xd, xj. */
3109 /* Data types in instruction templates: V4DI, V4DI. */
3110 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3111 __m256i __lasx_xvmskltz_d (__m256i _1)
3113 return (__m256i)__builtin_lasx_xvmskltz_d ((v4i64)_1);
3116 /* Assembly instruction format: xd, xj, xk. */
3117 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
3118 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3119 __m256i __lasx_xvsigncov_b (__m256i _1, __m256i _2)
3121 return (__m256i)__builtin_lasx_xvsigncov_b ((v32i8)_1, (v32i8)_2);
3124 /* Assembly instruction format: xd, xj, xk. */
3125 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
3126 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3127 __m256i __lasx_xvsigncov_h (__m256i _1, __m256i _2)
3129 return (__m256i)__builtin_lasx_xvsigncov_h ((v16i16)_1, (v16i16)_2);
3132 /* Assembly instruction format: xd, xj, xk. */
3133 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
3134 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3135 __m256i __lasx_xvsigncov_w (__m256i _1, __m256i _2)
3137 return (__m256i)__builtin_lasx_xvsigncov_w ((v8i32)_1, (v8i32)_2);
3140 /* Assembly instruction format: xd, xj, xk. */
3141 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
3142 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3143 __m256i __lasx_xvsigncov_d (__m256i _1, __m256i _2)
3145 return (__m256i)__builtin_lasx_xvsigncov_d ((v4i64)_1, (v4i64)_2);
3148 /* Assembly instruction format: xd, xj, xk, xa. */
3149 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */
3150 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3151 __m256 __lasx_xvfmadd_s (__m256 _1, __m256 _2, __m256 _3)
3153 return (__m256)__builtin_lasx_xvfmadd_s ((v8f32)_1, (v8f32)_2, (v8f32)_3);
3156 /* Assembly instruction format: xd, xj, xk, xa. */
3157 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */
3158 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3159 __m256d __lasx_xvfmadd_d (__m256d _1, __m256d _2, __m256d _3)
3161 return (__m256d)__builtin_lasx_xvfmadd_d ((v4f64)_1, (v4f64)_2, (v4f64)_3);
3164 /* Assembly instruction format: xd, xj, xk, xa. */
3165 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */
3166 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3167 __m256 __lasx_xvfmsub_s (__m256 _1, __m256 _2, __m256 _3)
3169 return (__m256)__builtin_lasx_xvfmsub_s ((v8f32)_1, (v8f32)_2, (v8f32)_3);
3172 /* Assembly instruction format: xd, xj, xk, xa. */
3173 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */
3174 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3175 __m256d __lasx_xvfmsub_d (__m256d _1, __m256d _2, __m256d _3)
3177 return (__m256d)__builtin_lasx_xvfmsub_d ((v4f64)_1, (v4f64)_2, (v4f64)_3);
3180 /* Assembly instruction format: xd, xj, xk, xa. */
3181 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */
3182 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3183 __m256 __lasx_xvfnmadd_s (__m256 _1, __m256 _2, __m256 _3)
3185 return (__m256)__builtin_lasx_xvfnmadd_s ((v8f32)_1, (v8f32)_2, (v8f32)_3);
3188 /* Assembly instruction format: xd, xj, xk, xa. */
3189 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */
3190 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3191 __m256d __lasx_xvfnmadd_d (__m256d _1, __m256d _2, __m256d _3)
3193 return (__m256d)__builtin_lasx_xvfnmadd_d ((v4f64)_1, (v4f64)_2, (v4f64)_3);
3196 /* Assembly instruction format: xd, xj, xk, xa. */
3197 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */
3198 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3199 __m256 __lasx_xvfnmsub_s (__m256 _1, __m256 _2, __m256 _3)
3201 return (__m256)__builtin_lasx_xvfnmsub_s ((v8f32)_1, (v8f32)_2, (v8f32)_3);
3204 /* Assembly instruction format: xd, xj, xk, xa. */
3205 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */
3206 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3207 __m256d __lasx_xvfnmsub_d (__m256d _1, __m256d _2, __m256d _3)
3209 return (__m256d)__builtin_lasx_xvfnmsub_d ((v4f64)_1, (v4f64)_2, (v4f64)_3);
3212 /* Assembly instruction format: xd, xj. */
3213 /* Data types in instruction templates: V8SI, V8SF. */
3214 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3215 __m256i __lasx_xvftintrne_w_s (__m256 _1)
3217 return (__m256i)__builtin_lasx_xvftintrne_w_s ((v8f32)_1);
3220 /* Assembly instruction format: xd, xj. */
3221 /* Data types in instruction templates: V4DI, V4DF. */
3222 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3223 __m256i __lasx_xvftintrne_l_d (__m256d _1)
3225 return (__m256i)__builtin_lasx_xvftintrne_l_d ((v4f64)_1);
3228 /* Assembly instruction format: xd, xj. */
3229 /* Data types in instruction templates: V8SI, V8SF. */
3230 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3231 __m256i __lasx_xvftintrp_w_s (__m256 _1)
3233 return (__m256i)__builtin_lasx_xvftintrp_w_s ((v8f32)_1);
3236 /* Assembly instruction format: xd, xj. */
3237 /* Data types in instruction templates: V4DI, V4DF. */
3238 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3239 __m256i __lasx_xvftintrp_l_d (__m256d _1)
3241 return (__m256i)__builtin_lasx_xvftintrp_l_d ((v4f64)_1);
3244 /* Assembly instruction format: xd, xj. */
3245 /* Data types in instruction templates: V8SI, V8SF. */
3246 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3247 __m256i __lasx_xvftintrm_w_s (__m256 _1)
3249 return (__m256i)__builtin_lasx_xvftintrm_w_s ((v8f32)_1);
3252 /* Assembly instruction format: xd, xj. */
3253 /* Data types in instruction templates: V4DI, V4DF. */
3254 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3255 __m256i __lasx_xvftintrm_l_d (__m256d _1)
3257 return (__m256i)__builtin_lasx_xvftintrm_l_d ((v4f64)_1);
3260 /* Assembly instruction format: xd, xj, xk. */
3261 /* Data types in instruction templates: V8SI, V4DF, V4DF. */
3262 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3263 __m256i __lasx_xvftint_w_d (__m256d _1, __m256d _2)
3265 return (__m256i)__builtin_lasx_xvftint_w_d ((v4f64)_1, (v4f64)_2);
3268 /* Assembly instruction format: xd, xj, xk. */
3269 /* Data types in instruction templates: V8SF, V4DI, V4DI. */
3270 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3271 __m256 __lasx_xvffint_s_l (__m256i _1, __m256i _2)
3273 return (__m256)__builtin_lasx_xvffint_s_l ((v4i64)_1, (v4i64)_2);
3276 /* Assembly instruction format: xd, xj, xk. */
3277 /* Data types in instruction templates: V8SI, V4DF, V4DF. */
3278 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3279 __m256i __lasx_xvftintrz_w_d (__m256d _1, __m256d _2)
3281 return (__m256i)__builtin_lasx_xvftintrz_w_d ((v4f64)_1, (v4f64)_2);
3284 /* Assembly instruction format: xd, xj, xk. */
3285 /* Data types in instruction templates: V8SI, V4DF, V4DF. */
3286 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3287 __m256i __lasx_xvftintrp_w_d (__m256d _1, __m256d _2)
3289 return (__m256i)__builtin_lasx_xvftintrp_w_d ((v4f64)_1, (v4f64)_2);
3292 /* Assembly instruction format: xd, xj, xk. */
3293 /* Data types in instruction templates: V8SI, V4DF, V4DF. */
3294 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3295 __m256i __lasx_xvftintrm_w_d (__m256d _1, __m256d _2)
3297 return (__m256i)__builtin_lasx_xvftintrm_w_d ((v4f64)_1, (v4f64)_2);
3300 /* Assembly instruction format: xd, xj, xk. */
3301 /* Data types in instruction templates: V8SI, V4DF, V4DF. */
3302 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3303 __m256i __lasx_xvftintrne_w_d (__m256d _1, __m256d _2)
3305 return (__m256i)__builtin_lasx_xvftintrne_w_d ((v4f64)_1, (v4f64)_2);
3308 /* Assembly instruction format: xd, xj. */
3309 /* Data types in instruction templates: V4DI, V8SF. */
3310 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3311 __m256i __lasx_xvftinth_l_s (__m256 _1)
3313 return (__m256i)__builtin_lasx_xvftinth_l_s ((v8f32)_1);
3316 /* Assembly instruction format: xd, xj. */
3317 /* Data types in instruction templates: V4DI, V8SF. */
3318 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3319 __m256i __lasx_xvftintl_l_s (__m256 _1)
3321 return (__m256i)__builtin_lasx_xvftintl_l_s ((v8f32)_1);
3324 /* Assembly instruction format: xd, xj. */
3325 /* Data types in instruction templates: V4DF, V8SI. */
3326 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3327 __m256d __lasx_xvffinth_d_w (__m256i _1)
3329 return (__m256d)__builtin_lasx_xvffinth_d_w ((v8i32)_1);
3332 /* Assembly instruction format: xd, xj. */
3333 /* Data types in instruction templates: V4DF, V8SI. */
3334 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3335 __m256d __lasx_xvffintl_d_w (__m256i _1)
3337 return (__m256d)__builtin_lasx_xvffintl_d_w ((v8i32)_1);
3340 /* Assembly instruction format: xd, xj. */
3341 /* Data types in instruction templates: V4DI, V8SF. */
3342 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3343 __m256i __lasx_xvftintrzh_l_s (__m256 _1)
3345 return (__m256i)__builtin_lasx_xvftintrzh_l_s ((v8f32)_1);
3348 /* Assembly instruction format: xd, xj. */
3349 /* Data types in instruction templates: V4DI, V8SF. */
3350 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3351 __m256i __lasx_xvftintrzl_l_s (__m256 _1)
3353 return (__m256i)__builtin_lasx_xvftintrzl_l_s ((v8f32)_1);
3356 /* Assembly instruction format: xd, xj. */
3357 /* Data types in instruction templates: V4DI, V8SF. */
3358 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3359 __m256i __lasx_xvftintrph_l_s (__m256 _1)
3361 return (__m256i)__builtin_lasx_xvftintrph_l_s ((v8f32)_1);
3364 /* Assembly instruction format: xd, xj. */
3365 /* Data types in instruction templates: V4DI, V8SF. */
3366 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3367 __m256i __lasx_xvftintrpl_l_s (__m256 _1)
3369 return (__m256i)__builtin_lasx_xvftintrpl_l_s ((v8f32)_1);
3372 /* Assembly instruction format: xd, xj. */
3373 /* Data types in instruction templates: V4DI, V8SF. */
3374 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3375 __m256i __lasx_xvftintrmh_l_s (__m256 _1)
3377 return (__m256i)__builtin_lasx_xvftintrmh_l_s ((v8f32)_1);
3380 /* Assembly instruction format: xd, xj. */
3381 /* Data types in instruction templates: V4DI, V8SF. */
3382 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3383 __m256i __lasx_xvftintrml_l_s (__m256 _1)
3385 return (__m256i)__builtin_lasx_xvftintrml_l_s ((v8f32)_1);
3388 /* Assembly instruction format: xd, xj. */
3389 /* Data types in instruction templates: V4DI, V8SF. */
3390 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3391 __m256i __lasx_xvftintrneh_l_s (__m256 _1)
3393 return (__m256i)__builtin_lasx_xvftintrneh_l_s ((v8f32)_1);
3396 /* Assembly instruction format: xd, xj. */
3397 /* Data types in instruction templates: V4DI, V8SF. */
3398 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3399 __m256i __lasx_xvftintrnel_l_s (__m256 _1)
3401 return (__m256i)__builtin_lasx_xvftintrnel_l_s ((v8f32)_1);
3404 /* Assembly instruction format: xd, xj. */
3405 /* Data types in instruction templates: V8SF, V8SF. */
3406 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3407 __m256 __lasx_xvfrintrne_s (__m256 _1)
3409 return (__m256)__builtin_lasx_xvfrintrne_s ((v8f32)_1);
3412 /* Assembly instruction format: xd, xj. */
3413 /* Data types in instruction templates: V4DF, V4DF. */
3414 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3415 __m256d __lasx_xvfrintrne_d (__m256d _1)
3417 return (__m256d)__builtin_lasx_xvfrintrne_d ((v4f64)_1);
3420 /* Assembly instruction format: xd, xj. */
3421 /* Data types in instruction templates: V8SF, V8SF. */
3422 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3423 __m256 __lasx_xvfrintrz_s (__m256 _1)
3425 return (__m256)__builtin_lasx_xvfrintrz_s ((v8f32)_1);
3428 /* Assembly instruction format: xd, xj. */
3429 /* Data types in instruction templates: V4DF, V4DF. */
3430 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3431 __m256d __lasx_xvfrintrz_d (__m256d _1)
3433 return (__m256d)__builtin_lasx_xvfrintrz_d ((v4f64)_1);
3436 /* Assembly instruction format: xd, xj. */
3437 /* Data types in instruction templates: V8SF, V8SF. */
3438 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3439 __m256 __lasx_xvfrintrp_s (__m256 _1)
3441 return (__m256)__builtin_lasx_xvfrintrp_s ((v8f32)_1);
3444 /* Assembly instruction format: xd, xj. */
3445 /* Data types in instruction templates: V4DF, V4DF. */
3446 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3447 __m256d __lasx_xvfrintrp_d (__m256d _1)
3449 return (__m256d)__builtin_lasx_xvfrintrp_d ((v4f64)_1);
3452 /* Assembly instruction format: xd, xj. */
3453 /* Data types in instruction templates: V8SF, V8SF. */
3454 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3455 __m256 __lasx_xvfrintrm_s (__m256 _1)
3457 return (__m256)__builtin_lasx_xvfrintrm_s ((v8f32)_1);
3460 /* Assembly instruction format: xd, xj. */
3461 /* Data types in instruction templates: V4DF, V4DF. */
3462 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3463 __m256d __lasx_xvfrintrm_d (__m256d _1)
3465 return (__m256d)__builtin_lasx_xvfrintrm_d ((v4f64)_1);
3468 /* Assembly instruction format: xd, rj, si12. */
3469 /* Data types in instruction templates: V32QI, CVPOINTER, SI. */
3470 #define __lasx_xvld(/*void **/ _1, /*si12*/ _2) \
3471 ((__m256i)__builtin_lasx_xvld ((void *)(_1), (_2)))
3473 /* Assembly instruction format: xd, rj, si12. */
3474 /* Data types in instruction templates: VOID, V32QI, CVPOINTER, SI. */
3475 #define __lasx_xvst(/*__m256i*/ _1, /*void **/ _2, /*si12*/ _3) \
3476 ((void)__builtin_lasx_xvst ((v32i8)(_1), (void *)(_2), (_3)))
3478 /* Assembly instruction format: xd, rj, si8, idx. */
3479 /* Data types in instruction templates: VOID, V32QI, CVPOINTER, SI, UQI. */
3480 #define __lasx_xvstelm_b(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \
3481 ((void)__builtin_lasx_xvstelm_b ((v32i8)(_1), (void *)(_2), (_3), (_4)))
3483 /* Assembly instruction format: xd, rj, si8, idx. */
3484 /* Data types in instruction templates: VOID, V16HI, CVPOINTER, SI, UQI. */
3485 #define __lasx_xvstelm_h(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \
3486 ((void)__builtin_lasx_xvstelm_h ((v16i16)(_1), (void *)(_2), (_3), (_4)))
3488 /* Assembly instruction format: xd, rj, si8, idx. */
3489 /* Data types in instruction templates: VOID, V8SI, CVPOINTER, SI, UQI. */
3490 #define __lasx_xvstelm_w(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \
3491 ((void)__builtin_lasx_xvstelm_w ((v8i32)(_1), (void *)(_2), (_3), (_4)))
3493 /* Assembly instruction format: xd, rj, si8, idx. */
3494 /* Data types in instruction templates: VOID, V4DI, CVPOINTER, SI, UQI. */
3495 #define __lasx_xvstelm_d(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \
3496 ((void)__builtin_lasx_xvstelm_d ((v4i64)(_1), (void *)(_2), (_3), (_4)))
3498 /* Assembly instruction format: xd, xj, ui3. */
3499 /* Data types in instruction templates: V8SI, V8SI, V8SI, UQI. */
3500 #define __lasx_xvinsve0_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui3*/ _3) \
3501 ((__m256i)__builtin_lasx_xvinsve0_w ((v8i32)(_1), (v8i32)(_2), (_3)))
3503 /* Assembly instruction format: xd, xj, ui2. */
3504 /* Data types in instruction templates: V4DI, V4DI, V4DI, UQI. */
3505 #define __lasx_xvinsve0_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui2*/ _3) \
3506 ((__m256i)__builtin_lasx_xvinsve0_d ((v4i64)(_1), (v4i64)(_2), (_3)))
3508 /* Assembly instruction format: xd, xj, ui3. */
3509 /* Data types in instruction templates: V8SI, V8SI, UQI. */
3510 #define __lasx_xvpickve_w(/*__m256i*/ _1, /*ui3*/ _2) \
3511 ((__m256i)__builtin_lasx_xvpickve_w ((v8i32)(_1), (_2)))
3513 /* Assembly instruction format: xd, xj, ui2. */
3514 /* Data types in instruction templates: V4DI, V4DI, UQI. */
3515 #define __lasx_xvpickve_d(/*__m256i*/ _1, /*ui2*/ _2) \
3516 ((__m256i)__builtin_lasx_xvpickve_d ((v4i64)(_1), (_2)))
3518 /* Assembly instruction format: xd, xj, xk. */
3519 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
3520 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3521 __m256i __lasx_xvssrlrn_b_h (__m256i _1, __m256i _2)
3523 return (__m256i)__builtin_lasx_xvssrlrn_b_h ((v16i16)_1, (v16i16)_2);
3526 /* Assembly instruction format: xd, xj, xk. */
3527 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
3528 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3529 __m256i __lasx_xvssrlrn_h_w (__m256i _1, __m256i _2)
3531 return (__m256i)__builtin_lasx_xvssrlrn_h_w ((v8i32)_1, (v8i32)_2);
3534 /* Assembly instruction format: xd, xj, xk. */
3535 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
3536 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3537 __m256i __lasx_xvssrlrn_w_d (__m256i _1, __m256i _2)
3539 return (__m256i)__builtin_lasx_xvssrlrn_w_d ((v4i64)_1, (v4i64)_2);
3542 /* Assembly instruction format: xd, xj, xk. */
3543 /* Data types in instruction templates: V32QI, V16HI, V16HI. */
3544 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3545 __m256i __lasx_xvssrln_b_h (__m256i _1, __m256i _2)
3547 return (__m256i)__builtin_lasx_xvssrln_b_h ((v16i16)_1, (v16i16)_2);
3550 /* Assembly instruction format: xd, xj, xk. */
3551 /* Data types in instruction templates: V16HI, V8SI, V8SI. */
3552 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3553 __m256i __lasx_xvssrln_h_w (__m256i _1, __m256i _2)
3555 return (__m256i)__builtin_lasx_xvssrln_h_w ((v8i32)_1, (v8i32)_2);
3558 /* Assembly instruction format: xd, xj, xk. */
3559 /* Data types in instruction templates: V8SI, V4DI, V4DI. */
3560 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3561 __m256i __lasx_xvssrln_w_d (__m256i _1, __m256i _2)
3563 return (__m256i)__builtin_lasx_xvssrln_w_d ((v4i64)_1, (v4i64)_2);
3566 /* Assembly instruction format: xd, xj, xk. */
3567 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
3568 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3569 __m256i __lasx_xvorn_v (__m256i _1, __m256i _2)
3571 return (__m256i)__builtin_lasx_xvorn_v ((v32i8)_1, (v32i8)_2);
3574 /* Assembly instruction format: xd, i13. */
3575 /* Data types in instruction templates: V4DI, HI. */
3576 #define __lasx_xvldi(/*i13*/ _1) \
3577 ((__m256i)__builtin_lasx_xvldi ((_1)))
3579 /* Assembly instruction format: xd, rj, rk. */
3580 /* Data types in instruction templates: V32QI, CVPOINTER, DI. */
3581 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3582 __m256i __lasx_xvldx (void * _1, long int _2)
3584 return (__m256i)__builtin_lasx_xvldx ((void *)_1, (long int)_2);
3587 /* Assembly instruction format: xd, rj, rk. */
3588 /* Data types in instruction templates: VOID, V32QI, CVPOINTER, DI. */
3589 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3590 void __lasx_xvstx (__m256i _1, void * _2, long int _3)
3592 return (void)__builtin_lasx_xvstx ((v32i8)_1, (void *)_2, (long int)_3);
3595 /* Assembly instruction format: xd, xj. */
3596 /* Data types in instruction templates: UV4DI, UV4DI. */
3597 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3598 __m256i __lasx_xvextl_qu_du (__m256i _1)
3600 return (__m256i)__builtin_lasx_xvextl_qu_du ((v4u64)_1);
3603 /* Assembly instruction format: xd, rj, ui3. */
3604 /* Data types in instruction templates: V8SI, V8SI, SI, UQI. */
3605 #define __lasx_xvinsgr2vr_w(/*__m256i*/ _1, /*int*/ _2, /*ui3*/ _3) \
3606 ((__m256i)__builtin_lasx_xvinsgr2vr_w ((v8i32)(_1), (int)(_2), (_3)))
3608 /* Assembly instruction format: xd, rj, ui2. */
3609 /* Data types in instruction templates: V4DI, V4DI, DI, UQI. */
3610 #define __lasx_xvinsgr2vr_d(/*__m256i*/ _1, /*long int*/ _2, /*ui2*/ _3) \
3611 ((__m256i)__builtin_lasx_xvinsgr2vr_d ((v4i64)(_1), (long int)(_2), (_3)))
3613 /* Assembly instruction format: xd, xj. */
3614 /* Data types in instruction templates: V32QI, V32QI. */
3615 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3616 __m256i __lasx_xvreplve0_b (__m256i _1)
3618 return (__m256i)__builtin_lasx_xvreplve0_b ((v32i8)_1);
3621 /* Assembly instruction format: xd, xj. */
3622 /* Data types in instruction templates: V16HI, V16HI. */
3623 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3624 __m256i __lasx_xvreplve0_h (__m256i _1)
3626 return (__m256i)__builtin_lasx_xvreplve0_h ((v16i16)_1);
3629 /* Assembly instruction format: xd, xj. */
3630 /* Data types in instruction templates: V8SI, V8SI. */
3631 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3632 __m256i __lasx_xvreplve0_w (__m256i _1)
3634 return (__m256i)__builtin_lasx_xvreplve0_w ((v8i32)_1);
3637 /* Assembly instruction format: xd, xj. */
3638 /* Data types in instruction templates: V4DI, V4DI. */
3639 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3640 __m256i __lasx_xvreplve0_d (__m256i _1)
3642 return (__m256i)__builtin_lasx_xvreplve0_d ((v4i64)_1);
3645 /* Assembly instruction format: xd, xj. */
3646 /* Data types in instruction templates: V32QI, V32QI. */
3647 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3648 __m256i __lasx_xvreplve0_q (__m256i _1)
3650 return (__m256i)__builtin_lasx_xvreplve0_q ((v32i8)_1);
3653 /* Assembly instruction format: xd, xj. */
3654 /* Data types in instruction templates: V16HI, V32QI. */
3655 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3656 __m256i __lasx_vext2xv_h_b (__m256i _1)
3658 return (__m256i)__builtin_lasx_vext2xv_h_b ((v32i8)_1);
3661 /* Assembly instruction format: xd, xj. */
3662 /* Data types in instruction templates: V8SI, V16HI. */
3663 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3664 __m256i __lasx_vext2xv_w_h (__m256i _1)
3666 return (__m256i)__builtin_lasx_vext2xv_w_h ((v16i16)_1);
3669 /* Assembly instruction format: xd, xj. */
3670 /* Data types in instruction templates: V4DI, V8SI. */
3671 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3672 __m256i __lasx_vext2xv_d_w (__m256i _1)
3674 return (__m256i)__builtin_lasx_vext2xv_d_w ((v8i32)_1);
3677 /* Assembly instruction format: xd, xj. */
3678 /* Data types in instruction templates: V8SI, V32QI. */
3679 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3680 __m256i __lasx_vext2xv_w_b (__m256i _1)
3682 return (__m256i)__builtin_lasx_vext2xv_w_b ((v32i8)_1);
3685 /* Assembly instruction format: xd, xj. */
3686 /* Data types in instruction templates: V4DI, V16HI. */
3687 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3688 __m256i __lasx_vext2xv_d_h (__m256i _1)
3690 return (__m256i)__builtin_lasx_vext2xv_d_h ((v16i16)_1);
3693 /* Assembly instruction format: xd, xj. */
3694 /* Data types in instruction templates: V4DI, V32QI. */
3695 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3696 __m256i __lasx_vext2xv_d_b (__m256i _1)
3698 return (__m256i)__builtin_lasx_vext2xv_d_b ((v32i8)_1);
3701 /* Assembly instruction format: xd, xj. */
3702 /* Data types in instruction templates: V16HI, V32QI. */
3703 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3704 __m256i __lasx_vext2xv_hu_bu (__m256i _1)
3706 return (__m256i)__builtin_lasx_vext2xv_hu_bu ((v32i8)_1);
3709 /* Assembly instruction format: xd, xj. */
3710 /* Data types in instruction templates: V8SI, V16HI. */
3711 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3712 __m256i __lasx_vext2xv_wu_hu (__m256i _1)
3714 return (__m256i)__builtin_lasx_vext2xv_wu_hu ((v16i16)_1);
3717 /* Assembly instruction format: xd, xj. */
3718 /* Data types in instruction templates: V4DI, V8SI. */
3719 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3720 __m256i __lasx_vext2xv_du_wu (__m256i _1)
3722 return (__m256i)__builtin_lasx_vext2xv_du_wu ((v8i32)_1);
3725 /* Assembly instruction format: xd, xj. */
3726 /* Data types in instruction templates: V8SI, V32QI. */
3727 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3728 __m256i __lasx_vext2xv_wu_bu (__m256i _1)
3730 return (__m256i)__builtin_lasx_vext2xv_wu_bu ((v32i8)_1);
3733 /* Assembly instruction format: xd, xj. */
3734 /* Data types in instruction templates: V4DI, V16HI. */
3735 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3736 __m256i __lasx_vext2xv_du_hu (__m256i _1)
3738 return (__m256i)__builtin_lasx_vext2xv_du_hu ((v16i16)_1);
3741 /* Assembly instruction format: xd, xj. */
3742 /* Data types in instruction templates: V4DI, V32QI. */
3743 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3744 __m256i __lasx_vext2xv_du_bu (__m256i _1)
3746 return (__m256i)__builtin_lasx_vext2xv_du_bu ((v32i8)_1);
3749 /* Assembly instruction format: xd, xj, ui8. */
3750 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
3751 #define __lasx_xvpermi_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \
3752 ((__m256i)__builtin_lasx_xvpermi_q ((v32i8)(_1), (v32i8)(_2), (_3)))
3754 /* Assembly instruction format: xd, xj, ui8. */
3755 /* Data types in instruction templates: V4DI, V4DI, USI. */
3756 #define __lasx_xvpermi_d(/*__m256i*/ _1, /*ui8*/ _2) \
3757 ((__m256i)__builtin_lasx_xvpermi_d ((v4i64)(_1), (_2)))
3759 /* Assembly instruction format: xd, xj, xk. */
3760 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
3761 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3762 __m256i __lasx_xvperm_w (__m256i _1, __m256i _2)
3764 return (__m256i)__builtin_lasx_xvperm_w ((v8i32)_1, (v8i32)_2);
3767 /* Assembly instruction format: xd, rj, si12. */
3768 /* Data types in instruction templates: V32QI, CVPOINTER, SI. */
3769 #define __lasx_xvldrepl_b(/*void **/ _1, /*si12*/ _2) \
3770 ((__m256i)__builtin_lasx_xvldrepl_b ((void *)(_1), (_2)))
3772 /* Assembly instruction format: xd, rj, si11. */
3773 /* Data types in instruction templates: V16HI, CVPOINTER, SI. */
3774 #define __lasx_xvldrepl_h(/*void **/ _1, /*si11*/ _2) \
3775 ((__m256i)__builtin_lasx_xvldrepl_h ((void *)(_1), (_2)))
3777 /* Assembly instruction format: xd, rj, si10. */
3778 /* Data types in instruction templates: V8SI, CVPOINTER, SI. */
3779 #define __lasx_xvldrepl_w(/*void **/ _1, /*si10*/ _2) \
3780 ((__m256i)__builtin_lasx_xvldrepl_w ((void *)(_1), (_2)))
3782 /* Assembly instruction format: xd, rj, si9. */
3783 /* Data types in instruction templates: V4DI, CVPOINTER, SI. */
3784 #define __lasx_xvldrepl_d(/*void **/ _1, /*si9*/ _2) \
3785 ((__m256i)__builtin_lasx_xvldrepl_d ((void *)(_1), (_2)))
3787 /* Assembly instruction format: rd, xj, ui3. */
3788 /* Data types in instruction templates: SI, V8SI, UQI. */
3789 #define __lasx_xvpickve2gr_w(/*__m256i*/ _1, /*ui3*/ _2) \
3790 ((int)__builtin_lasx_xvpickve2gr_w ((v8i32)(_1), (_2)))
3792 /* Assembly instruction format: rd, xj, ui3. */
3793 /* Data types in instruction templates: USI, V8SI, UQI. */
3794 #define __lasx_xvpickve2gr_wu(/*__m256i*/ _1, /*ui3*/ _2) \
3795 ((unsigned int)__builtin_lasx_xvpickve2gr_wu ((v8i32)(_1), (_2)))
3797 /* Assembly instruction format: rd, xj, ui2. */
3798 /* Data types in instruction templates: DI, V4DI, UQI. */
3799 #define __lasx_xvpickve2gr_d(/*__m256i*/ _1, /*ui2*/ _2) \
3800 ((long int)__builtin_lasx_xvpickve2gr_d ((v4i64)(_1), (_2)))
3802 /* Assembly instruction format: rd, xj, ui2. */
3803 /* Data types in instruction templates: UDI, V4DI, UQI. */
3804 #define __lasx_xvpickve2gr_du(/*__m256i*/ _1, /*ui2*/ _2) \
3805 ((unsigned long int)__builtin_lasx_xvpickve2gr_du ((v4i64)(_1), (_2)))
3807 /* Assembly instruction format: xd, xj, xk. */
3808 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
3809 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3810 __m256i __lasx_xvaddwev_q_d (__m256i _1, __m256i _2)
3812 return (__m256i)__builtin_lasx_xvaddwev_q_d ((v4i64)_1, (v4i64)_2);
3815 /* Assembly instruction format: xd, xj, xk. */
3816 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
3817 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3818 __m256i __lasx_xvaddwev_d_w (__m256i _1, __m256i _2)
3820 return (__m256i)__builtin_lasx_xvaddwev_d_w ((v8i32)_1, (v8i32)_2);
3823 /* Assembly instruction format: xd, xj, xk. */
3824 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
3825 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3826 __m256i __lasx_xvaddwev_w_h (__m256i _1, __m256i _2)
3828 return (__m256i)__builtin_lasx_xvaddwev_w_h ((v16i16)_1, (v16i16)_2);
3831 /* Assembly instruction format: xd, xj, xk. */
3832 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
3833 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3834 __m256i __lasx_xvaddwev_h_b (__m256i _1, __m256i _2)
3836 return (__m256i)__builtin_lasx_xvaddwev_h_b ((v32i8)_1, (v32i8)_2);
3839 /* Assembly instruction format: xd, xj, xk. */
3840 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
3841 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3842 __m256i __lasx_xvaddwev_q_du (__m256i _1, __m256i _2)
3844 return (__m256i)__builtin_lasx_xvaddwev_q_du ((v4u64)_1, (v4u64)_2);
3847 /* Assembly instruction format: xd, xj, xk. */
3848 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */
3849 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3850 __m256i __lasx_xvaddwev_d_wu (__m256i _1, __m256i _2)
3852 return (__m256i)__builtin_lasx_xvaddwev_d_wu ((v8u32)_1, (v8u32)_2);
3855 /* Assembly instruction format: xd, xj, xk. */
3856 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */
3857 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3858 __m256i __lasx_xvaddwev_w_hu (__m256i _1, __m256i _2)
3860 return (__m256i)__builtin_lasx_xvaddwev_w_hu ((v16u16)_1, (v16u16)_2);
3863 /* Assembly instruction format: xd, xj, xk. */
3864 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */
3865 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3866 __m256i __lasx_xvaddwev_h_bu (__m256i _1, __m256i _2)
3868 return (__m256i)__builtin_lasx_xvaddwev_h_bu ((v32u8)_1, (v32u8)_2);
3871 /* Assembly instruction format: xd, xj, xk. */
3872 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
3873 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3874 __m256i __lasx_xvsubwev_q_d (__m256i _1, __m256i _2)
3876 return (__m256i)__builtin_lasx_xvsubwev_q_d ((v4i64)_1, (v4i64)_2);
3879 /* Assembly instruction format: xd, xj, xk. */
3880 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
3881 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3882 __m256i __lasx_xvsubwev_d_w (__m256i _1, __m256i _2)
3884 return (__m256i)__builtin_lasx_xvsubwev_d_w ((v8i32)_1, (v8i32)_2);
3887 /* Assembly instruction format: xd, xj, xk. */
3888 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
3889 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3890 __m256i __lasx_xvsubwev_w_h (__m256i _1, __m256i _2)
3892 return (__m256i)__builtin_lasx_xvsubwev_w_h ((v16i16)_1, (v16i16)_2);
3895 /* Assembly instruction format: xd, xj, xk. */
3896 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
3897 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3898 __m256i __lasx_xvsubwev_h_b (__m256i _1, __m256i _2)
3900 return (__m256i)__builtin_lasx_xvsubwev_h_b ((v32i8)_1, (v32i8)_2);
3903 /* Assembly instruction format: xd, xj, xk. */
3904 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
3905 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3906 __m256i __lasx_xvsubwev_q_du (__m256i _1, __m256i _2)
3908 return (__m256i)__builtin_lasx_xvsubwev_q_du ((v4u64)_1, (v4u64)_2);
3911 /* Assembly instruction format: xd, xj, xk. */
3912 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */
3913 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3914 __m256i __lasx_xvsubwev_d_wu (__m256i _1, __m256i _2)
3916 return (__m256i)__builtin_lasx_xvsubwev_d_wu ((v8u32)_1, (v8u32)_2);
3919 /* Assembly instruction format: xd, xj, xk. */
3920 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */
3921 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3922 __m256i __lasx_xvsubwev_w_hu (__m256i _1, __m256i _2)
3924 return (__m256i)__builtin_lasx_xvsubwev_w_hu ((v16u16)_1, (v16u16)_2);
3927 /* Assembly instruction format: xd, xj, xk. */
3928 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */
3929 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3930 __m256i __lasx_xvsubwev_h_bu (__m256i _1, __m256i _2)
3932 return (__m256i)__builtin_lasx_xvsubwev_h_bu ((v32u8)_1, (v32u8)_2);
3935 /* Assembly instruction format: xd, xj, xk. */
3936 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
3937 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3938 __m256i __lasx_xvmulwev_q_d (__m256i _1, __m256i _2)
3940 return (__m256i)__builtin_lasx_xvmulwev_q_d ((v4i64)_1, (v4i64)_2);
3943 /* Assembly instruction format: xd, xj, xk. */
3944 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
3945 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3946 __m256i __lasx_xvmulwev_d_w (__m256i _1, __m256i _2)
3948 return (__m256i)__builtin_lasx_xvmulwev_d_w ((v8i32)_1, (v8i32)_2);
3951 /* Assembly instruction format: xd, xj, xk. */
3952 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
3953 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3954 __m256i __lasx_xvmulwev_w_h (__m256i _1, __m256i _2)
3956 return (__m256i)__builtin_lasx_xvmulwev_w_h ((v16i16)_1, (v16i16)_2);
3959 /* Assembly instruction format: xd, xj, xk. */
3960 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
3961 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3962 __m256i __lasx_xvmulwev_h_b (__m256i _1, __m256i _2)
3964 return (__m256i)__builtin_lasx_xvmulwev_h_b ((v32i8)_1, (v32i8)_2);
3967 /* Assembly instruction format: xd, xj, xk. */
3968 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
3969 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3970 __m256i __lasx_xvmulwev_q_du (__m256i _1, __m256i _2)
3972 return (__m256i)__builtin_lasx_xvmulwev_q_du ((v4u64)_1, (v4u64)_2);
3975 /* Assembly instruction format: xd, xj, xk. */
3976 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */
3977 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3978 __m256i __lasx_xvmulwev_d_wu (__m256i _1, __m256i _2)
3980 return (__m256i)__builtin_lasx_xvmulwev_d_wu ((v8u32)_1, (v8u32)_2);
3983 /* Assembly instruction format: xd, xj, xk. */
3984 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */
3985 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3986 __m256i __lasx_xvmulwev_w_hu (__m256i _1, __m256i _2)
3988 return (__m256i)__builtin_lasx_xvmulwev_w_hu ((v16u16)_1, (v16u16)_2);
3991 /* Assembly instruction format: xd, xj, xk. */
3992 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */
3993 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
3994 __m256i __lasx_xvmulwev_h_bu (__m256i _1, __m256i _2)
3996 return (__m256i)__builtin_lasx_xvmulwev_h_bu ((v32u8)_1, (v32u8)_2);
3999 /* Assembly instruction format: xd, xj, xk. */
4000 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4001 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4002 __m256i __lasx_xvaddwod_q_d (__m256i _1, __m256i _2)
4004 return (__m256i)__builtin_lasx_xvaddwod_q_d ((v4i64)_1, (v4i64)_2);
4007 /* Assembly instruction format: xd, xj, xk. */
4008 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
4009 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4010 __m256i __lasx_xvaddwod_d_w (__m256i _1, __m256i _2)
4012 return (__m256i)__builtin_lasx_xvaddwod_d_w ((v8i32)_1, (v8i32)_2);
4015 /* Assembly instruction format: xd, xj, xk. */
4016 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
4017 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4018 __m256i __lasx_xvaddwod_w_h (__m256i _1, __m256i _2)
4020 return (__m256i)__builtin_lasx_xvaddwod_w_h ((v16i16)_1, (v16i16)_2);
4023 /* Assembly instruction format: xd, xj, xk. */
4024 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
4025 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4026 __m256i __lasx_xvaddwod_h_b (__m256i _1, __m256i _2)
4028 return (__m256i)__builtin_lasx_xvaddwod_h_b ((v32i8)_1, (v32i8)_2);
4031 /* Assembly instruction format: xd, xj, xk. */
4032 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
4033 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4034 __m256i __lasx_xvaddwod_q_du (__m256i _1, __m256i _2)
4036 return (__m256i)__builtin_lasx_xvaddwod_q_du ((v4u64)_1, (v4u64)_2);
4039 /* Assembly instruction format: xd, xj, xk. */
4040 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */
4041 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4042 __m256i __lasx_xvaddwod_d_wu (__m256i _1, __m256i _2)
4044 return (__m256i)__builtin_lasx_xvaddwod_d_wu ((v8u32)_1, (v8u32)_2);
4047 /* Assembly instruction format: xd, xj, xk. */
4048 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */
4049 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4050 __m256i __lasx_xvaddwod_w_hu (__m256i _1, __m256i _2)
4052 return (__m256i)__builtin_lasx_xvaddwod_w_hu ((v16u16)_1, (v16u16)_2);
4055 /* Assembly instruction format: xd, xj, xk. */
4056 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */
4057 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4058 __m256i __lasx_xvaddwod_h_bu (__m256i _1, __m256i _2)
4060 return (__m256i)__builtin_lasx_xvaddwod_h_bu ((v32u8)_1, (v32u8)_2);
4063 /* Assembly instruction format: xd, xj, xk. */
4064 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4065 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4066 __m256i __lasx_xvsubwod_q_d (__m256i _1, __m256i _2)
4068 return (__m256i)__builtin_lasx_xvsubwod_q_d ((v4i64)_1, (v4i64)_2);
4071 /* Assembly instruction format: xd, xj, xk. */
4072 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
4073 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4074 __m256i __lasx_xvsubwod_d_w (__m256i _1, __m256i _2)
4076 return (__m256i)__builtin_lasx_xvsubwod_d_w ((v8i32)_1, (v8i32)_2);
4079 /* Assembly instruction format: xd, xj, xk. */
4080 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
4081 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4082 __m256i __lasx_xvsubwod_w_h (__m256i _1, __m256i _2)
4084 return (__m256i)__builtin_lasx_xvsubwod_w_h ((v16i16)_1, (v16i16)_2);
4087 /* Assembly instruction format: xd, xj, xk. */
4088 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
4089 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4090 __m256i __lasx_xvsubwod_h_b (__m256i _1, __m256i _2)
4092 return (__m256i)__builtin_lasx_xvsubwod_h_b ((v32i8)_1, (v32i8)_2);
4095 /* Assembly instruction format: xd, xj, xk. */
4096 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
4097 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4098 __m256i __lasx_xvsubwod_q_du (__m256i _1, __m256i _2)
4100 return (__m256i)__builtin_lasx_xvsubwod_q_du ((v4u64)_1, (v4u64)_2);
4103 /* Assembly instruction format: xd, xj, xk. */
4104 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */
4105 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4106 __m256i __lasx_xvsubwod_d_wu (__m256i _1, __m256i _2)
4108 return (__m256i)__builtin_lasx_xvsubwod_d_wu ((v8u32)_1, (v8u32)_2);
4111 /* Assembly instruction format: xd, xj, xk. */
4112 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */
4113 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4114 __m256i __lasx_xvsubwod_w_hu (__m256i _1, __m256i _2)
4116 return (__m256i)__builtin_lasx_xvsubwod_w_hu ((v16u16)_1, (v16u16)_2);
4119 /* Assembly instruction format: xd, xj, xk. */
4120 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */
4121 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4122 __m256i __lasx_xvsubwod_h_bu (__m256i _1, __m256i _2)
4124 return (__m256i)__builtin_lasx_xvsubwod_h_bu ((v32u8)_1, (v32u8)_2);
4127 /* Assembly instruction format: xd, xj, xk. */
4128 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4129 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4130 __m256i __lasx_xvmulwod_q_d (__m256i _1, __m256i _2)
4132 return (__m256i)__builtin_lasx_xvmulwod_q_d ((v4i64)_1, (v4i64)_2);
4135 /* Assembly instruction format: xd, xj, xk. */
4136 /* Data types in instruction templates: V4DI, V8SI, V8SI. */
4137 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4138 __m256i __lasx_xvmulwod_d_w (__m256i _1, __m256i _2)
4140 return (__m256i)__builtin_lasx_xvmulwod_d_w ((v8i32)_1, (v8i32)_2);
4143 /* Assembly instruction format: xd, xj, xk. */
4144 /* Data types in instruction templates: V8SI, V16HI, V16HI. */
4145 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4146 __m256i __lasx_xvmulwod_w_h (__m256i _1, __m256i _2)
4148 return (__m256i)__builtin_lasx_xvmulwod_w_h ((v16i16)_1, (v16i16)_2);
4151 /* Assembly instruction format: xd, xj, xk. */
4152 /* Data types in instruction templates: V16HI, V32QI, V32QI. */
4153 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4154 __m256i __lasx_xvmulwod_h_b (__m256i _1, __m256i _2)
4156 return (__m256i)__builtin_lasx_xvmulwod_h_b ((v32i8)_1, (v32i8)_2);
4159 /* Assembly instruction format: xd, xj, xk. */
4160 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */
4161 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4162 __m256i __lasx_xvmulwod_q_du (__m256i _1, __m256i _2)
4164 return (__m256i)__builtin_lasx_xvmulwod_q_du ((v4u64)_1, (v4u64)_2);
4167 /* Assembly instruction format: xd, xj, xk. */
4168 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */
4169 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4170 __m256i __lasx_xvmulwod_d_wu (__m256i _1, __m256i _2)
4172 return (__m256i)__builtin_lasx_xvmulwod_d_wu ((v8u32)_1, (v8u32)_2);
4175 /* Assembly instruction format: xd, xj, xk. */
4176 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */
4177 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4178 __m256i __lasx_xvmulwod_w_hu (__m256i _1, __m256i _2)
4180 return (__m256i)__builtin_lasx_xvmulwod_w_hu ((v16u16)_1, (v16u16)_2);
4183 /* Assembly instruction format: xd, xj, xk. */
4184 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */
4185 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4186 __m256i __lasx_xvmulwod_h_bu (__m256i _1, __m256i _2)
4188 return (__m256i)__builtin_lasx_xvmulwod_h_bu ((v32u8)_1, (v32u8)_2);
4191 /* Assembly instruction format: xd, xj, xk. */
4192 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */
4193 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4194 __m256i __lasx_xvaddwev_d_wu_w (__m256i _1, __m256i _2)
4196 return (__m256i)__builtin_lasx_xvaddwev_d_wu_w ((v8u32)_1, (v8i32)_2);
4199 /* Assembly instruction format: xd, xj, xk. */
4200 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */
4201 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4202 __m256i __lasx_xvaddwev_w_hu_h (__m256i _1, __m256i _2)
4204 return (__m256i)__builtin_lasx_xvaddwev_w_hu_h ((v16u16)_1, (v16i16)_2);
4207 /* Assembly instruction format: xd, xj, xk. */
4208 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */
4209 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4210 __m256i __lasx_xvaddwev_h_bu_b (__m256i _1, __m256i _2)
4212 return (__m256i)__builtin_lasx_xvaddwev_h_bu_b ((v32u8)_1, (v32i8)_2);
4215 /* Assembly instruction format: xd, xj, xk. */
4216 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */
4217 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4218 __m256i __lasx_xvmulwev_d_wu_w (__m256i _1, __m256i _2)
4220 return (__m256i)__builtin_lasx_xvmulwev_d_wu_w ((v8u32)_1, (v8i32)_2);
4223 /* Assembly instruction format: xd, xj, xk. */
4224 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */
4225 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4226 __m256i __lasx_xvmulwev_w_hu_h (__m256i _1, __m256i _2)
4228 return (__m256i)__builtin_lasx_xvmulwev_w_hu_h ((v16u16)_1, (v16i16)_2);
4231 /* Assembly instruction format: xd, xj, xk. */
4232 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */
4233 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4234 __m256i __lasx_xvmulwev_h_bu_b (__m256i _1, __m256i _2)
4236 return (__m256i)__builtin_lasx_xvmulwev_h_bu_b ((v32u8)_1, (v32i8)_2);
4239 /* Assembly instruction format: xd, xj, xk. */
4240 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */
4241 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4242 __m256i __lasx_xvaddwod_d_wu_w (__m256i _1, __m256i _2)
4244 return (__m256i)__builtin_lasx_xvaddwod_d_wu_w ((v8u32)_1, (v8i32)_2);
4247 /* Assembly instruction format: xd, xj, xk. */
4248 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */
4249 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4250 __m256i __lasx_xvaddwod_w_hu_h (__m256i _1, __m256i _2)
4252 return (__m256i)__builtin_lasx_xvaddwod_w_hu_h ((v16u16)_1, (v16i16)_2);
4255 /* Assembly instruction format: xd, xj, xk. */
4256 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */
4257 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4258 __m256i __lasx_xvaddwod_h_bu_b (__m256i _1, __m256i _2)
4260 return (__m256i)__builtin_lasx_xvaddwod_h_bu_b ((v32u8)_1, (v32i8)_2);
4263 /* Assembly instruction format: xd, xj, xk. */
4264 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */
4265 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4266 __m256i __lasx_xvmulwod_d_wu_w (__m256i _1, __m256i _2)
4268 return (__m256i)__builtin_lasx_xvmulwod_d_wu_w ((v8u32)_1, (v8i32)_2);
4271 /* Assembly instruction format: xd, xj, xk. */
4272 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */
4273 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4274 __m256i __lasx_xvmulwod_w_hu_h (__m256i _1, __m256i _2)
4276 return (__m256i)__builtin_lasx_xvmulwod_w_hu_h ((v16u16)_1, (v16i16)_2);
4279 /* Assembly instruction format: xd, xj, xk. */
4280 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */
4281 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4282 __m256i __lasx_xvmulwod_h_bu_b (__m256i _1, __m256i _2)
4284 return (__m256i)__builtin_lasx_xvmulwod_h_bu_b ((v32u8)_1, (v32i8)_2);
4287 /* Assembly instruction format: xd, xj, xk. */
4288 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4289 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4290 __m256i __lasx_xvhaddw_q_d (__m256i _1, __m256i _2)
4292 return (__m256i)__builtin_lasx_xvhaddw_q_d ((v4i64)_1, (v4i64)_2);
4295 /* Assembly instruction format: xd, xj, xk. */
4296 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
4297 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4298 __m256i __lasx_xvhaddw_qu_du (__m256i _1, __m256i _2)
4300 return (__m256i)__builtin_lasx_xvhaddw_qu_du ((v4u64)_1, (v4u64)_2);
4303 /* Assembly instruction format: xd, xj, xk. */
4304 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4305 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4306 __m256i __lasx_xvhsubw_q_d (__m256i _1, __m256i _2)
4308 return (__m256i)__builtin_lasx_xvhsubw_q_d ((v4i64)_1, (v4i64)_2);
4311 /* Assembly instruction format: xd, xj, xk. */
4312 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */
4313 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4314 __m256i __lasx_xvhsubw_qu_du (__m256i _1, __m256i _2)
4316 return (__m256i)__builtin_lasx_xvhsubw_qu_du ((v4u64)_1, (v4u64)_2);
4319 /* Assembly instruction format: xd, xj, xk. */
4320 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */
4321 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4322 __m256i __lasx_xvmaddwev_q_d (__m256i _1, __m256i _2, __m256i _3)
4324 return (__m256i)__builtin_lasx_xvmaddwev_q_d ((v4i64)_1, (v4i64)_2, (v4i64)_3);
4327 /* Assembly instruction format: xd, xj, xk. */
4328 /* Data types in instruction templates: V4DI, V4DI, V8SI, V8SI. */
4329 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4330 __m256i __lasx_xvmaddwev_d_w (__m256i _1, __m256i _2, __m256i _3)
4332 return (__m256i)__builtin_lasx_xvmaddwev_d_w ((v4i64)_1, (v8i32)_2, (v8i32)_3);
4335 /* Assembly instruction format: xd, xj, xk. */
4336 /* Data types in instruction templates: V8SI, V8SI, V16HI, V16HI. */
4337 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4338 __m256i __lasx_xvmaddwev_w_h (__m256i _1, __m256i _2, __m256i _3)
4340 return (__m256i)__builtin_lasx_xvmaddwev_w_h ((v8i32)_1, (v16i16)_2, (v16i16)_3);
4343 /* Assembly instruction format: xd, xj, xk. */
4344 /* Data types in instruction templates: V16HI, V16HI, V32QI, V32QI. */
4345 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4346 __m256i __lasx_xvmaddwev_h_b (__m256i _1, __m256i _2, __m256i _3)
4348 return (__m256i)__builtin_lasx_xvmaddwev_h_b ((v16i16)_1, (v32i8)_2, (v32i8)_3);
4351 /* Assembly instruction format: xd, xj, xk. */
4352 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI, UV4DI. */
4353 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4354 __m256i __lasx_xvmaddwev_q_du (__m256i _1, __m256i _2, __m256i _3)
4356 return (__m256i)__builtin_lasx_xvmaddwev_q_du ((v4u64)_1, (v4u64)_2, (v4u64)_3);
4359 /* Assembly instruction format: xd, xj, xk. */
4360 /* Data types in instruction templates: UV4DI, UV4DI, UV8SI, UV8SI. */
4361 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4362 __m256i __lasx_xvmaddwev_d_wu (__m256i _1, __m256i _2, __m256i _3)
4364 return (__m256i)__builtin_lasx_xvmaddwev_d_wu ((v4u64)_1, (v8u32)_2, (v8u32)_3);
4367 /* Assembly instruction format: xd, xj, xk. */
4368 /* Data types in instruction templates: UV8SI, UV8SI, UV16HI, UV16HI. */
4369 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4370 __m256i __lasx_xvmaddwev_w_hu (__m256i _1, __m256i _2, __m256i _3)
4372 return (__m256i)__builtin_lasx_xvmaddwev_w_hu ((v8u32)_1, (v16u16)_2, (v16u16)_3);
4375 /* Assembly instruction format: xd, xj, xk. */
4376 /* Data types in instruction templates: UV16HI, UV16HI, UV32QI, UV32QI. */
4377 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4378 __m256i __lasx_xvmaddwev_h_bu (__m256i _1, __m256i _2, __m256i _3)
4380 return (__m256i)__builtin_lasx_xvmaddwev_h_bu ((v16u16)_1, (v32u8)_2, (v32u8)_3);
4383 /* Assembly instruction format: xd, xj, xk. */
4384 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */
4385 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4386 __m256i __lasx_xvmaddwod_q_d (__m256i _1, __m256i _2, __m256i _3)
4388 return (__m256i)__builtin_lasx_xvmaddwod_q_d ((v4i64)_1, (v4i64)_2, (v4i64)_3);
4391 /* Assembly instruction format: xd, xj, xk. */
4392 /* Data types in instruction templates: V4DI, V4DI, V8SI, V8SI. */
4393 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4394 __m256i __lasx_xvmaddwod_d_w (__m256i _1, __m256i _2, __m256i _3)
4396 return (__m256i)__builtin_lasx_xvmaddwod_d_w ((v4i64)_1, (v8i32)_2, (v8i32)_3);
4399 /* Assembly instruction format: xd, xj, xk. */
4400 /* Data types in instruction templates: V8SI, V8SI, V16HI, V16HI. */
4401 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4402 __m256i __lasx_xvmaddwod_w_h (__m256i _1, __m256i _2, __m256i _3)
4404 return (__m256i)__builtin_lasx_xvmaddwod_w_h ((v8i32)_1, (v16i16)_2, (v16i16)_3);
4407 /* Assembly instruction format: xd, xj, xk. */
4408 /* Data types in instruction templates: V16HI, V16HI, V32QI, V32QI. */
4409 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4410 __m256i __lasx_xvmaddwod_h_b (__m256i _1, __m256i _2, __m256i _3)
4412 return (__m256i)__builtin_lasx_xvmaddwod_h_b ((v16i16)_1, (v32i8)_2, (v32i8)_3);
4415 /* Assembly instruction format: xd, xj, xk. */
4416 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI, UV4DI. */
4417 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4418 __m256i __lasx_xvmaddwod_q_du (__m256i _1, __m256i _2, __m256i _3)
4420 return (__m256i)__builtin_lasx_xvmaddwod_q_du ((v4u64)_1, (v4u64)_2, (v4u64)_3);
4423 /* Assembly instruction format: xd, xj, xk. */
4424 /* Data types in instruction templates: UV4DI, UV4DI, UV8SI, UV8SI. */
4425 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4426 __m256i __lasx_xvmaddwod_d_wu (__m256i _1, __m256i _2, __m256i _3)
4428 return (__m256i)__builtin_lasx_xvmaddwod_d_wu ((v4u64)_1, (v8u32)_2, (v8u32)_3);
4431 /* Assembly instruction format: xd, xj, xk. */
4432 /* Data types in instruction templates: UV8SI, UV8SI, UV16HI, UV16HI. */
4433 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4434 __m256i __lasx_xvmaddwod_w_hu (__m256i _1, __m256i _2, __m256i _3)
4436 return (__m256i)__builtin_lasx_xvmaddwod_w_hu ((v8u32)_1, (v16u16)_2, (v16u16)_3);
4439 /* Assembly instruction format: xd, xj, xk. */
4440 /* Data types in instruction templates: UV16HI, UV16HI, UV32QI, UV32QI. */
4441 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4442 __m256i __lasx_xvmaddwod_h_bu (__m256i _1, __m256i _2, __m256i _3)
4444 return (__m256i)__builtin_lasx_xvmaddwod_h_bu ((v16u16)_1, (v32u8)_2, (v32u8)_3);
4447 /* Assembly instruction format: xd, xj, xk. */
4448 /* Data types in instruction templates: V4DI, V4DI, UV4DI, V4DI. */
4449 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4450 __m256i __lasx_xvmaddwev_q_du_d (__m256i _1, __m256i _2, __m256i _3)
4452 return (__m256i)__builtin_lasx_xvmaddwev_q_du_d ((v4i64)_1, (v4u64)_2, (v4i64)_3);
4455 /* Assembly instruction format: xd, xj, xk. */
4456 /* Data types in instruction templates: V4DI, V4DI, UV8SI, V8SI. */
4457 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4458 __m256i __lasx_xvmaddwev_d_wu_w (__m256i _1, __m256i _2, __m256i _3)
4460 return (__m256i)__builtin_lasx_xvmaddwev_d_wu_w ((v4i64)_1, (v8u32)_2, (v8i32)_3);
4463 /* Assembly instruction format: xd, xj, xk. */
4464 /* Data types in instruction templates: V8SI, V8SI, UV16HI, V16HI. */
4465 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4466 __m256i __lasx_xvmaddwev_w_hu_h (__m256i _1, __m256i _2, __m256i _3)
4468 return (__m256i)__builtin_lasx_xvmaddwev_w_hu_h ((v8i32)_1, (v16u16)_2, (v16i16)_3);
4471 /* Assembly instruction format: xd, xj, xk. */
4472 /* Data types in instruction templates: V16HI, V16HI, UV32QI, V32QI. */
4473 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4474 __m256i __lasx_xvmaddwev_h_bu_b (__m256i _1, __m256i _2, __m256i _3)
4476 return (__m256i)__builtin_lasx_xvmaddwev_h_bu_b ((v16i16)_1, (v32u8)_2, (v32i8)_3);
4479 /* Assembly instruction format: xd, xj, xk. */
4480 /* Data types in instruction templates: V4DI, V4DI, UV4DI, V4DI. */
4481 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4482 __m256i __lasx_xvmaddwod_q_du_d (__m256i _1, __m256i _2, __m256i _3)
4484 return (__m256i)__builtin_lasx_xvmaddwod_q_du_d ((v4i64)_1, (v4u64)_2, (v4i64)_3);
4487 /* Assembly instruction format: xd, xj, xk. */
4488 /* Data types in instruction templates: V4DI, V4DI, UV8SI, V8SI. */
4489 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4490 __m256i __lasx_xvmaddwod_d_wu_w (__m256i _1, __m256i _2, __m256i _3)
4492 return (__m256i)__builtin_lasx_xvmaddwod_d_wu_w ((v4i64)_1, (v8u32)_2, (v8i32)_3);
4495 /* Assembly instruction format: xd, xj, xk. */
4496 /* Data types in instruction templates: V8SI, V8SI, UV16HI, V16HI. */
4497 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4498 __m256i __lasx_xvmaddwod_w_hu_h (__m256i _1, __m256i _2, __m256i _3)
4500 return (__m256i)__builtin_lasx_xvmaddwod_w_hu_h ((v8i32)_1, (v16u16)_2, (v16i16)_3);
4503 /* Assembly instruction format: xd, xj, xk. */
4504 /* Data types in instruction templates: V16HI, V16HI, UV32QI, V32QI. */
4505 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4506 __m256i __lasx_xvmaddwod_h_bu_b (__m256i _1, __m256i _2, __m256i _3)
4508 return (__m256i)__builtin_lasx_xvmaddwod_h_bu_b ((v16i16)_1, (v32u8)_2, (v32i8)_3);
4511 /* Assembly instruction format: xd, xj, xk. */
4512 /* Data types in instruction templates: V32QI, V32QI, V32QI. */
4513 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4514 __m256i __lasx_xvrotr_b (__m256i _1, __m256i _2)
4516 return (__m256i)__builtin_lasx_xvrotr_b ((v32i8)_1, (v32i8)_2);
4519 /* Assembly instruction format: xd, xj, xk. */
4520 /* Data types in instruction templates: V16HI, V16HI, V16HI. */
4521 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4522 __m256i __lasx_xvrotr_h (__m256i _1, __m256i _2)
4524 return (__m256i)__builtin_lasx_xvrotr_h ((v16i16)_1, (v16i16)_2);
4527 /* Assembly instruction format: xd, xj, xk. */
4528 /* Data types in instruction templates: V8SI, V8SI, V8SI. */
4529 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4530 __m256i __lasx_xvrotr_w (__m256i _1, __m256i _2)
4532 return (__m256i)__builtin_lasx_xvrotr_w ((v8i32)_1, (v8i32)_2);
4535 /* Assembly instruction format: xd, xj, xk. */
4536 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4537 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4538 __m256i __lasx_xvrotr_d (__m256i _1, __m256i _2)
4540 return (__m256i)__builtin_lasx_xvrotr_d ((v4i64)_1, (v4i64)_2);
4543 /* Assembly instruction format: xd, xj, xk. */
4544 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4545 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4546 __m256i __lasx_xvadd_q (__m256i _1, __m256i _2)
4548 return (__m256i)__builtin_lasx_xvadd_q ((v4i64)_1, (v4i64)_2);
4551 /* Assembly instruction format: xd, xj, xk. */
4552 /* Data types in instruction templates: V4DI, V4DI, V4DI. */
4553 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4554 __m256i __lasx_xvsub_q (__m256i _1, __m256i _2)
4556 return (__m256i)__builtin_lasx_xvsub_q ((v4i64)_1, (v4i64)_2);
4559 /* Assembly instruction format: xd, xj, xk. */
4560 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */
4561 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4562 __m256i __lasx_xvaddwev_q_du_d (__m256i _1, __m256i _2)
4564 return (__m256i)__builtin_lasx_xvaddwev_q_du_d ((v4u64)_1, (v4i64)_2);
4567 /* Assembly instruction format: xd, xj, xk. */
4568 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */
4569 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4570 __m256i __lasx_xvaddwod_q_du_d (__m256i _1, __m256i _2)
4572 return (__m256i)__builtin_lasx_xvaddwod_q_du_d ((v4u64)_1, (v4i64)_2);
4575 /* Assembly instruction format: xd, xj, xk. */
4576 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */
4577 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4578 __m256i __lasx_xvmulwev_q_du_d (__m256i _1, __m256i _2)
4580 return (__m256i)__builtin_lasx_xvmulwev_q_du_d ((v4u64)_1, (v4i64)_2);
4583 /* Assembly instruction format: xd, xj, xk. */
4584 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */
4585 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4586 __m256i __lasx_xvmulwod_q_du_d (__m256i _1, __m256i _2)
4588 return (__m256i)__builtin_lasx_xvmulwod_q_du_d ((v4u64)_1, (v4i64)_2);
4591 /* Assembly instruction format: xd, xj. */
4592 /* Data types in instruction templates: V32QI, V32QI. */
4593 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4594 __m256i __lasx_xvmskgez_b (__m256i _1)
4596 return (__m256i)__builtin_lasx_xvmskgez_b ((v32i8)_1);
4599 /* Assembly instruction format: xd, xj. */
4600 /* Data types in instruction templates: V32QI, V32QI. */
4601 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4602 __m256i __lasx_xvmsknz_b (__m256i _1)
4604 return (__m256i)__builtin_lasx_xvmsknz_b ((v32i8)_1);
4607 /* Assembly instruction format: xd, xj. */
4608 /* Data types in instruction templates: V16HI, V32QI. */
4609 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4610 __m256i __lasx_xvexth_h_b (__m256i _1)
4612 return (__m256i)__builtin_lasx_xvexth_h_b ((v32i8)_1);
4615 /* Assembly instruction format: xd, xj. */
4616 /* Data types in instruction templates: V8SI, V16HI. */
4617 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4618 __m256i __lasx_xvexth_w_h (__m256i _1)
4620 return (__m256i)__builtin_lasx_xvexth_w_h ((v16i16)_1);
4623 /* Assembly instruction format: xd, xj. */
4624 /* Data types in instruction templates: V4DI, V8SI. */
4625 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4626 __m256i __lasx_xvexth_d_w (__m256i _1)
4628 return (__m256i)__builtin_lasx_xvexth_d_w ((v8i32)_1);
4631 /* Assembly instruction format: xd, xj. */
4632 /* Data types in instruction templates: V4DI, V4DI. */
4633 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4634 __m256i __lasx_xvexth_q_d (__m256i _1)
4636 return (__m256i)__builtin_lasx_xvexth_q_d ((v4i64)_1);
4639 /* Assembly instruction format: xd, xj. */
4640 /* Data types in instruction templates: UV16HI, UV32QI. */
4641 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4642 __m256i __lasx_xvexth_hu_bu (__m256i _1)
4644 return (__m256i)__builtin_lasx_xvexth_hu_bu ((v32u8)_1);
4647 /* Assembly instruction format: xd, xj. */
4648 /* Data types in instruction templates: UV8SI, UV16HI. */
4649 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4650 __m256i __lasx_xvexth_wu_hu (__m256i _1)
4652 return (__m256i)__builtin_lasx_xvexth_wu_hu ((v16u16)_1);
4655 /* Assembly instruction format: xd, xj. */
4656 /* Data types in instruction templates: UV4DI, UV8SI. */
4657 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4658 __m256i __lasx_xvexth_du_wu (__m256i _1)
4660 return (__m256i)__builtin_lasx_xvexth_du_wu ((v8u32)_1);
4663 /* Assembly instruction format: xd, xj. */
4664 /* Data types in instruction templates: UV4DI, UV4DI. */
4665 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4666 __m256i __lasx_xvexth_qu_du (__m256i _1)
4668 return (__m256i)__builtin_lasx_xvexth_qu_du ((v4u64)_1);
4671 /* Assembly instruction format: xd, xj, ui3. */
4672 /* Data types in instruction templates: V32QI, V32QI, UQI. */
4673 #define __lasx_xvrotri_b(/*__m256i*/ _1, /*ui3*/ _2) \
4674 ((__m256i)__builtin_lasx_xvrotri_b ((v32i8)(_1), (_2)))
4676 /* Assembly instruction format: xd, xj, ui4. */
4677 /* Data types in instruction templates: V16HI, V16HI, UQI. */
4678 #define __lasx_xvrotri_h(/*__m256i*/ _1, /*ui4*/ _2) \
4679 ((__m256i)__builtin_lasx_xvrotri_h ((v16i16)(_1), (_2)))
4681 /* Assembly instruction format: xd, xj, ui5. */
4682 /* Data types in instruction templates: V8SI, V8SI, UQI. */
4683 #define __lasx_xvrotri_w(/*__m256i*/ _1, /*ui5*/ _2) \
4684 ((__m256i)__builtin_lasx_xvrotri_w ((v8i32)(_1), (_2)))
4686 /* Assembly instruction format: xd, xj, ui6. */
4687 /* Data types in instruction templates: V4DI, V4DI, UQI. */
4688 #define __lasx_xvrotri_d(/*__m256i*/ _1, /*ui6*/ _2) \
4689 ((__m256i)__builtin_lasx_xvrotri_d ((v4i64)(_1), (_2)))
4691 /* Assembly instruction format: xd, xj. */
4692 /* Data types in instruction templates: V4DI, V4DI. */
4693 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4694 __m256i __lasx_xvextl_q_d (__m256i _1)
4696 return (__m256i)__builtin_lasx_xvextl_q_d ((v4i64)_1);
4699 /* Assembly instruction format: xd, xj, ui4. */
4700 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4701 #define __lasx_xvsrlni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4702 ((__m256i)__builtin_lasx_xvsrlni_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4704 /* Assembly instruction format: xd, xj, ui5. */
4705 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4706 #define __lasx_xvsrlni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4707 ((__m256i)__builtin_lasx_xvsrlni_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4709 /* Assembly instruction format: xd, xj, ui6. */
4710 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4711 #define __lasx_xvsrlni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4712 ((__m256i)__builtin_lasx_xvsrlni_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4714 /* Assembly instruction format: xd, xj, ui7. */
4715 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4716 #define __lasx_xvsrlni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4717 ((__m256i)__builtin_lasx_xvsrlni_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4719 /* Assembly instruction format: xd, xj, ui4. */
4720 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4721 #define __lasx_xvsrlrni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4722 ((__m256i)__builtin_lasx_xvsrlrni_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4724 /* Assembly instruction format: xd, xj, ui5. */
4725 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4726 #define __lasx_xvsrlrni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4727 ((__m256i)__builtin_lasx_xvsrlrni_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4729 /* Assembly instruction format: xd, xj, ui6. */
4730 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4731 #define __lasx_xvsrlrni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4732 ((__m256i)__builtin_lasx_xvsrlrni_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4734 /* Assembly instruction format: xd, xj, ui7. */
4735 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4736 #define __lasx_xvsrlrni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4737 ((__m256i)__builtin_lasx_xvsrlrni_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4739 /* Assembly instruction format: xd, xj, ui4. */
4740 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4741 #define __lasx_xvssrlni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4742 ((__m256i)__builtin_lasx_xvssrlni_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4744 /* Assembly instruction format: xd, xj, ui5. */
4745 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4746 #define __lasx_xvssrlni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4747 ((__m256i)__builtin_lasx_xvssrlni_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4749 /* Assembly instruction format: xd, xj, ui6. */
4750 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4751 #define __lasx_xvssrlni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4752 ((__m256i)__builtin_lasx_xvssrlni_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4754 /* Assembly instruction format: xd, xj, ui7. */
4755 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4756 #define __lasx_xvssrlni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4757 ((__m256i)__builtin_lasx_xvssrlni_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4759 /* Assembly instruction format: xd, xj, ui4. */
4760 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */
4761 #define __lasx_xvssrlni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4762 ((__m256i)__builtin_lasx_xvssrlni_bu_h ((v32u8)(_1), (v32i8)(_2), (_3)))
4764 /* Assembly instruction format: xd, xj, ui5. */
4765 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */
4766 #define __lasx_xvssrlni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4767 ((__m256i)__builtin_lasx_xvssrlni_hu_w ((v16u16)(_1), (v16i16)(_2), (_3)))
4769 /* Assembly instruction format: xd, xj, ui6. */
4770 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */
4771 #define __lasx_xvssrlni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4772 ((__m256i)__builtin_lasx_xvssrlni_wu_d ((v8u32)(_1), (v8i32)(_2), (_3)))
4774 /* Assembly instruction format: xd, xj, ui7. */
4775 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */
4776 #define __lasx_xvssrlni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4777 ((__m256i)__builtin_lasx_xvssrlni_du_q ((v4u64)(_1), (v4i64)(_2), (_3)))
4779 /* Assembly instruction format: xd, xj, ui4. */
4780 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4781 #define __lasx_xvssrlrni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4782 ((__m256i)__builtin_lasx_xvssrlrni_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4784 /* Assembly instruction format: xd, xj, ui5. */
4785 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4786 #define __lasx_xvssrlrni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4787 ((__m256i)__builtin_lasx_xvssrlrni_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4789 /* Assembly instruction format: xd, xj, ui6. */
4790 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4791 #define __lasx_xvssrlrni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4792 ((__m256i)__builtin_lasx_xvssrlrni_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4794 /* Assembly instruction format: xd, xj, ui7. */
4795 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4796 #define __lasx_xvssrlrni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4797 ((__m256i)__builtin_lasx_xvssrlrni_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4799 /* Assembly instruction format: xd, xj, ui4. */
4800 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */
4801 #define __lasx_xvssrlrni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4802 ((__m256i)__builtin_lasx_xvssrlrni_bu_h ((v32u8)(_1), (v32i8)(_2), (_3)))
4804 /* Assembly instruction format: xd, xj, ui5. */
4805 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */
4806 #define __lasx_xvssrlrni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4807 ((__m256i)__builtin_lasx_xvssrlrni_hu_w ((v16u16)(_1), (v16i16)(_2), (_3)))
4809 /* Assembly instruction format: xd, xj, ui6. */
4810 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */
4811 #define __lasx_xvssrlrni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4812 ((__m256i)__builtin_lasx_xvssrlrni_wu_d ((v8u32)(_1), (v8i32)(_2), (_3)))
4814 /* Assembly instruction format: xd, xj, ui7. */
4815 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */
4816 #define __lasx_xvssrlrni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4817 ((__m256i)__builtin_lasx_xvssrlrni_du_q ((v4u64)(_1), (v4i64)(_2), (_3)))
4819 /* Assembly instruction format: xd, xj, ui4. */
4820 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4821 #define __lasx_xvsrani_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4822 ((__m256i)__builtin_lasx_xvsrani_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4824 /* Assembly instruction format: xd, xj, ui5. */
4825 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4826 #define __lasx_xvsrani_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4827 ((__m256i)__builtin_lasx_xvsrani_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4829 /* Assembly instruction format: xd, xj, ui6. */
4830 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4831 #define __lasx_xvsrani_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4832 ((__m256i)__builtin_lasx_xvsrani_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4834 /* Assembly instruction format: xd, xj, ui7. */
4835 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4836 #define __lasx_xvsrani_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4837 ((__m256i)__builtin_lasx_xvsrani_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4839 /* Assembly instruction format: xd, xj, ui4. */
4840 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4841 #define __lasx_xvsrarni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4842 ((__m256i)__builtin_lasx_xvsrarni_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4844 /* Assembly instruction format: xd, xj, ui5. */
4845 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4846 #define __lasx_xvsrarni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4847 ((__m256i)__builtin_lasx_xvsrarni_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4849 /* Assembly instruction format: xd, xj, ui6. */
4850 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4851 #define __lasx_xvsrarni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4852 ((__m256i)__builtin_lasx_xvsrarni_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4854 /* Assembly instruction format: xd, xj, ui7. */
4855 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4856 #define __lasx_xvsrarni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4857 ((__m256i)__builtin_lasx_xvsrarni_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4859 /* Assembly instruction format: xd, xj, ui4. */
4860 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4861 #define __lasx_xvssrani_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4862 ((__m256i)__builtin_lasx_xvssrani_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4864 /* Assembly instruction format: xd, xj, ui5. */
4865 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4866 #define __lasx_xvssrani_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4867 ((__m256i)__builtin_lasx_xvssrani_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4869 /* Assembly instruction format: xd, xj, ui6. */
4870 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4871 #define __lasx_xvssrani_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4872 ((__m256i)__builtin_lasx_xvssrani_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4874 /* Assembly instruction format: xd, xj, ui7. */
4875 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4876 #define __lasx_xvssrani_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4877 ((__m256i)__builtin_lasx_xvssrani_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4879 /* Assembly instruction format: xd, xj, ui4. */
4880 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */
4881 #define __lasx_xvssrani_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4882 ((__m256i)__builtin_lasx_xvssrani_bu_h ((v32u8)(_1), (v32i8)(_2), (_3)))
4884 /* Assembly instruction format: xd, xj, ui5. */
4885 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */
4886 #define __lasx_xvssrani_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4887 ((__m256i)__builtin_lasx_xvssrani_hu_w ((v16u16)(_1), (v16i16)(_2), (_3)))
4889 /* Assembly instruction format: xd, xj, ui6. */
4890 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */
4891 #define __lasx_xvssrani_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4892 ((__m256i)__builtin_lasx_xvssrani_wu_d ((v8u32)(_1), (v8i32)(_2), (_3)))
4894 /* Assembly instruction format: xd, xj, ui7. */
4895 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */
4896 #define __lasx_xvssrani_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4897 ((__m256i)__builtin_lasx_xvssrani_du_q ((v4u64)(_1), (v4i64)(_2), (_3)))
4899 /* Assembly instruction format: xd, xj, ui4. */
4900 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */
4901 #define __lasx_xvssrarni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4902 ((__m256i)__builtin_lasx_xvssrarni_b_h ((v32i8)(_1), (v32i8)(_2), (_3)))
4904 /* Assembly instruction format: xd, xj, ui5. */
4905 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */
4906 #define __lasx_xvssrarni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4907 ((__m256i)__builtin_lasx_xvssrarni_h_w ((v16i16)(_1), (v16i16)(_2), (_3)))
4909 /* Assembly instruction format: xd, xj, ui6. */
4910 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */
4911 #define __lasx_xvssrarni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4912 ((__m256i)__builtin_lasx_xvssrarni_w_d ((v8i32)(_1), (v8i32)(_2), (_3)))
4914 /* Assembly instruction format: xd, xj, ui7. */
4915 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */
4916 #define __lasx_xvssrarni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4917 ((__m256i)__builtin_lasx_xvssrarni_d_q ((v4i64)(_1), (v4i64)(_2), (_3)))
4919 /* Assembly instruction format: xd, xj, ui4. */
4920 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */
4921 #define __lasx_xvssrarni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \
4922 ((__m256i)__builtin_lasx_xvssrarni_bu_h ((v32u8)(_1), (v32i8)(_2), (_3)))
4924 /* Assembly instruction format: xd, xj, ui5. */
4925 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */
4926 #define __lasx_xvssrarni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \
4927 ((__m256i)__builtin_lasx_xvssrarni_hu_w ((v16u16)(_1), (v16i16)(_2), (_3)))
4929 /* Assembly instruction format: xd, xj, ui6. */
4930 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */
4931 #define __lasx_xvssrarni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \
4932 ((__m256i)__builtin_lasx_xvssrarni_wu_d ((v8u32)(_1), (v8i32)(_2), (_3)))
4934 /* Assembly instruction format: xd, xj, ui7. */
4935 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */
4936 #define __lasx_xvssrarni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \
4937 ((__m256i)__builtin_lasx_xvssrarni_du_q ((v4u64)(_1), (v4i64)(_2), (_3)))
4939 /* Assembly instruction format: cd, xj. */
4940 /* Data types in instruction templates: SI, UV32QI. */
4941 #define __lasx_xbnz_b(/*__m256i*/ _1) \
4942 ((int)__builtin_lasx_xbnz_b ((v32u8)(_1)))
4944 /* Assembly instruction format: cd, xj. */
4945 /* Data types in instruction templates: SI, UV4DI. */
4946 #define __lasx_xbnz_d(/*__m256i*/ _1) \
4947 ((int)__builtin_lasx_xbnz_d ((v4u64)(_1)))
4949 /* Assembly instruction format: cd, xj. */
4950 /* Data types in instruction templates: SI, UV16HI. */
4951 #define __lasx_xbnz_h(/*__m256i*/ _1) \
4952 ((int)__builtin_lasx_xbnz_h ((v16u16)(_1)))
4954 /* Assembly instruction format: cd, xj. */
4955 /* Data types in instruction templates: SI, UV32QI. */
4956 #define __lasx_xbnz_v(/*__m256i*/ _1) \
4957 ((int)__builtin_lasx_xbnz_v ((v32u8)(_1)))
4959 /* Assembly instruction format: cd, xj. */
4960 /* Data types in instruction templates: SI, UV8SI. */
4961 #define __lasx_xbnz_w(/*__m256i*/ _1) \
4962 ((int)__builtin_lasx_xbnz_w ((v8u32)(_1)))
4964 /* Assembly instruction format: cd, xj. */
4965 /* Data types in instruction templates: SI, UV32QI. */
4966 #define __lasx_xbz_b(/*__m256i*/ _1) \
4967 ((int)__builtin_lasx_xbz_b ((v32u8)(_1)))
4969 /* Assembly instruction format: cd, xj. */
4970 /* Data types in instruction templates: SI, UV4DI. */
4971 #define __lasx_xbz_d(/*__m256i*/ _1) \
4972 ((int)__builtin_lasx_xbz_d ((v4u64)(_1)))
4974 /* Assembly instruction format: cd, xj. */
4975 /* Data types in instruction templates: SI, UV16HI. */
4976 #define __lasx_xbz_h(/*__m256i*/ _1) \
4977 ((int)__builtin_lasx_xbz_h ((v16u16)(_1)))
4979 /* Assembly instruction format: cd, xj. */
4980 /* Data types in instruction templates: SI, UV32QI. */
4981 #define __lasx_xbz_v(/*__m256i*/ _1) \
4982 ((int)__builtin_lasx_xbz_v ((v32u8)(_1)))
4984 /* Assembly instruction format: cd, xj. */
4985 /* Data types in instruction templates: SI, UV8SI. */
4986 #define __lasx_xbz_w(/*__m256i*/ _1) \
4987 ((int)__builtin_lasx_xbz_w ((v8u32)(_1)))
4989 /* Assembly instruction format: xd, xj, xk. */
4990 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
4991 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
4992 __m256i __lasx_xvfcmp_caf_d (__m256d _1, __m256d _2)
4994 return (__m256i)__builtin_lasx_xvfcmp_caf_d ((v4f64)_1, (v4f64)_2);
4997 /* Assembly instruction format: xd, xj, xk. */
4998 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
4999 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5000 __m256i __lasx_xvfcmp_caf_s (__m256 _1, __m256 _2)
5002 return (__m256i)__builtin_lasx_xvfcmp_caf_s ((v8f32)_1, (v8f32)_2);
5005 /* Assembly instruction format: xd, xj, xk. */
5006 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5007 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5008 __m256i __lasx_xvfcmp_ceq_d (__m256d _1, __m256d _2)
5010 return (__m256i)__builtin_lasx_xvfcmp_ceq_d ((v4f64)_1, (v4f64)_2);
5013 /* Assembly instruction format: xd, xj, xk. */
5014 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5015 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5016 __m256i __lasx_xvfcmp_ceq_s (__m256 _1, __m256 _2)
5018 return (__m256i)__builtin_lasx_xvfcmp_ceq_s ((v8f32)_1, (v8f32)_2);
5021 /* Assembly instruction format: xd, xj, xk. */
5022 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5023 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5024 __m256i __lasx_xvfcmp_cle_d (__m256d _1, __m256d _2)
5026 return (__m256i)__builtin_lasx_xvfcmp_cle_d ((v4f64)_1, (v4f64)_2);
5029 /* Assembly instruction format: xd, xj, xk. */
5030 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5031 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5032 __m256i __lasx_xvfcmp_cle_s (__m256 _1, __m256 _2)
5034 return (__m256i)__builtin_lasx_xvfcmp_cle_s ((v8f32)_1, (v8f32)_2);
5037 /* Assembly instruction format: xd, xj, xk. */
5038 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5039 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5040 __m256i __lasx_xvfcmp_clt_d (__m256d _1, __m256d _2)
5042 return (__m256i)__builtin_lasx_xvfcmp_clt_d ((v4f64)_1, (v4f64)_2);
5045 /* Assembly instruction format: xd, xj, xk. */
5046 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5047 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5048 __m256i __lasx_xvfcmp_clt_s (__m256 _1, __m256 _2)
5050 return (__m256i)__builtin_lasx_xvfcmp_clt_s ((v8f32)_1, (v8f32)_2);
5053 /* Assembly instruction format: xd, xj, xk. */
5054 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5055 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5056 __m256i __lasx_xvfcmp_cne_d (__m256d _1, __m256d _2)
5058 return (__m256i)__builtin_lasx_xvfcmp_cne_d ((v4f64)_1, (v4f64)_2);
5061 /* Assembly instruction format: xd, xj, xk. */
5062 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5063 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5064 __m256i __lasx_xvfcmp_cne_s (__m256 _1, __m256 _2)
5066 return (__m256i)__builtin_lasx_xvfcmp_cne_s ((v8f32)_1, (v8f32)_2);
5069 /* Assembly instruction format: xd, xj, xk. */
5070 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5071 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5072 __m256i __lasx_xvfcmp_cor_d (__m256d _1, __m256d _2)
5074 return (__m256i)__builtin_lasx_xvfcmp_cor_d ((v4f64)_1, (v4f64)_2);
5077 /* Assembly instruction format: xd, xj, xk. */
5078 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5079 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5080 __m256i __lasx_xvfcmp_cor_s (__m256 _1, __m256 _2)
5082 return (__m256i)__builtin_lasx_xvfcmp_cor_s ((v8f32)_1, (v8f32)_2);
5085 /* Assembly instruction format: xd, xj, xk. */
5086 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5087 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5088 __m256i __lasx_xvfcmp_cueq_d (__m256d _1, __m256d _2)
5090 return (__m256i)__builtin_lasx_xvfcmp_cueq_d ((v4f64)_1, (v4f64)_2);
5093 /* Assembly instruction format: xd, xj, xk. */
5094 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5095 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5096 __m256i __lasx_xvfcmp_cueq_s (__m256 _1, __m256 _2)
5098 return (__m256i)__builtin_lasx_xvfcmp_cueq_s ((v8f32)_1, (v8f32)_2);
5101 /* Assembly instruction format: xd, xj, xk. */
5102 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5103 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5104 __m256i __lasx_xvfcmp_cule_d (__m256d _1, __m256d _2)
5106 return (__m256i)__builtin_lasx_xvfcmp_cule_d ((v4f64)_1, (v4f64)_2);
5109 /* Assembly instruction format: xd, xj, xk. */
5110 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5111 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5112 __m256i __lasx_xvfcmp_cule_s (__m256 _1, __m256 _2)
5114 return (__m256i)__builtin_lasx_xvfcmp_cule_s ((v8f32)_1, (v8f32)_2);
5117 /* Assembly instruction format: xd, xj, xk. */
5118 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5119 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5120 __m256i __lasx_xvfcmp_cult_d (__m256d _1, __m256d _2)
5122 return (__m256i)__builtin_lasx_xvfcmp_cult_d ((v4f64)_1, (v4f64)_2);
5125 /* Assembly instruction format: xd, xj, xk. */
5126 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5127 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5128 __m256i __lasx_xvfcmp_cult_s (__m256 _1, __m256 _2)
5130 return (__m256i)__builtin_lasx_xvfcmp_cult_s ((v8f32)_1, (v8f32)_2);
5133 /* Assembly instruction format: xd, xj, xk. */
5134 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5135 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5136 __m256i __lasx_xvfcmp_cun_d (__m256d _1, __m256d _2)
5138 return (__m256i)__builtin_lasx_xvfcmp_cun_d ((v4f64)_1, (v4f64)_2);
5141 /* Assembly instruction format: xd, xj, xk. */
5142 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5143 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5144 __m256i __lasx_xvfcmp_cune_d (__m256d _1, __m256d _2)
5146 return (__m256i)__builtin_lasx_xvfcmp_cune_d ((v4f64)_1, (v4f64)_2);
5149 /* Assembly instruction format: xd, xj, xk. */
5150 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5151 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5152 __m256i __lasx_xvfcmp_cune_s (__m256 _1, __m256 _2)
5154 return (__m256i)__builtin_lasx_xvfcmp_cune_s ((v8f32)_1, (v8f32)_2);
5157 /* Assembly instruction format: xd, xj, xk. */
5158 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5159 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5160 __m256i __lasx_xvfcmp_cun_s (__m256 _1, __m256 _2)
5162 return (__m256i)__builtin_lasx_xvfcmp_cun_s ((v8f32)_1, (v8f32)_2);
5165 /* Assembly instruction format: xd, xj, xk. */
5166 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5167 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5168 __m256i __lasx_xvfcmp_saf_d (__m256d _1, __m256d _2)
5170 return (__m256i)__builtin_lasx_xvfcmp_saf_d ((v4f64)_1, (v4f64)_2);
5173 /* Assembly instruction format: xd, xj, xk. */
5174 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5175 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5176 __m256i __lasx_xvfcmp_saf_s (__m256 _1, __m256 _2)
5178 return (__m256i)__builtin_lasx_xvfcmp_saf_s ((v8f32)_1, (v8f32)_2);
5181 /* Assembly instruction format: xd, xj, xk. */
5182 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5183 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5184 __m256i __lasx_xvfcmp_seq_d (__m256d _1, __m256d _2)
5186 return (__m256i)__builtin_lasx_xvfcmp_seq_d ((v4f64)_1, (v4f64)_2);
5189 /* Assembly instruction format: xd, xj, xk. */
5190 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5191 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5192 __m256i __lasx_xvfcmp_seq_s (__m256 _1, __m256 _2)
5194 return (__m256i)__builtin_lasx_xvfcmp_seq_s ((v8f32)_1, (v8f32)_2);
5197 /* Assembly instruction format: xd, xj, xk. */
5198 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5199 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5200 __m256i __lasx_xvfcmp_sle_d (__m256d _1, __m256d _2)
5202 return (__m256i)__builtin_lasx_xvfcmp_sle_d ((v4f64)_1, (v4f64)_2);
5205 /* Assembly instruction format: xd, xj, xk. */
5206 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5207 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5208 __m256i __lasx_xvfcmp_sle_s (__m256 _1, __m256 _2)
5210 return (__m256i)__builtin_lasx_xvfcmp_sle_s ((v8f32)_1, (v8f32)_2);
5213 /* Assembly instruction format: xd, xj, xk. */
5214 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5215 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5216 __m256i __lasx_xvfcmp_slt_d (__m256d _1, __m256d _2)
5218 return (__m256i)__builtin_lasx_xvfcmp_slt_d ((v4f64)_1, (v4f64)_2);
5221 /* Assembly instruction format: xd, xj, xk. */
5222 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5223 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5224 __m256i __lasx_xvfcmp_slt_s (__m256 _1, __m256 _2)
5226 return (__m256i)__builtin_lasx_xvfcmp_slt_s ((v8f32)_1, (v8f32)_2);
5229 /* Assembly instruction format: xd, xj, xk. */
5230 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5231 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5232 __m256i __lasx_xvfcmp_sne_d (__m256d _1, __m256d _2)
5234 return (__m256i)__builtin_lasx_xvfcmp_sne_d ((v4f64)_1, (v4f64)_2);
5237 /* Assembly instruction format: xd, xj, xk. */
5238 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5239 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5240 __m256i __lasx_xvfcmp_sne_s (__m256 _1, __m256 _2)
5242 return (__m256i)__builtin_lasx_xvfcmp_sne_s ((v8f32)_1, (v8f32)_2);
5245 /* Assembly instruction format: xd, xj, xk. */
5246 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5247 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5248 __m256i __lasx_xvfcmp_sor_d (__m256d _1, __m256d _2)
5250 return (__m256i)__builtin_lasx_xvfcmp_sor_d ((v4f64)_1, (v4f64)_2);
5253 /* Assembly instruction format: xd, xj, xk. */
5254 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5255 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5256 __m256i __lasx_xvfcmp_sor_s (__m256 _1, __m256 _2)
5258 return (__m256i)__builtin_lasx_xvfcmp_sor_s ((v8f32)_1, (v8f32)_2);
5261 /* Assembly instruction format: xd, xj, xk. */
5262 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5263 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5264 __m256i __lasx_xvfcmp_sueq_d (__m256d _1, __m256d _2)
5266 return (__m256i)__builtin_lasx_xvfcmp_sueq_d ((v4f64)_1, (v4f64)_2);
5269 /* Assembly instruction format: xd, xj, xk. */
5270 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5271 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5272 __m256i __lasx_xvfcmp_sueq_s (__m256 _1, __m256 _2)
5274 return (__m256i)__builtin_lasx_xvfcmp_sueq_s ((v8f32)_1, (v8f32)_2);
5277 /* Assembly instruction format: xd, xj, xk. */
5278 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5279 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5280 __m256i __lasx_xvfcmp_sule_d (__m256d _1, __m256d _2)
5282 return (__m256i)__builtin_lasx_xvfcmp_sule_d ((v4f64)_1, (v4f64)_2);
5285 /* Assembly instruction format: xd, xj, xk. */
5286 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5287 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5288 __m256i __lasx_xvfcmp_sule_s (__m256 _1, __m256 _2)
5290 return (__m256i)__builtin_lasx_xvfcmp_sule_s ((v8f32)_1, (v8f32)_2);
5293 /* Assembly instruction format: xd, xj, xk. */
5294 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5295 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5296 __m256i __lasx_xvfcmp_sult_d (__m256d _1, __m256d _2)
5298 return (__m256i)__builtin_lasx_xvfcmp_sult_d ((v4f64)_1, (v4f64)_2);
5301 /* Assembly instruction format: xd, xj, xk. */
5302 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5303 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5304 __m256i __lasx_xvfcmp_sult_s (__m256 _1, __m256 _2)
5306 return (__m256i)__builtin_lasx_xvfcmp_sult_s ((v8f32)_1, (v8f32)_2);
5309 /* Assembly instruction format: xd, xj, xk. */
5310 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5311 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5312 __m256i __lasx_xvfcmp_sun_d (__m256d _1, __m256d _2)
5314 return (__m256i)__builtin_lasx_xvfcmp_sun_d ((v4f64)_1, (v4f64)_2);
5317 /* Assembly instruction format: xd, xj, xk. */
5318 /* Data types in instruction templates: V4DI, V4DF, V4DF. */
5319 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5320 __m256i __lasx_xvfcmp_sune_d (__m256d _1, __m256d _2)
5322 return (__m256i)__builtin_lasx_xvfcmp_sune_d ((v4f64)_1, (v4f64)_2);
5325 /* Assembly instruction format: xd, xj, xk. */
5326 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5327 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5328 __m256i __lasx_xvfcmp_sune_s (__m256 _1, __m256 _2)
5330 return (__m256i)__builtin_lasx_xvfcmp_sune_s ((v8f32)_1, (v8f32)_2);
5333 /* Assembly instruction format: xd, xj, xk. */
5334 /* Data types in instruction templates: V8SI, V8SF, V8SF. */
5335 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__))
5336 __m256i __lasx_xvfcmp_sun_s (__m256 _1, __m256 _2)
5338 return (__m256i)__builtin_lasx_xvfcmp_sun_s ((v8f32)_1, (v8f32)_2);
5341 /* Assembly instruction format: xd, xj, ui2. */
5342 /* Data types in instruction templates: V4DF, V4DF, UQI. */
5343 #define __lasx_xvpickve_d_f(/*__m256d*/ _1, /*ui2*/ _2) \
5344 ((__m256d)__builtin_lasx_xvpickve_d_f ((v4f64)(_1), (_2)))
5346 /* Assembly instruction format: xd, xj, ui3. */
5347 /* Data types in instruction templates: V8SF, V8SF, UQI. */
5348 #define __lasx_xvpickve_w_f(/*__m256*/ _1, /*ui3*/ _2) \
5349 ((__m256)__builtin_lasx_xvpickve_w_f ((v8f32)(_1), (_2)))
5351 /* Assembly instruction format: xd, si10. */
5352 /* Data types in instruction templates: V32QI, HI. */
5353 #define __lasx_xvrepli_b(/*si10*/ _1) \
5354 ((__m256i)__builtin_lasx_xvrepli_b ((_1)))
5356 /* Assembly instruction format: xd, si10. */
5357 /* Data types in instruction templates: V4DI, HI. */
5358 #define __lasx_xvrepli_d(/*si10*/ _1) \
5359 ((__m256i)__builtin_lasx_xvrepli_d ((_1)))
5361 /* Assembly instruction format: xd, si10. */
5362 /* Data types in instruction templates: V16HI, HI. */
5363 #define __lasx_xvrepli_h(/*si10*/ _1) \
5364 ((__m256i)__builtin_lasx_xvrepli_h ((_1)))
5366 /* Assembly instruction format: xd, si10. */
5367 /* Data types in instruction templates: V8SI, HI. */
5368 #define __lasx_xvrepli_w(/*si10*/ _1) \
5369 ((__m256i)__builtin_lasx_xvrepli_w ((_1)))
5371 #endif /* defined(__loongarch_asx). */
5372 #endif /* _GCC_LOONGSON_ASXINTRIN_H. */