xref: /freebsd/contrib/llvm-project/clang/lib/Headers/lasxintrin.h (revision 7a6dacaca14b62ca4b74406814becb87a3fefac0)
15f757f3fSDimitry Andric /*===------------ lasxintrin.h - LoongArch LASX intrinsics -----------------===
25f757f3fSDimitry Andric  *
35f757f3fSDimitry Andric  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45f757f3fSDimitry Andric  * See https://llvm.org/LICENSE.txt for license information.
55f757f3fSDimitry Andric  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65f757f3fSDimitry Andric  *
75f757f3fSDimitry Andric  *===-----------------------------------------------------------------------===
85f757f3fSDimitry Andric  */
95f757f3fSDimitry Andric 
105f757f3fSDimitry Andric #ifndef _LOONGSON_ASXINTRIN_H
115f757f3fSDimitry Andric #define _LOONGSON_ASXINTRIN_H 1
125f757f3fSDimitry Andric 
135f757f3fSDimitry Andric #if defined(__loongarch_asx)
145f757f3fSDimitry Andric 
155f757f3fSDimitry Andric typedef signed char v32i8 __attribute__((vector_size(32), aligned(32)));
165f757f3fSDimitry Andric typedef signed char v32i8_b __attribute__((vector_size(32), aligned(1)));
175f757f3fSDimitry Andric typedef unsigned char v32u8 __attribute__((vector_size(32), aligned(32)));
185f757f3fSDimitry Andric typedef unsigned char v32u8_b __attribute__((vector_size(32), aligned(1)));
195f757f3fSDimitry Andric typedef short v16i16 __attribute__((vector_size(32), aligned(32)));
205f757f3fSDimitry Andric typedef short v16i16_h __attribute__((vector_size(32), aligned(2)));
215f757f3fSDimitry Andric typedef unsigned short v16u16 __attribute__((vector_size(32), aligned(32)));
225f757f3fSDimitry Andric typedef unsigned short v16u16_h __attribute__((vector_size(32), aligned(2)));
235f757f3fSDimitry Andric typedef int v8i32 __attribute__((vector_size(32), aligned(32)));
245f757f3fSDimitry Andric typedef int v8i32_w __attribute__((vector_size(32), aligned(4)));
255f757f3fSDimitry Andric typedef unsigned int v8u32 __attribute__((vector_size(32), aligned(32)));
265f757f3fSDimitry Andric typedef unsigned int v8u32_w __attribute__((vector_size(32), aligned(4)));
275f757f3fSDimitry Andric typedef long long v4i64 __attribute__((vector_size(32), aligned(32)));
285f757f3fSDimitry Andric typedef long long v4i64_d __attribute__((vector_size(32), aligned(8)));
295f757f3fSDimitry Andric typedef unsigned long long v4u64 __attribute__((vector_size(32), aligned(32)));
305f757f3fSDimitry Andric typedef unsigned long long v4u64_d __attribute__((vector_size(32), aligned(8)));
315f757f3fSDimitry Andric typedef float v8f32 __attribute__((vector_size(32), aligned(32)));
325f757f3fSDimitry Andric typedef float v8f32_w __attribute__((vector_size(32), aligned(4)));
335f757f3fSDimitry Andric typedef double v4f64 __attribute__((vector_size(32), aligned(32)));
345f757f3fSDimitry Andric typedef double v4f64_d __attribute__((vector_size(32), aligned(8)));
355f757f3fSDimitry Andric 
365f757f3fSDimitry Andric typedef double v4f64 __attribute__((vector_size(32), aligned(32)));
375f757f3fSDimitry Andric typedef double v4f64_d __attribute__((vector_size(32), aligned(8)));
385f757f3fSDimitry Andric 
395f757f3fSDimitry Andric typedef float __m256 __attribute__((__vector_size__(32), __may_alias__));
405f757f3fSDimitry Andric typedef long long __m256i __attribute__((__vector_size__(32), __may_alias__));
415f757f3fSDimitry Andric typedef double __m256d __attribute__((__vector_size__(32), __may_alias__));
425f757f3fSDimitry Andric 
435f757f3fSDimitry Andric extern __inline
445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
455f757f3fSDimitry Andric     __lasx_xvsll_b(__m256i _1, __m256i _2) {
465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsll_b((v32i8)_1, (v32i8)_2);
475f757f3fSDimitry Andric }
485f757f3fSDimitry Andric 
495f757f3fSDimitry Andric extern __inline
505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
515f757f3fSDimitry Andric     __lasx_xvsll_h(__m256i _1, __m256i _2) {
525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsll_h((v16i16)_1, (v16i16)_2);
535f757f3fSDimitry Andric }
545f757f3fSDimitry Andric 
555f757f3fSDimitry Andric extern __inline
565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
575f757f3fSDimitry Andric     __lasx_xvsll_w(__m256i _1, __m256i _2) {
585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsll_w((v8i32)_1, (v8i32)_2);
595f757f3fSDimitry Andric }
605f757f3fSDimitry Andric 
615f757f3fSDimitry Andric extern __inline
625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
635f757f3fSDimitry Andric     __lasx_xvsll_d(__m256i _1, __m256i _2) {
645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsll_d((v4i64)_1, (v4i64)_2);
655f757f3fSDimitry Andric }
665f757f3fSDimitry Andric 
675f757f3fSDimitry Andric #define __lasx_xvslli_b(/*__m256i*/ _1, /*ui3*/ _2)                            \
685f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslli_b((v32i8)(_1), (_2)))
695f757f3fSDimitry Andric 
705f757f3fSDimitry Andric #define __lasx_xvslli_h(/*__m256i*/ _1, /*ui4*/ _2)                            \
715f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslli_h((v16i16)(_1), (_2)))
725f757f3fSDimitry Andric 
735f757f3fSDimitry Andric #define __lasx_xvslli_w(/*__m256i*/ _1, /*ui5*/ _2)                            \
745f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslli_w((v8i32)(_1), (_2)))
755f757f3fSDimitry Andric 
765f757f3fSDimitry Andric #define __lasx_xvslli_d(/*__m256i*/ _1, /*ui6*/ _2)                            \
775f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslli_d((v4i64)(_1), (_2)))
785f757f3fSDimitry Andric 
795f757f3fSDimitry Andric extern __inline
805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
815f757f3fSDimitry Andric     __lasx_xvsra_b(__m256i _1, __m256i _2) {
825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsra_b((v32i8)_1, (v32i8)_2);
835f757f3fSDimitry Andric }
845f757f3fSDimitry Andric 
855f757f3fSDimitry Andric extern __inline
865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
875f757f3fSDimitry Andric     __lasx_xvsra_h(__m256i _1, __m256i _2) {
885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsra_h((v16i16)_1, (v16i16)_2);
895f757f3fSDimitry Andric }
905f757f3fSDimitry Andric 
915f757f3fSDimitry Andric extern __inline
925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
935f757f3fSDimitry Andric     __lasx_xvsra_w(__m256i _1, __m256i _2) {
945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsra_w((v8i32)_1, (v8i32)_2);
955f757f3fSDimitry Andric }
965f757f3fSDimitry Andric 
975f757f3fSDimitry Andric extern __inline
985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
995f757f3fSDimitry Andric     __lasx_xvsra_d(__m256i _1, __m256i _2) {
1005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsra_d((v4i64)_1, (v4i64)_2);
1015f757f3fSDimitry Andric }
1025f757f3fSDimitry Andric 
1035f757f3fSDimitry Andric #define __lasx_xvsrai_b(/*__m256i*/ _1, /*ui3*/ _2)                            \
1045f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrai_b((v32i8)(_1), (_2)))
1055f757f3fSDimitry Andric 
1065f757f3fSDimitry Andric #define __lasx_xvsrai_h(/*__m256i*/ _1, /*ui4*/ _2)                            \
1075f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrai_h((v16i16)(_1), (_2)))
1085f757f3fSDimitry Andric 
1095f757f3fSDimitry Andric #define __lasx_xvsrai_w(/*__m256i*/ _1, /*ui5*/ _2)                            \
1105f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrai_w((v8i32)(_1), (_2)))
1115f757f3fSDimitry Andric 
1125f757f3fSDimitry Andric #define __lasx_xvsrai_d(/*__m256i*/ _1, /*ui6*/ _2)                            \
1135f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrai_d((v4i64)(_1), (_2)))
1145f757f3fSDimitry Andric 
1155f757f3fSDimitry Andric extern __inline
1165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1175f757f3fSDimitry Andric     __lasx_xvsrar_b(__m256i _1, __m256i _2) {
1185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrar_b((v32i8)_1, (v32i8)_2);
1195f757f3fSDimitry Andric }
1205f757f3fSDimitry Andric 
1215f757f3fSDimitry Andric extern __inline
1225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1235f757f3fSDimitry Andric     __lasx_xvsrar_h(__m256i _1, __m256i _2) {
1245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrar_h((v16i16)_1, (v16i16)_2);
1255f757f3fSDimitry Andric }
1265f757f3fSDimitry Andric 
1275f757f3fSDimitry Andric extern __inline
1285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1295f757f3fSDimitry Andric     __lasx_xvsrar_w(__m256i _1, __m256i _2) {
1305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrar_w((v8i32)_1, (v8i32)_2);
1315f757f3fSDimitry Andric }
1325f757f3fSDimitry Andric 
1335f757f3fSDimitry Andric extern __inline
1345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1355f757f3fSDimitry Andric     __lasx_xvsrar_d(__m256i _1, __m256i _2) {
1365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrar_d((v4i64)_1, (v4i64)_2);
1375f757f3fSDimitry Andric }
1385f757f3fSDimitry Andric 
1395f757f3fSDimitry Andric #define __lasx_xvsrari_b(/*__m256i*/ _1, /*ui3*/ _2)                           \
1405f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrari_b((v32i8)(_1), (_2)))
1415f757f3fSDimitry Andric 
1425f757f3fSDimitry Andric #define __lasx_xvsrari_h(/*__m256i*/ _1, /*ui4*/ _2)                           \
1435f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrari_h((v16i16)(_1), (_2)))
1445f757f3fSDimitry Andric 
1455f757f3fSDimitry Andric #define __lasx_xvsrari_w(/*__m256i*/ _1, /*ui5*/ _2)                           \
1465f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrari_w((v8i32)(_1), (_2)))
1475f757f3fSDimitry Andric 
1485f757f3fSDimitry Andric #define __lasx_xvsrari_d(/*__m256i*/ _1, /*ui6*/ _2)                           \
1495f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrari_d((v4i64)(_1), (_2)))
1505f757f3fSDimitry Andric 
1515f757f3fSDimitry Andric extern __inline
1525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1535f757f3fSDimitry Andric     __lasx_xvsrl_b(__m256i _1, __m256i _2) {
1545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrl_b((v32i8)_1, (v32i8)_2);
1555f757f3fSDimitry Andric }
1565f757f3fSDimitry Andric 
1575f757f3fSDimitry Andric extern __inline
1585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1595f757f3fSDimitry Andric     __lasx_xvsrl_h(__m256i _1, __m256i _2) {
1605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrl_h((v16i16)_1, (v16i16)_2);
1615f757f3fSDimitry Andric }
1625f757f3fSDimitry Andric 
1635f757f3fSDimitry Andric extern __inline
1645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1655f757f3fSDimitry Andric     __lasx_xvsrl_w(__m256i _1, __m256i _2) {
1665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrl_w((v8i32)_1, (v8i32)_2);
1675f757f3fSDimitry Andric }
1685f757f3fSDimitry Andric 
1695f757f3fSDimitry Andric extern __inline
1705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1715f757f3fSDimitry Andric     __lasx_xvsrl_d(__m256i _1, __m256i _2) {
1725f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrl_d((v4i64)_1, (v4i64)_2);
1735f757f3fSDimitry Andric }
1745f757f3fSDimitry Andric 
1755f757f3fSDimitry Andric #define __lasx_xvsrli_b(/*__m256i*/ _1, /*ui3*/ _2)                            \
1765f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrli_b((v32i8)(_1), (_2)))
1775f757f3fSDimitry Andric 
1785f757f3fSDimitry Andric #define __lasx_xvsrli_h(/*__m256i*/ _1, /*ui4*/ _2)                            \
1795f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrli_h((v16i16)(_1), (_2)))
1805f757f3fSDimitry Andric 
1815f757f3fSDimitry Andric #define __lasx_xvsrli_w(/*__m256i*/ _1, /*ui5*/ _2)                            \
1825f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrli_w((v8i32)(_1), (_2)))
1835f757f3fSDimitry Andric 
1845f757f3fSDimitry Andric #define __lasx_xvsrli_d(/*__m256i*/ _1, /*ui6*/ _2)                            \
1855f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrli_d((v4i64)(_1), (_2)))
1865f757f3fSDimitry Andric 
1875f757f3fSDimitry Andric extern __inline
1885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1895f757f3fSDimitry Andric     __lasx_xvsrlr_b(__m256i _1, __m256i _2) {
1905f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrlr_b((v32i8)_1, (v32i8)_2);
1915f757f3fSDimitry Andric }
1925f757f3fSDimitry Andric 
1935f757f3fSDimitry Andric extern __inline
1945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
1955f757f3fSDimitry Andric     __lasx_xvsrlr_h(__m256i _1, __m256i _2) {
1965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrlr_h((v16i16)_1, (v16i16)_2);
1975f757f3fSDimitry Andric }
1985f757f3fSDimitry Andric 
1995f757f3fSDimitry Andric extern __inline
2005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2015f757f3fSDimitry Andric     __lasx_xvsrlr_w(__m256i _1, __m256i _2) {
2025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrlr_w((v8i32)_1, (v8i32)_2);
2035f757f3fSDimitry Andric }
2045f757f3fSDimitry Andric 
2055f757f3fSDimitry Andric extern __inline
2065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2075f757f3fSDimitry Andric     __lasx_xvsrlr_d(__m256i _1, __m256i _2) {
2085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrlr_d((v4i64)_1, (v4i64)_2);
2095f757f3fSDimitry Andric }
2105f757f3fSDimitry Andric 
2115f757f3fSDimitry Andric #define __lasx_xvsrlri_b(/*__m256i*/ _1, /*ui3*/ _2)                           \
2125f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlri_b((v32i8)(_1), (_2)))
2135f757f3fSDimitry Andric 
2145f757f3fSDimitry Andric #define __lasx_xvsrlri_h(/*__m256i*/ _1, /*ui4*/ _2)                           \
2155f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlri_h((v16i16)(_1), (_2)))
2165f757f3fSDimitry Andric 
2175f757f3fSDimitry Andric #define __lasx_xvsrlri_w(/*__m256i*/ _1, /*ui5*/ _2)                           \
2185f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlri_w((v8i32)(_1), (_2)))
2195f757f3fSDimitry Andric 
2205f757f3fSDimitry Andric #define __lasx_xvsrlri_d(/*__m256i*/ _1, /*ui6*/ _2)                           \
2215f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlri_d((v4i64)(_1), (_2)))
2225f757f3fSDimitry Andric 
2235f757f3fSDimitry Andric extern __inline
2245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2255f757f3fSDimitry Andric     __lasx_xvbitclr_b(__m256i _1, __m256i _2) {
2265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitclr_b((v32u8)_1, (v32u8)_2);
2275f757f3fSDimitry Andric }
2285f757f3fSDimitry Andric 
2295f757f3fSDimitry Andric extern __inline
2305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2315f757f3fSDimitry Andric     __lasx_xvbitclr_h(__m256i _1, __m256i _2) {
2325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitclr_h((v16u16)_1, (v16u16)_2);
2335f757f3fSDimitry Andric }
2345f757f3fSDimitry Andric 
2355f757f3fSDimitry Andric extern __inline
2365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2375f757f3fSDimitry Andric     __lasx_xvbitclr_w(__m256i _1, __m256i _2) {
2385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitclr_w((v8u32)_1, (v8u32)_2);
2395f757f3fSDimitry Andric }
2405f757f3fSDimitry Andric 
2415f757f3fSDimitry Andric extern __inline
2425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2435f757f3fSDimitry Andric     __lasx_xvbitclr_d(__m256i _1, __m256i _2) {
2445f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitclr_d((v4u64)_1, (v4u64)_2);
2455f757f3fSDimitry Andric }
2465f757f3fSDimitry Andric 
2475f757f3fSDimitry Andric #define __lasx_xvbitclri_b(/*__m256i*/ _1, /*ui3*/ _2)                         \
2485f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitclri_b((v32u8)(_1), (_2)))
2495f757f3fSDimitry Andric 
2505f757f3fSDimitry Andric #define __lasx_xvbitclri_h(/*__m256i*/ _1, /*ui4*/ _2)                         \
2515f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitclri_h((v16u16)(_1), (_2)))
2525f757f3fSDimitry Andric 
2535f757f3fSDimitry Andric #define __lasx_xvbitclri_w(/*__m256i*/ _1, /*ui5*/ _2)                         \
2545f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitclri_w((v8u32)(_1), (_2)))
2555f757f3fSDimitry Andric 
2565f757f3fSDimitry Andric #define __lasx_xvbitclri_d(/*__m256i*/ _1, /*ui6*/ _2)                         \
2575f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitclri_d((v4u64)(_1), (_2)))
2585f757f3fSDimitry Andric 
2595f757f3fSDimitry Andric extern __inline
2605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2615f757f3fSDimitry Andric     __lasx_xvbitset_b(__m256i _1, __m256i _2) {
2625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitset_b((v32u8)_1, (v32u8)_2);
2635f757f3fSDimitry Andric }
2645f757f3fSDimitry Andric 
2655f757f3fSDimitry Andric extern __inline
2665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2675f757f3fSDimitry Andric     __lasx_xvbitset_h(__m256i _1, __m256i _2) {
2685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitset_h((v16u16)_1, (v16u16)_2);
2695f757f3fSDimitry Andric }
2705f757f3fSDimitry Andric 
2715f757f3fSDimitry Andric extern __inline
2725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2735f757f3fSDimitry Andric     __lasx_xvbitset_w(__m256i _1, __m256i _2) {
2745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitset_w((v8u32)_1, (v8u32)_2);
2755f757f3fSDimitry Andric }
2765f757f3fSDimitry Andric 
2775f757f3fSDimitry Andric extern __inline
2785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2795f757f3fSDimitry Andric     __lasx_xvbitset_d(__m256i _1, __m256i _2) {
2805f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitset_d((v4u64)_1, (v4u64)_2);
2815f757f3fSDimitry Andric }
2825f757f3fSDimitry Andric 
2835f757f3fSDimitry Andric #define __lasx_xvbitseti_b(/*__m256i*/ _1, /*ui3*/ _2)                         \
2845f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitseti_b((v32u8)(_1), (_2)))
2855f757f3fSDimitry Andric 
2865f757f3fSDimitry Andric #define __lasx_xvbitseti_h(/*__m256i*/ _1, /*ui4*/ _2)                         \
2875f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitseti_h((v16u16)(_1), (_2)))
2885f757f3fSDimitry Andric 
2895f757f3fSDimitry Andric #define __lasx_xvbitseti_w(/*__m256i*/ _1, /*ui5*/ _2)                         \
2905f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitseti_w((v8u32)(_1), (_2)))
2915f757f3fSDimitry Andric 
2925f757f3fSDimitry Andric #define __lasx_xvbitseti_d(/*__m256i*/ _1, /*ui6*/ _2)                         \
2935f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitseti_d((v4u64)(_1), (_2)))
2945f757f3fSDimitry Andric 
2955f757f3fSDimitry Andric extern __inline
2965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
2975f757f3fSDimitry Andric     __lasx_xvbitrev_b(__m256i _1, __m256i _2) {
2985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitrev_b((v32u8)_1, (v32u8)_2);
2995f757f3fSDimitry Andric }
3005f757f3fSDimitry Andric 
3015f757f3fSDimitry Andric extern __inline
3025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3035f757f3fSDimitry Andric     __lasx_xvbitrev_h(__m256i _1, __m256i _2) {
3045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitrev_h((v16u16)_1, (v16u16)_2);
3055f757f3fSDimitry Andric }
3065f757f3fSDimitry Andric 
3075f757f3fSDimitry Andric extern __inline
3085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3095f757f3fSDimitry Andric     __lasx_xvbitrev_w(__m256i _1, __m256i _2) {
3105f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitrev_w((v8u32)_1, (v8u32)_2);
3115f757f3fSDimitry Andric }
3125f757f3fSDimitry Andric 
3135f757f3fSDimitry Andric extern __inline
3145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3155f757f3fSDimitry Andric     __lasx_xvbitrev_d(__m256i _1, __m256i _2) {
3165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitrev_d((v4u64)_1, (v4u64)_2);
3175f757f3fSDimitry Andric }
3185f757f3fSDimitry Andric 
3195f757f3fSDimitry Andric #define __lasx_xvbitrevi_b(/*__m256i*/ _1, /*ui3*/ _2)                         \
3205f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitrevi_b((v32u8)(_1), (_2)))
3215f757f3fSDimitry Andric 
3225f757f3fSDimitry Andric #define __lasx_xvbitrevi_h(/*__m256i*/ _1, /*ui4*/ _2)                         \
3235f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitrevi_h((v16u16)(_1), (_2)))
3245f757f3fSDimitry Andric 
3255f757f3fSDimitry Andric #define __lasx_xvbitrevi_w(/*__m256i*/ _1, /*ui5*/ _2)                         \
3265f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitrevi_w((v8u32)(_1), (_2)))
3275f757f3fSDimitry Andric 
3285f757f3fSDimitry Andric #define __lasx_xvbitrevi_d(/*__m256i*/ _1, /*ui6*/ _2)                         \
3295f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitrevi_d((v4u64)(_1), (_2)))
3305f757f3fSDimitry Andric 
3315f757f3fSDimitry Andric extern __inline
3325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3335f757f3fSDimitry Andric     __lasx_xvadd_b(__m256i _1, __m256i _2) {
3345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadd_b((v32i8)_1, (v32i8)_2);
3355f757f3fSDimitry Andric }
3365f757f3fSDimitry Andric 
3375f757f3fSDimitry Andric extern __inline
3385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3395f757f3fSDimitry Andric     __lasx_xvadd_h(__m256i _1, __m256i _2) {
3405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadd_h((v16i16)_1, (v16i16)_2);
3415f757f3fSDimitry Andric }
3425f757f3fSDimitry Andric 
3435f757f3fSDimitry Andric extern __inline
3445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3455f757f3fSDimitry Andric     __lasx_xvadd_w(__m256i _1, __m256i _2) {
3465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadd_w((v8i32)_1, (v8i32)_2);
3475f757f3fSDimitry Andric }
3485f757f3fSDimitry Andric 
3495f757f3fSDimitry Andric extern __inline
3505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3515f757f3fSDimitry Andric     __lasx_xvadd_d(__m256i _1, __m256i _2) {
3525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadd_d((v4i64)_1, (v4i64)_2);
3535f757f3fSDimitry Andric }
3545f757f3fSDimitry Andric 
3555f757f3fSDimitry Andric #define __lasx_xvaddi_bu(/*__m256i*/ _1, /*ui5*/ _2)                           \
3565f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvaddi_bu((v32i8)(_1), (_2)))
3575f757f3fSDimitry Andric 
3585f757f3fSDimitry Andric #define __lasx_xvaddi_hu(/*__m256i*/ _1, /*ui5*/ _2)                           \
3595f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvaddi_hu((v16i16)(_1), (_2)))
3605f757f3fSDimitry Andric 
3615f757f3fSDimitry Andric #define __lasx_xvaddi_wu(/*__m256i*/ _1, /*ui5*/ _2)                           \
3625f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvaddi_wu((v8i32)(_1), (_2)))
3635f757f3fSDimitry Andric 
3645f757f3fSDimitry Andric #define __lasx_xvaddi_du(/*__m256i*/ _1, /*ui5*/ _2)                           \
3655f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvaddi_du((v4i64)(_1), (_2)))
3665f757f3fSDimitry Andric 
3675f757f3fSDimitry Andric extern __inline
3685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3695f757f3fSDimitry Andric     __lasx_xvsub_b(__m256i _1, __m256i _2) {
3705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsub_b((v32i8)_1, (v32i8)_2);
3715f757f3fSDimitry Andric }
3725f757f3fSDimitry Andric 
3735f757f3fSDimitry Andric extern __inline
3745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3755f757f3fSDimitry Andric     __lasx_xvsub_h(__m256i _1, __m256i _2) {
3765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsub_h((v16i16)_1, (v16i16)_2);
3775f757f3fSDimitry Andric }
3785f757f3fSDimitry Andric 
3795f757f3fSDimitry Andric extern __inline
3805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3815f757f3fSDimitry Andric     __lasx_xvsub_w(__m256i _1, __m256i _2) {
3825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsub_w((v8i32)_1, (v8i32)_2);
3835f757f3fSDimitry Andric }
3845f757f3fSDimitry Andric 
3855f757f3fSDimitry Andric extern __inline
3865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
3875f757f3fSDimitry Andric     __lasx_xvsub_d(__m256i _1, __m256i _2) {
3885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsub_d((v4i64)_1, (v4i64)_2);
3895f757f3fSDimitry Andric }
3905f757f3fSDimitry Andric 
3915f757f3fSDimitry Andric #define __lasx_xvsubi_bu(/*__m256i*/ _1, /*ui5*/ _2)                           \
3925f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsubi_bu((v32i8)(_1), (_2)))
3935f757f3fSDimitry Andric 
3945f757f3fSDimitry Andric #define __lasx_xvsubi_hu(/*__m256i*/ _1, /*ui5*/ _2)                           \
3955f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsubi_hu((v16i16)(_1), (_2)))
3965f757f3fSDimitry Andric 
3975f757f3fSDimitry Andric #define __lasx_xvsubi_wu(/*__m256i*/ _1, /*ui5*/ _2)                           \
3985f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsubi_wu((v8i32)(_1), (_2)))
3995f757f3fSDimitry Andric 
4005f757f3fSDimitry Andric #define __lasx_xvsubi_du(/*__m256i*/ _1, /*ui5*/ _2)                           \
4015f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsubi_du((v4i64)(_1), (_2)))
4025f757f3fSDimitry Andric 
4035f757f3fSDimitry Andric extern __inline
4045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4055f757f3fSDimitry Andric     __lasx_xvmax_b(__m256i _1, __m256i _2) {
4065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_b((v32i8)_1, (v32i8)_2);
4075f757f3fSDimitry Andric }
4085f757f3fSDimitry Andric 
4095f757f3fSDimitry Andric extern __inline
4105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4115f757f3fSDimitry Andric     __lasx_xvmax_h(__m256i _1, __m256i _2) {
4125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_h((v16i16)_1, (v16i16)_2);
4135f757f3fSDimitry Andric }
4145f757f3fSDimitry Andric 
4155f757f3fSDimitry Andric extern __inline
4165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4175f757f3fSDimitry Andric     __lasx_xvmax_w(__m256i _1, __m256i _2) {
4185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_w((v8i32)_1, (v8i32)_2);
4195f757f3fSDimitry Andric }
4205f757f3fSDimitry Andric 
4215f757f3fSDimitry Andric extern __inline
4225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4235f757f3fSDimitry Andric     __lasx_xvmax_d(__m256i _1, __m256i _2) {
4245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_d((v4i64)_1, (v4i64)_2);
4255f757f3fSDimitry Andric }
4265f757f3fSDimitry Andric 
4275f757f3fSDimitry Andric #define __lasx_xvmaxi_b(/*__m256i*/ _1, /*si5*/ _2)                            \
4285f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_b((v32i8)(_1), (_2)))
4295f757f3fSDimitry Andric 
4305f757f3fSDimitry Andric #define __lasx_xvmaxi_h(/*__m256i*/ _1, /*si5*/ _2)                            \
4315f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_h((v16i16)(_1), (_2)))
4325f757f3fSDimitry Andric 
4335f757f3fSDimitry Andric #define __lasx_xvmaxi_w(/*__m256i*/ _1, /*si5*/ _2)                            \
4345f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_w((v8i32)(_1), (_2)))
4355f757f3fSDimitry Andric 
4365f757f3fSDimitry Andric #define __lasx_xvmaxi_d(/*__m256i*/ _1, /*si5*/ _2)                            \
4375f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_d((v4i64)(_1), (_2)))
4385f757f3fSDimitry Andric 
4395f757f3fSDimitry Andric extern __inline
4405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4415f757f3fSDimitry Andric     __lasx_xvmax_bu(__m256i _1, __m256i _2) {
4425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_bu((v32u8)_1, (v32u8)_2);
4435f757f3fSDimitry Andric }
4445f757f3fSDimitry Andric 
4455f757f3fSDimitry Andric extern __inline
4465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4475f757f3fSDimitry Andric     __lasx_xvmax_hu(__m256i _1, __m256i _2) {
4485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_hu((v16u16)_1, (v16u16)_2);
4495f757f3fSDimitry Andric }
4505f757f3fSDimitry Andric 
4515f757f3fSDimitry Andric extern __inline
4525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4535f757f3fSDimitry Andric     __lasx_xvmax_wu(__m256i _1, __m256i _2) {
4545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_wu((v8u32)_1, (v8u32)_2);
4555f757f3fSDimitry Andric }
4565f757f3fSDimitry Andric 
4575f757f3fSDimitry Andric extern __inline
4585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4595f757f3fSDimitry Andric     __lasx_xvmax_du(__m256i _1, __m256i _2) {
4605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmax_du((v4u64)_1, (v4u64)_2);
4615f757f3fSDimitry Andric }
4625f757f3fSDimitry Andric 
4635f757f3fSDimitry Andric #define __lasx_xvmaxi_bu(/*__m256i*/ _1, /*ui5*/ _2)                           \
4645f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_bu((v32u8)(_1), (_2)))
4655f757f3fSDimitry Andric 
4665f757f3fSDimitry Andric #define __lasx_xvmaxi_hu(/*__m256i*/ _1, /*ui5*/ _2)                           \
4675f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_hu((v16u16)(_1), (_2)))
4685f757f3fSDimitry Andric 
4695f757f3fSDimitry Andric #define __lasx_xvmaxi_wu(/*__m256i*/ _1, /*ui5*/ _2)                           \
4705f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_wu((v8u32)(_1), (_2)))
4715f757f3fSDimitry Andric 
4725f757f3fSDimitry Andric #define __lasx_xvmaxi_du(/*__m256i*/ _1, /*ui5*/ _2)                           \
4735f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmaxi_du((v4u64)(_1), (_2)))
4745f757f3fSDimitry Andric 
4755f757f3fSDimitry Andric extern __inline
4765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4775f757f3fSDimitry Andric     __lasx_xvmin_b(__m256i _1, __m256i _2) {
4785f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_b((v32i8)_1, (v32i8)_2);
4795f757f3fSDimitry Andric }
4805f757f3fSDimitry Andric 
4815f757f3fSDimitry Andric extern __inline
4825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4835f757f3fSDimitry Andric     __lasx_xvmin_h(__m256i _1, __m256i _2) {
4845f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_h((v16i16)_1, (v16i16)_2);
4855f757f3fSDimitry Andric }
4865f757f3fSDimitry Andric 
4875f757f3fSDimitry Andric extern __inline
4885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4895f757f3fSDimitry Andric     __lasx_xvmin_w(__m256i _1, __m256i _2) {
4905f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_w((v8i32)_1, (v8i32)_2);
4915f757f3fSDimitry Andric }
4925f757f3fSDimitry Andric 
4935f757f3fSDimitry Andric extern __inline
4945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
4955f757f3fSDimitry Andric     __lasx_xvmin_d(__m256i _1, __m256i _2) {
4965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_d((v4i64)_1, (v4i64)_2);
4975f757f3fSDimitry Andric }
4985f757f3fSDimitry Andric 
4995f757f3fSDimitry Andric #define __lasx_xvmini_b(/*__m256i*/ _1, /*si5*/ _2)                            \
5005f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_b((v32i8)(_1), (_2)))
5015f757f3fSDimitry Andric 
5025f757f3fSDimitry Andric #define __lasx_xvmini_h(/*__m256i*/ _1, /*si5*/ _2)                            \
5035f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_h((v16i16)(_1), (_2)))
5045f757f3fSDimitry Andric 
5055f757f3fSDimitry Andric #define __lasx_xvmini_w(/*__m256i*/ _1, /*si5*/ _2)                            \
5065f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_w((v8i32)(_1), (_2)))
5075f757f3fSDimitry Andric 
5085f757f3fSDimitry Andric #define __lasx_xvmini_d(/*__m256i*/ _1, /*si5*/ _2)                            \
5095f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_d((v4i64)(_1), (_2)))
5105f757f3fSDimitry Andric 
5115f757f3fSDimitry Andric extern __inline
5125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5135f757f3fSDimitry Andric     __lasx_xvmin_bu(__m256i _1, __m256i _2) {
5145f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_bu((v32u8)_1, (v32u8)_2);
5155f757f3fSDimitry Andric }
5165f757f3fSDimitry Andric 
5175f757f3fSDimitry Andric extern __inline
5185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5195f757f3fSDimitry Andric     __lasx_xvmin_hu(__m256i _1, __m256i _2) {
5205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_hu((v16u16)_1, (v16u16)_2);
5215f757f3fSDimitry Andric }
5225f757f3fSDimitry Andric 
5235f757f3fSDimitry Andric extern __inline
5245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5255f757f3fSDimitry Andric     __lasx_xvmin_wu(__m256i _1, __m256i _2) {
5265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_wu((v8u32)_1, (v8u32)_2);
5275f757f3fSDimitry Andric }
5285f757f3fSDimitry Andric 
5295f757f3fSDimitry Andric extern __inline
5305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5315f757f3fSDimitry Andric     __lasx_xvmin_du(__m256i _1, __m256i _2) {
5325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmin_du((v4u64)_1, (v4u64)_2);
5335f757f3fSDimitry Andric }
5345f757f3fSDimitry Andric 
5355f757f3fSDimitry Andric #define __lasx_xvmini_bu(/*__m256i*/ _1, /*ui5*/ _2)                           \
5365f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_bu((v32u8)(_1), (_2)))
5375f757f3fSDimitry Andric 
5385f757f3fSDimitry Andric #define __lasx_xvmini_hu(/*__m256i*/ _1, /*ui5*/ _2)                           \
5395f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_hu((v16u16)(_1), (_2)))
5405f757f3fSDimitry Andric 
5415f757f3fSDimitry Andric #define __lasx_xvmini_wu(/*__m256i*/ _1, /*ui5*/ _2)                           \
5425f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_wu((v8u32)(_1), (_2)))
5435f757f3fSDimitry Andric 
5445f757f3fSDimitry Andric #define __lasx_xvmini_du(/*__m256i*/ _1, /*ui5*/ _2)                           \
5455f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvmini_du((v4u64)(_1), (_2)))
5465f757f3fSDimitry Andric 
5475f757f3fSDimitry Andric extern __inline
5485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5495f757f3fSDimitry Andric     __lasx_xvseq_b(__m256i _1, __m256i _2) {
5505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvseq_b((v32i8)_1, (v32i8)_2);
5515f757f3fSDimitry Andric }
5525f757f3fSDimitry Andric 
5535f757f3fSDimitry Andric extern __inline
5545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5555f757f3fSDimitry Andric     __lasx_xvseq_h(__m256i _1, __m256i _2) {
5565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvseq_h((v16i16)_1, (v16i16)_2);
5575f757f3fSDimitry Andric }
5585f757f3fSDimitry Andric 
5595f757f3fSDimitry Andric extern __inline
5605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5615f757f3fSDimitry Andric     __lasx_xvseq_w(__m256i _1, __m256i _2) {
5625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvseq_w((v8i32)_1, (v8i32)_2);
5635f757f3fSDimitry Andric }
5645f757f3fSDimitry Andric 
5655f757f3fSDimitry Andric extern __inline
5665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5675f757f3fSDimitry Andric     __lasx_xvseq_d(__m256i _1, __m256i _2) {
5685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvseq_d((v4i64)_1, (v4i64)_2);
5695f757f3fSDimitry Andric }
5705f757f3fSDimitry Andric 
5715f757f3fSDimitry Andric #define __lasx_xvseqi_b(/*__m256i*/ _1, /*si5*/ _2)                            \
5725f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvseqi_b((v32i8)(_1), (_2)))
5735f757f3fSDimitry Andric 
5745f757f3fSDimitry Andric #define __lasx_xvseqi_h(/*__m256i*/ _1, /*si5*/ _2)                            \
5755f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvseqi_h((v16i16)(_1), (_2)))
5765f757f3fSDimitry Andric 
5775f757f3fSDimitry Andric #define __lasx_xvseqi_w(/*__m256i*/ _1, /*si5*/ _2)                            \
5785f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvseqi_w((v8i32)(_1), (_2)))
5795f757f3fSDimitry Andric 
5805f757f3fSDimitry Andric #define __lasx_xvseqi_d(/*__m256i*/ _1, /*si5*/ _2)                            \
5815f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvseqi_d((v4i64)(_1), (_2)))
5825f757f3fSDimitry Andric 
5835f757f3fSDimitry Andric extern __inline
5845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5855f757f3fSDimitry Andric     __lasx_xvslt_b(__m256i _1, __m256i _2) {
5865f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_b((v32i8)_1, (v32i8)_2);
5875f757f3fSDimitry Andric }
5885f757f3fSDimitry Andric 
5895f757f3fSDimitry Andric extern __inline
5905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5915f757f3fSDimitry Andric     __lasx_xvslt_h(__m256i _1, __m256i _2) {
5925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_h((v16i16)_1, (v16i16)_2);
5935f757f3fSDimitry Andric }
5945f757f3fSDimitry Andric 
5955f757f3fSDimitry Andric extern __inline
5965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
5975f757f3fSDimitry Andric     __lasx_xvslt_w(__m256i _1, __m256i _2) {
5985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_w((v8i32)_1, (v8i32)_2);
5995f757f3fSDimitry Andric }
6005f757f3fSDimitry Andric 
6015f757f3fSDimitry Andric extern __inline
6025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6035f757f3fSDimitry Andric     __lasx_xvslt_d(__m256i _1, __m256i _2) {
6045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_d((v4i64)_1, (v4i64)_2);
6055f757f3fSDimitry Andric }
6065f757f3fSDimitry Andric 
6075f757f3fSDimitry Andric #define __lasx_xvslti_b(/*__m256i*/ _1, /*si5*/ _2)                            \
6085f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_b((v32i8)(_1), (_2)))
6095f757f3fSDimitry Andric 
6105f757f3fSDimitry Andric #define __lasx_xvslti_h(/*__m256i*/ _1, /*si5*/ _2)                            \
6115f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_h((v16i16)(_1), (_2)))
6125f757f3fSDimitry Andric 
6135f757f3fSDimitry Andric #define __lasx_xvslti_w(/*__m256i*/ _1, /*si5*/ _2)                            \
6145f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_w((v8i32)(_1), (_2)))
6155f757f3fSDimitry Andric 
6165f757f3fSDimitry Andric #define __lasx_xvslti_d(/*__m256i*/ _1, /*si5*/ _2)                            \
6175f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_d((v4i64)(_1), (_2)))
6185f757f3fSDimitry Andric 
6195f757f3fSDimitry Andric extern __inline
6205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6215f757f3fSDimitry Andric     __lasx_xvslt_bu(__m256i _1, __m256i _2) {
6225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_bu((v32u8)_1, (v32u8)_2);
6235f757f3fSDimitry Andric }
6245f757f3fSDimitry Andric 
6255f757f3fSDimitry Andric extern __inline
6265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6275f757f3fSDimitry Andric     __lasx_xvslt_hu(__m256i _1, __m256i _2) {
6285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_hu((v16u16)_1, (v16u16)_2);
6295f757f3fSDimitry Andric }
6305f757f3fSDimitry Andric 
6315f757f3fSDimitry Andric extern __inline
6325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6335f757f3fSDimitry Andric     __lasx_xvslt_wu(__m256i _1, __m256i _2) {
6345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_wu((v8u32)_1, (v8u32)_2);
6355f757f3fSDimitry Andric }
6365f757f3fSDimitry Andric 
6375f757f3fSDimitry Andric extern __inline
6385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6395f757f3fSDimitry Andric     __lasx_xvslt_du(__m256i _1, __m256i _2) {
6405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvslt_du((v4u64)_1, (v4u64)_2);
6415f757f3fSDimitry Andric }
6425f757f3fSDimitry Andric 
6435f757f3fSDimitry Andric #define __lasx_xvslti_bu(/*__m256i*/ _1, /*ui5*/ _2)                           \
6445f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_bu((v32u8)(_1), (_2)))
6455f757f3fSDimitry Andric 
6465f757f3fSDimitry Andric #define __lasx_xvslti_hu(/*__m256i*/ _1, /*ui5*/ _2)                           \
6475f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_hu((v16u16)(_1), (_2)))
6485f757f3fSDimitry Andric 
6495f757f3fSDimitry Andric #define __lasx_xvslti_wu(/*__m256i*/ _1, /*ui5*/ _2)                           \
6505f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_wu((v8u32)(_1), (_2)))
6515f757f3fSDimitry Andric 
6525f757f3fSDimitry Andric #define __lasx_xvslti_du(/*__m256i*/ _1, /*ui5*/ _2)                           \
6535f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslti_du((v4u64)(_1), (_2)))
6545f757f3fSDimitry Andric 
6555f757f3fSDimitry Andric extern __inline
6565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6575f757f3fSDimitry Andric     __lasx_xvsle_b(__m256i _1, __m256i _2) {
6585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_b((v32i8)_1, (v32i8)_2);
6595f757f3fSDimitry Andric }
6605f757f3fSDimitry Andric 
6615f757f3fSDimitry Andric extern __inline
6625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6635f757f3fSDimitry Andric     __lasx_xvsle_h(__m256i _1, __m256i _2) {
6645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_h((v16i16)_1, (v16i16)_2);
6655f757f3fSDimitry Andric }
6665f757f3fSDimitry Andric 
6675f757f3fSDimitry Andric extern __inline
6685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6695f757f3fSDimitry Andric     __lasx_xvsle_w(__m256i _1, __m256i _2) {
6705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_w((v8i32)_1, (v8i32)_2);
6715f757f3fSDimitry Andric }
6725f757f3fSDimitry Andric 
6735f757f3fSDimitry Andric extern __inline
6745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6755f757f3fSDimitry Andric     __lasx_xvsle_d(__m256i _1, __m256i _2) {
6765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_d((v4i64)_1, (v4i64)_2);
6775f757f3fSDimitry Andric }
6785f757f3fSDimitry Andric 
6795f757f3fSDimitry Andric #define __lasx_xvslei_b(/*__m256i*/ _1, /*si5*/ _2)                            \
6805f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_b((v32i8)(_1), (_2)))
6815f757f3fSDimitry Andric 
6825f757f3fSDimitry Andric #define __lasx_xvslei_h(/*__m256i*/ _1, /*si5*/ _2)                            \
6835f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_h((v16i16)(_1), (_2)))
6845f757f3fSDimitry Andric 
6855f757f3fSDimitry Andric #define __lasx_xvslei_w(/*__m256i*/ _1, /*si5*/ _2)                            \
6865f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_w((v8i32)(_1), (_2)))
6875f757f3fSDimitry Andric 
6885f757f3fSDimitry Andric #define __lasx_xvslei_d(/*__m256i*/ _1, /*si5*/ _2)                            \
6895f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_d((v4i64)(_1), (_2)))
6905f757f3fSDimitry Andric 
6915f757f3fSDimitry Andric extern __inline
6925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6935f757f3fSDimitry Andric     __lasx_xvsle_bu(__m256i _1, __m256i _2) {
6945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_bu((v32u8)_1, (v32u8)_2);
6955f757f3fSDimitry Andric }
6965f757f3fSDimitry Andric 
6975f757f3fSDimitry Andric extern __inline
6985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
6995f757f3fSDimitry Andric     __lasx_xvsle_hu(__m256i _1, __m256i _2) {
7005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_hu((v16u16)_1, (v16u16)_2);
7015f757f3fSDimitry Andric }
7025f757f3fSDimitry Andric 
7035f757f3fSDimitry Andric extern __inline
7045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7055f757f3fSDimitry Andric     __lasx_xvsle_wu(__m256i _1, __m256i _2) {
7065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_wu((v8u32)_1, (v8u32)_2);
7075f757f3fSDimitry Andric }
7085f757f3fSDimitry Andric 
7095f757f3fSDimitry Andric extern __inline
7105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7115f757f3fSDimitry Andric     __lasx_xvsle_du(__m256i _1, __m256i _2) {
7125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsle_du((v4u64)_1, (v4u64)_2);
7135f757f3fSDimitry Andric }
7145f757f3fSDimitry Andric 
7155f757f3fSDimitry Andric #define __lasx_xvslei_bu(/*__m256i*/ _1, /*ui5*/ _2)                           \
7165f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_bu((v32u8)(_1), (_2)))
7175f757f3fSDimitry Andric 
7185f757f3fSDimitry Andric #define __lasx_xvslei_hu(/*__m256i*/ _1, /*ui5*/ _2)                           \
7195f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_hu((v16u16)(_1), (_2)))
7205f757f3fSDimitry Andric 
7215f757f3fSDimitry Andric #define __lasx_xvslei_wu(/*__m256i*/ _1, /*ui5*/ _2)                           \
7225f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_wu((v8u32)(_1), (_2)))
7235f757f3fSDimitry Andric 
7245f757f3fSDimitry Andric #define __lasx_xvslei_du(/*__m256i*/ _1, /*ui5*/ _2)                           \
7255f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvslei_du((v4u64)(_1), (_2)))
7265f757f3fSDimitry Andric 
7275f757f3fSDimitry Andric #define __lasx_xvsat_b(/*__m256i*/ _1, /*ui3*/ _2)                             \
7285f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_b((v32i8)(_1), (_2)))
7295f757f3fSDimitry Andric 
7305f757f3fSDimitry Andric #define __lasx_xvsat_h(/*__m256i*/ _1, /*ui4*/ _2)                             \
7315f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_h((v16i16)(_1), (_2)))
7325f757f3fSDimitry Andric 
7335f757f3fSDimitry Andric #define __lasx_xvsat_w(/*__m256i*/ _1, /*ui5*/ _2)                             \
7345f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_w((v8i32)(_1), (_2)))
7355f757f3fSDimitry Andric 
7365f757f3fSDimitry Andric #define __lasx_xvsat_d(/*__m256i*/ _1, /*ui6*/ _2)                             \
7375f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_d((v4i64)(_1), (_2)))
7385f757f3fSDimitry Andric 
7395f757f3fSDimitry Andric #define __lasx_xvsat_bu(/*__m256i*/ _1, /*ui3*/ _2)                            \
7405f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_bu((v32u8)(_1), (_2)))
7415f757f3fSDimitry Andric 
7425f757f3fSDimitry Andric #define __lasx_xvsat_hu(/*__m256i*/ _1, /*ui4*/ _2)                            \
7435f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_hu((v16u16)(_1), (_2)))
7445f757f3fSDimitry Andric 
7455f757f3fSDimitry Andric #define __lasx_xvsat_wu(/*__m256i*/ _1, /*ui5*/ _2)                            \
7465f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_wu((v8u32)(_1), (_2)))
7475f757f3fSDimitry Andric 
7485f757f3fSDimitry Andric #define __lasx_xvsat_du(/*__m256i*/ _1, /*ui6*/ _2)                            \
7495f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsat_du((v4u64)(_1), (_2)))
7505f757f3fSDimitry Andric 
7515f757f3fSDimitry Andric extern __inline
7525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7535f757f3fSDimitry Andric     __lasx_xvadda_b(__m256i _1, __m256i _2) {
7545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadda_b((v32i8)_1, (v32i8)_2);
7555f757f3fSDimitry Andric }
7565f757f3fSDimitry Andric 
7575f757f3fSDimitry Andric extern __inline
7585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7595f757f3fSDimitry Andric     __lasx_xvadda_h(__m256i _1, __m256i _2) {
7605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadda_h((v16i16)_1, (v16i16)_2);
7615f757f3fSDimitry Andric }
7625f757f3fSDimitry Andric 
7635f757f3fSDimitry Andric extern __inline
7645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7655f757f3fSDimitry Andric     __lasx_xvadda_w(__m256i _1, __m256i _2) {
7665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadda_w((v8i32)_1, (v8i32)_2);
7675f757f3fSDimitry Andric }
7685f757f3fSDimitry Andric 
7695f757f3fSDimitry Andric extern __inline
7705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7715f757f3fSDimitry Andric     __lasx_xvadda_d(__m256i _1, __m256i _2) {
7725f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadda_d((v4i64)_1, (v4i64)_2);
7735f757f3fSDimitry Andric }
7745f757f3fSDimitry Andric 
7755f757f3fSDimitry Andric extern __inline
7765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7775f757f3fSDimitry Andric     __lasx_xvsadd_b(__m256i _1, __m256i _2) {
7785f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_b((v32i8)_1, (v32i8)_2);
7795f757f3fSDimitry Andric }
7805f757f3fSDimitry Andric 
7815f757f3fSDimitry Andric extern __inline
7825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7835f757f3fSDimitry Andric     __lasx_xvsadd_h(__m256i _1, __m256i _2) {
7845f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_h((v16i16)_1, (v16i16)_2);
7855f757f3fSDimitry Andric }
7865f757f3fSDimitry Andric 
7875f757f3fSDimitry Andric extern __inline
7885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7895f757f3fSDimitry Andric     __lasx_xvsadd_w(__m256i _1, __m256i _2) {
7905f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_w((v8i32)_1, (v8i32)_2);
7915f757f3fSDimitry Andric }
7925f757f3fSDimitry Andric 
7935f757f3fSDimitry Andric extern __inline
7945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
7955f757f3fSDimitry Andric     __lasx_xvsadd_d(__m256i _1, __m256i _2) {
7965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_d((v4i64)_1, (v4i64)_2);
7975f757f3fSDimitry Andric }
7985f757f3fSDimitry Andric 
7995f757f3fSDimitry Andric extern __inline
8005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8015f757f3fSDimitry Andric     __lasx_xvsadd_bu(__m256i _1, __m256i _2) {
8025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_bu((v32u8)_1, (v32u8)_2);
8035f757f3fSDimitry Andric }
8045f757f3fSDimitry Andric 
8055f757f3fSDimitry Andric extern __inline
8065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8075f757f3fSDimitry Andric     __lasx_xvsadd_hu(__m256i _1, __m256i _2) {
8085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_hu((v16u16)_1, (v16u16)_2);
8095f757f3fSDimitry Andric }
8105f757f3fSDimitry Andric 
8115f757f3fSDimitry Andric extern __inline
8125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8135f757f3fSDimitry Andric     __lasx_xvsadd_wu(__m256i _1, __m256i _2) {
8145f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_wu((v8u32)_1, (v8u32)_2);
8155f757f3fSDimitry Andric }
8165f757f3fSDimitry Andric 
8175f757f3fSDimitry Andric extern __inline
8185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8195f757f3fSDimitry Andric     __lasx_xvsadd_du(__m256i _1, __m256i _2) {
8205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsadd_du((v4u64)_1, (v4u64)_2);
8215f757f3fSDimitry Andric }
8225f757f3fSDimitry Andric 
8235f757f3fSDimitry Andric extern __inline
8245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8255f757f3fSDimitry Andric     __lasx_xvavg_b(__m256i _1, __m256i _2) {
8265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_b((v32i8)_1, (v32i8)_2);
8275f757f3fSDimitry Andric }
8285f757f3fSDimitry Andric 
8295f757f3fSDimitry Andric extern __inline
8305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8315f757f3fSDimitry Andric     __lasx_xvavg_h(__m256i _1, __m256i _2) {
8325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_h((v16i16)_1, (v16i16)_2);
8335f757f3fSDimitry Andric }
8345f757f3fSDimitry Andric 
8355f757f3fSDimitry Andric extern __inline
8365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8375f757f3fSDimitry Andric     __lasx_xvavg_w(__m256i _1, __m256i _2) {
8385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_w((v8i32)_1, (v8i32)_2);
8395f757f3fSDimitry Andric }
8405f757f3fSDimitry Andric 
8415f757f3fSDimitry Andric extern __inline
8425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8435f757f3fSDimitry Andric     __lasx_xvavg_d(__m256i _1, __m256i _2) {
8445f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_d((v4i64)_1, (v4i64)_2);
8455f757f3fSDimitry Andric }
8465f757f3fSDimitry Andric 
8475f757f3fSDimitry Andric extern __inline
8485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8495f757f3fSDimitry Andric     __lasx_xvavg_bu(__m256i _1, __m256i _2) {
8505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_bu((v32u8)_1, (v32u8)_2);
8515f757f3fSDimitry Andric }
8525f757f3fSDimitry Andric 
8535f757f3fSDimitry Andric extern __inline
8545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8555f757f3fSDimitry Andric     __lasx_xvavg_hu(__m256i _1, __m256i _2) {
8565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_hu((v16u16)_1, (v16u16)_2);
8575f757f3fSDimitry Andric }
8585f757f3fSDimitry Andric 
8595f757f3fSDimitry Andric extern __inline
8605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8615f757f3fSDimitry Andric     __lasx_xvavg_wu(__m256i _1, __m256i _2) {
8625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_wu((v8u32)_1, (v8u32)_2);
8635f757f3fSDimitry Andric }
8645f757f3fSDimitry Andric 
8655f757f3fSDimitry Andric extern __inline
8665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8675f757f3fSDimitry Andric     __lasx_xvavg_du(__m256i _1, __m256i _2) {
8685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavg_du((v4u64)_1, (v4u64)_2);
8695f757f3fSDimitry Andric }
8705f757f3fSDimitry Andric 
8715f757f3fSDimitry Andric extern __inline
8725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8735f757f3fSDimitry Andric     __lasx_xvavgr_b(__m256i _1, __m256i _2) {
8745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_b((v32i8)_1, (v32i8)_2);
8755f757f3fSDimitry Andric }
8765f757f3fSDimitry Andric 
8775f757f3fSDimitry Andric extern __inline
8785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8795f757f3fSDimitry Andric     __lasx_xvavgr_h(__m256i _1, __m256i _2) {
8805f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_h((v16i16)_1, (v16i16)_2);
8815f757f3fSDimitry Andric }
8825f757f3fSDimitry Andric 
8835f757f3fSDimitry Andric extern __inline
8845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8855f757f3fSDimitry Andric     __lasx_xvavgr_w(__m256i _1, __m256i _2) {
8865f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_w((v8i32)_1, (v8i32)_2);
8875f757f3fSDimitry Andric }
8885f757f3fSDimitry Andric 
8895f757f3fSDimitry Andric extern __inline
8905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8915f757f3fSDimitry Andric     __lasx_xvavgr_d(__m256i _1, __m256i _2) {
8925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_d((v4i64)_1, (v4i64)_2);
8935f757f3fSDimitry Andric }
8945f757f3fSDimitry Andric 
8955f757f3fSDimitry Andric extern __inline
8965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
8975f757f3fSDimitry Andric     __lasx_xvavgr_bu(__m256i _1, __m256i _2) {
8985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_bu((v32u8)_1, (v32u8)_2);
8995f757f3fSDimitry Andric }
9005f757f3fSDimitry Andric 
9015f757f3fSDimitry Andric extern __inline
9025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9035f757f3fSDimitry Andric     __lasx_xvavgr_hu(__m256i _1, __m256i _2) {
9045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_hu((v16u16)_1, (v16u16)_2);
9055f757f3fSDimitry Andric }
9065f757f3fSDimitry Andric 
9075f757f3fSDimitry Andric extern __inline
9085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9095f757f3fSDimitry Andric     __lasx_xvavgr_wu(__m256i _1, __m256i _2) {
9105f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_wu((v8u32)_1, (v8u32)_2);
9115f757f3fSDimitry Andric }
9125f757f3fSDimitry Andric 
9135f757f3fSDimitry Andric extern __inline
9145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9155f757f3fSDimitry Andric     __lasx_xvavgr_du(__m256i _1, __m256i _2) {
9165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvavgr_du((v4u64)_1, (v4u64)_2);
9175f757f3fSDimitry Andric }
9185f757f3fSDimitry Andric 
9195f757f3fSDimitry Andric extern __inline
9205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9215f757f3fSDimitry Andric     __lasx_xvssub_b(__m256i _1, __m256i _2) {
9225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_b((v32i8)_1, (v32i8)_2);
9235f757f3fSDimitry Andric }
9245f757f3fSDimitry Andric 
9255f757f3fSDimitry Andric extern __inline
9265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9275f757f3fSDimitry Andric     __lasx_xvssub_h(__m256i _1, __m256i _2) {
9285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_h((v16i16)_1, (v16i16)_2);
9295f757f3fSDimitry Andric }
9305f757f3fSDimitry Andric 
9315f757f3fSDimitry Andric extern __inline
9325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9335f757f3fSDimitry Andric     __lasx_xvssub_w(__m256i _1, __m256i _2) {
9345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_w((v8i32)_1, (v8i32)_2);
9355f757f3fSDimitry Andric }
9365f757f3fSDimitry Andric 
9375f757f3fSDimitry Andric extern __inline
9385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9395f757f3fSDimitry Andric     __lasx_xvssub_d(__m256i _1, __m256i _2) {
9405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_d((v4i64)_1, (v4i64)_2);
9415f757f3fSDimitry Andric }
9425f757f3fSDimitry Andric 
9435f757f3fSDimitry Andric extern __inline
9445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9455f757f3fSDimitry Andric     __lasx_xvssub_bu(__m256i _1, __m256i _2) {
9465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_bu((v32u8)_1, (v32u8)_2);
9475f757f3fSDimitry Andric }
9485f757f3fSDimitry Andric 
9495f757f3fSDimitry Andric extern __inline
9505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9515f757f3fSDimitry Andric     __lasx_xvssub_hu(__m256i _1, __m256i _2) {
9525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_hu((v16u16)_1, (v16u16)_2);
9535f757f3fSDimitry Andric }
9545f757f3fSDimitry Andric 
9555f757f3fSDimitry Andric extern __inline
9565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9575f757f3fSDimitry Andric     __lasx_xvssub_wu(__m256i _1, __m256i _2) {
9585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_wu((v8u32)_1, (v8u32)_2);
9595f757f3fSDimitry Andric }
9605f757f3fSDimitry Andric 
9615f757f3fSDimitry Andric extern __inline
9625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9635f757f3fSDimitry Andric     __lasx_xvssub_du(__m256i _1, __m256i _2) {
9645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssub_du((v4u64)_1, (v4u64)_2);
9655f757f3fSDimitry Andric }
9665f757f3fSDimitry Andric 
9675f757f3fSDimitry Andric extern __inline
9685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9695f757f3fSDimitry Andric     __lasx_xvabsd_b(__m256i _1, __m256i _2) {
9705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_b((v32i8)_1, (v32i8)_2);
9715f757f3fSDimitry Andric }
9725f757f3fSDimitry Andric 
9735f757f3fSDimitry Andric extern __inline
9745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9755f757f3fSDimitry Andric     __lasx_xvabsd_h(__m256i _1, __m256i _2) {
9765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_h((v16i16)_1, (v16i16)_2);
9775f757f3fSDimitry Andric }
9785f757f3fSDimitry Andric 
9795f757f3fSDimitry Andric extern __inline
9805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9815f757f3fSDimitry Andric     __lasx_xvabsd_w(__m256i _1, __m256i _2) {
9825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_w((v8i32)_1, (v8i32)_2);
9835f757f3fSDimitry Andric }
9845f757f3fSDimitry Andric 
9855f757f3fSDimitry Andric extern __inline
9865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9875f757f3fSDimitry Andric     __lasx_xvabsd_d(__m256i _1, __m256i _2) {
9885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_d((v4i64)_1, (v4i64)_2);
9895f757f3fSDimitry Andric }
9905f757f3fSDimitry Andric 
9915f757f3fSDimitry Andric extern __inline
9925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9935f757f3fSDimitry Andric     __lasx_xvabsd_bu(__m256i _1, __m256i _2) {
9945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_bu((v32u8)_1, (v32u8)_2);
9955f757f3fSDimitry Andric }
9965f757f3fSDimitry Andric 
9975f757f3fSDimitry Andric extern __inline
9985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
9995f757f3fSDimitry Andric     __lasx_xvabsd_hu(__m256i _1, __m256i _2) {
10005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_hu((v16u16)_1, (v16u16)_2);
10015f757f3fSDimitry Andric }
10025f757f3fSDimitry Andric 
10035f757f3fSDimitry Andric extern __inline
10045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10055f757f3fSDimitry Andric     __lasx_xvabsd_wu(__m256i _1, __m256i _2) {
10065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_wu((v8u32)_1, (v8u32)_2);
10075f757f3fSDimitry Andric }
10085f757f3fSDimitry Andric 
10095f757f3fSDimitry Andric extern __inline
10105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10115f757f3fSDimitry Andric     __lasx_xvabsd_du(__m256i _1, __m256i _2) {
10125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvabsd_du((v4u64)_1, (v4u64)_2);
10135f757f3fSDimitry Andric }
10145f757f3fSDimitry Andric 
10155f757f3fSDimitry Andric extern __inline
10165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10175f757f3fSDimitry Andric     __lasx_xvmul_b(__m256i _1, __m256i _2) {
10185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmul_b((v32i8)_1, (v32i8)_2);
10195f757f3fSDimitry Andric }
10205f757f3fSDimitry Andric 
10215f757f3fSDimitry Andric extern __inline
10225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10235f757f3fSDimitry Andric     __lasx_xvmul_h(__m256i _1, __m256i _2) {
10245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmul_h((v16i16)_1, (v16i16)_2);
10255f757f3fSDimitry Andric }
10265f757f3fSDimitry Andric 
10275f757f3fSDimitry Andric extern __inline
10285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10295f757f3fSDimitry Andric     __lasx_xvmul_w(__m256i _1, __m256i _2) {
10305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmul_w((v8i32)_1, (v8i32)_2);
10315f757f3fSDimitry Andric }
10325f757f3fSDimitry Andric 
10335f757f3fSDimitry Andric extern __inline
10345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10355f757f3fSDimitry Andric     __lasx_xvmul_d(__m256i _1, __m256i _2) {
10365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmul_d((v4i64)_1, (v4i64)_2);
10375f757f3fSDimitry Andric }
10385f757f3fSDimitry Andric 
10395f757f3fSDimitry Andric extern __inline
10405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10415f757f3fSDimitry Andric     __lasx_xvmadd_b(__m256i _1, __m256i _2, __m256i _3) {
10425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmadd_b((v32i8)_1, (v32i8)_2, (v32i8)_3);
10435f757f3fSDimitry Andric }
10445f757f3fSDimitry Andric 
10455f757f3fSDimitry Andric extern __inline
10465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10475f757f3fSDimitry Andric     __lasx_xvmadd_h(__m256i _1, __m256i _2, __m256i _3) {
10485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmadd_h((v16i16)_1, (v16i16)_2, (v16i16)_3);
10495f757f3fSDimitry Andric }
10505f757f3fSDimitry Andric 
10515f757f3fSDimitry Andric extern __inline
10525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10535f757f3fSDimitry Andric     __lasx_xvmadd_w(__m256i _1, __m256i _2, __m256i _3) {
10545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmadd_w((v8i32)_1, (v8i32)_2, (v8i32)_3);
10555f757f3fSDimitry Andric }
10565f757f3fSDimitry Andric 
10575f757f3fSDimitry Andric extern __inline
10585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10595f757f3fSDimitry Andric     __lasx_xvmadd_d(__m256i _1, __m256i _2, __m256i _3) {
10605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmadd_d((v4i64)_1, (v4i64)_2, (v4i64)_3);
10615f757f3fSDimitry Andric }
10625f757f3fSDimitry Andric 
10635f757f3fSDimitry Andric extern __inline
10645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10655f757f3fSDimitry Andric     __lasx_xvmsub_b(__m256i _1, __m256i _2, __m256i _3) {
10665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmsub_b((v32i8)_1, (v32i8)_2, (v32i8)_3);
10675f757f3fSDimitry Andric }
10685f757f3fSDimitry Andric 
10695f757f3fSDimitry Andric extern __inline
10705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10715f757f3fSDimitry Andric     __lasx_xvmsub_h(__m256i _1, __m256i _2, __m256i _3) {
10725f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmsub_h((v16i16)_1, (v16i16)_2, (v16i16)_3);
10735f757f3fSDimitry Andric }
10745f757f3fSDimitry Andric 
10755f757f3fSDimitry Andric extern __inline
10765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10775f757f3fSDimitry Andric     __lasx_xvmsub_w(__m256i _1, __m256i _2, __m256i _3) {
10785f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmsub_w((v8i32)_1, (v8i32)_2, (v8i32)_3);
10795f757f3fSDimitry Andric }
10805f757f3fSDimitry Andric 
10815f757f3fSDimitry Andric extern __inline
10825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10835f757f3fSDimitry Andric     __lasx_xvmsub_d(__m256i _1, __m256i _2, __m256i _3) {
10845f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmsub_d((v4i64)_1, (v4i64)_2, (v4i64)_3);
10855f757f3fSDimitry Andric }
10865f757f3fSDimitry Andric 
10875f757f3fSDimitry Andric extern __inline
10885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10895f757f3fSDimitry Andric     __lasx_xvdiv_b(__m256i _1, __m256i _2) {
10905f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_b((v32i8)_1, (v32i8)_2);
10915f757f3fSDimitry Andric }
10925f757f3fSDimitry Andric 
10935f757f3fSDimitry Andric extern __inline
10945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
10955f757f3fSDimitry Andric     __lasx_xvdiv_h(__m256i _1, __m256i _2) {
10965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_h((v16i16)_1, (v16i16)_2);
10975f757f3fSDimitry Andric }
10985f757f3fSDimitry Andric 
10995f757f3fSDimitry Andric extern __inline
11005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11015f757f3fSDimitry Andric     __lasx_xvdiv_w(__m256i _1, __m256i _2) {
11025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_w((v8i32)_1, (v8i32)_2);
11035f757f3fSDimitry Andric }
11045f757f3fSDimitry Andric 
11055f757f3fSDimitry Andric extern __inline
11065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11075f757f3fSDimitry Andric     __lasx_xvdiv_d(__m256i _1, __m256i _2) {
11085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_d((v4i64)_1, (v4i64)_2);
11095f757f3fSDimitry Andric }
11105f757f3fSDimitry Andric 
11115f757f3fSDimitry Andric extern __inline
11125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11135f757f3fSDimitry Andric     __lasx_xvdiv_bu(__m256i _1, __m256i _2) {
11145f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_bu((v32u8)_1, (v32u8)_2);
11155f757f3fSDimitry Andric }
11165f757f3fSDimitry Andric 
11175f757f3fSDimitry Andric extern __inline
11185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11195f757f3fSDimitry Andric     __lasx_xvdiv_hu(__m256i _1, __m256i _2) {
11205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_hu((v16u16)_1, (v16u16)_2);
11215f757f3fSDimitry Andric }
11225f757f3fSDimitry Andric 
11235f757f3fSDimitry Andric extern __inline
11245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11255f757f3fSDimitry Andric     __lasx_xvdiv_wu(__m256i _1, __m256i _2) {
11265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_wu((v8u32)_1, (v8u32)_2);
11275f757f3fSDimitry Andric }
11285f757f3fSDimitry Andric 
11295f757f3fSDimitry Andric extern __inline
11305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11315f757f3fSDimitry Andric     __lasx_xvdiv_du(__m256i _1, __m256i _2) {
11325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvdiv_du((v4u64)_1, (v4u64)_2);
11335f757f3fSDimitry Andric }
11345f757f3fSDimitry Andric 
11355f757f3fSDimitry Andric extern __inline
11365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11375f757f3fSDimitry Andric     __lasx_xvhaddw_h_b(__m256i _1, __m256i _2) {
11385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_h_b((v32i8)_1, (v32i8)_2);
11395f757f3fSDimitry Andric }
11405f757f3fSDimitry Andric 
11415f757f3fSDimitry Andric extern __inline
11425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11435f757f3fSDimitry Andric     __lasx_xvhaddw_w_h(__m256i _1, __m256i _2) {
11445f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_w_h((v16i16)_1, (v16i16)_2);
11455f757f3fSDimitry Andric }
11465f757f3fSDimitry Andric 
11475f757f3fSDimitry Andric extern __inline
11485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11495f757f3fSDimitry Andric     __lasx_xvhaddw_d_w(__m256i _1, __m256i _2) {
11505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_d_w((v8i32)_1, (v8i32)_2);
11515f757f3fSDimitry Andric }
11525f757f3fSDimitry Andric 
11535f757f3fSDimitry Andric extern __inline
11545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11555f757f3fSDimitry Andric     __lasx_xvhaddw_hu_bu(__m256i _1, __m256i _2) {
11565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_hu_bu((v32u8)_1, (v32u8)_2);
11575f757f3fSDimitry Andric }
11585f757f3fSDimitry Andric 
11595f757f3fSDimitry Andric extern __inline
11605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11615f757f3fSDimitry Andric     __lasx_xvhaddw_wu_hu(__m256i _1, __m256i _2) {
11625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_wu_hu((v16u16)_1, (v16u16)_2);
11635f757f3fSDimitry Andric }
11645f757f3fSDimitry Andric 
11655f757f3fSDimitry Andric extern __inline
11665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11675f757f3fSDimitry Andric     __lasx_xvhaddw_du_wu(__m256i _1, __m256i _2) {
11685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_du_wu((v8u32)_1, (v8u32)_2);
11695f757f3fSDimitry Andric }
11705f757f3fSDimitry Andric 
11715f757f3fSDimitry Andric extern __inline
11725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11735f757f3fSDimitry Andric     __lasx_xvhsubw_h_b(__m256i _1, __m256i _2) {
11745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_h_b((v32i8)_1, (v32i8)_2);
11755f757f3fSDimitry Andric }
11765f757f3fSDimitry Andric 
11775f757f3fSDimitry Andric extern __inline
11785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11795f757f3fSDimitry Andric     __lasx_xvhsubw_w_h(__m256i _1, __m256i _2) {
11805f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_w_h((v16i16)_1, (v16i16)_2);
11815f757f3fSDimitry Andric }
11825f757f3fSDimitry Andric 
11835f757f3fSDimitry Andric extern __inline
11845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11855f757f3fSDimitry Andric     __lasx_xvhsubw_d_w(__m256i _1, __m256i _2) {
11865f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_d_w((v8i32)_1, (v8i32)_2);
11875f757f3fSDimitry Andric }
11885f757f3fSDimitry Andric 
11895f757f3fSDimitry Andric extern __inline
11905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11915f757f3fSDimitry Andric     __lasx_xvhsubw_hu_bu(__m256i _1, __m256i _2) {
11925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_hu_bu((v32u8)_1, (v32u8)_2);
11935f757f3fSDimitry Andric }
11945f757f3fSDimitry Andric 
11955f757f3fSDimitry Andric extern __inline
11965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
11975f757f3fSDimitry Andric     __lasx_xvhsubw_wu_hu(__m256i _1, __m256i _2) {
11985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_wu_hu((v16u16)_1, (v16u16)_2);
11995f757f3fSDimitry Andric }
12005f757f3fSDimitry Andric 
12015f757f3fSDimitry Andric extern __inline
12025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12035f757f3fSDimitry Andric     __lasx_xvhsubw_du_wu(__m256i _1, __m256i _2) {
12045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_du_wu((v8u32)_1, (v8u32)_2);
12055f757f3fSDimitry Andric }
12065f757f3fSDimitry Andric 
12075f757f3fSDimitry Andric extern __inline
12085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12095f757f3fSDimitry Andric     __lasx_xvmod_b(__m256i _1, __m256i _2) {
12105f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_b((v32i8)_1, (v32i8)_2);
12115f757f3fSDimitry Andric }
12125f757f3fSDimitry Andric 
12135f757f3fSDimitry Andric extern __inline
12145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12155f757f3fSDimitry Andric     __lasx_xvmod_h(__m256i _1, __m256i _2) {
12165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_h((v16i16)_1, (v16i16)_2);
12175f757f3fSDimitry Andric }
12185f757f3fSDimitry Andric 
12195f757f3fSDimitry Andric extern __inline
12205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12215f757f3fSDimitry Andric     __lasx_xvmod_w(__m256i _1, __m256i _2) {
12225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_w((v8i32)_1, (v8i32)_2);
12235f757f3fSDimitry Andric }
12245f757f3fSDimitry Andric 
12255f757f3fSDimitry Andric extern __inline
12265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12275f757f3fSDimitry Andric     __lasx_xvmod_d(__m256i _1, __m256i _2) {
12285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_d((v4i64)_1, (v4i64)_2);
12295f757f3fSDimitry Andric }
12305f757f3fSDimitry Andric 
12315f757f3fSDimitry Andric extern __inline
12325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12335f757f3fSDimitry Andric     __lasx_xvmod_bu(__m256i _1, __m256i _2) {
12345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_bu((v32u8)_1, (v32u8)_2);
12355f757f3fSDimitry Andric }
12365f757f3fSDimitry Andric 
12375f757f3fSDimitry Andric extern __inline
12385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12395f757f3fSDimitry Andric     __lasx_xvmod_hu(__m256i _1, __m256i _2) {
12405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_hu((v16u16)_1, (v16u16)_2);
12415f757f3fSDimitry Andric }
12425f757f3fSDimitry Andric 
12435f757f3fSDimitry Andric extern __inline
12445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12455f757f3fSDimitry Andric     __lasx_xvmod_wu(__m256i _1, __m256i _2) {
12465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_wu((v8u32)_1, (v8u32)_2);
12475f757f3fSDimitry Andric }
12485f757f3fSDimitry Andric 
12495f757f3fSDimitry Andric extern __inline
12505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12515f757f3fSDimitry Andric     __lasx_xvmod_du(__m256i _1, __m256i _2) {
12525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmod_du((v4u64)_1, (v4u64)_2);
12535f757f3fSDimitry Andric }
12545f757f3fSDimitry Andric 
12555f757f3fSDimitry Andric #define __lasx_xvrepl128vei_b(/*__m256i*/ _1, /*ui4*/ _2)                      \
12565f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrepl128vei_b((v32i8)(_1), (_2)))
12575f757f3fSDimitry Andric 
12585f757f3fSDimitry Andric #define __lasx_xvrepl128vei_h(/*__m256i*/ _1, /*ui3*/ _2)                      \
12595f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrepl128vei_h((v16i16)(_1), (_2)))
12605f757f3fSDimitry Andric 
12615f757f3fSDimitry Andric #define __lasx_xvrepl128vei_w(/*__m256i*/ _1, /*ui2*/ _2)                      \
12625f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrepl128vei_w((v8i32)(_1), (_2)))
12635f757f3fSDimitry Andric 
12645f757f3fSDimitry Andric #define __lasx_xvrepl128vei_d(/*__m256i*/ _1, /*ui1*/ _2)                      \
12655f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrepl128vei_d((v4i64)(_1), (_2)))
12665f757f3fSDimitry Andric 
12675f757f3fSDimitry Andric extern __inline
12685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12695f757f3fSDimitry Andric     __lasx_xvpickev_b(__m256i _1, __m256i _2) {
12705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickev_b((v32i8)_1, (v32i8)_2);
12715f757f3fSDimitry Andric }
12725f757f3fSDimitry Andric 
12735f757f3fSDimitry Andric extern __inline
12745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12755f757f3fSDimitry Andric     __lasx_xvpickev_h(__m256i _1, __m256i _2) {
12765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickev_h((v16i16)_1, (v16i16)_2);
12775f757f3fSDimitry Andric }
12785f757f3fSDimitry Andric 
12795f757f3fSDimitry Andric extern __inline
12805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12815f757f3fSDimitry Andric     __lasx_xvpickev_w(__m256i _1, __m256i _2) {
12825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickev_w((v8i32)_1, (v8i32)_2);
12835f757f3fSDimitry Andric }
12845f757f3fSDimitry Andric 
12855f757f3fSDimitry Andric extern __inline
12865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12875f757f3fSDimitry Andric     __lasx_xvpickev_d(__m256i _1, __m256i _2) {
12885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickev_d((v4i64)_1, (v4i64)_2);
12895f757f3fSDimitry Andric }
12905f757f3fSDimitry Andric 
12915f757f3fSDimitry Andric extern __inline
12925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12935f757f3fSDimitry Andric     __lasx_xvpickod_b(__m256i _1, __m256i _2) {
12945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickod_b((v32i8)_1, (v32i8)_2);
12955f757f3fSDimitry Andric }
12965f757f3fSDimitry Andric 
12975f757f3fSDimitry Andric extern __inline
12985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
12995f757f3fSDimitry Andric     __lasx_xvpickod_h(__m256i _1, __m256i _2) {
13005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickod_h((v16i16)_1, (v16i16)_2);
13015f757f3fSDimitry Andric }
13025f757f3fSDimitry Andric 
13035f757f3fSDimitry Andric extern __inline
13045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13055f757f3fSDimitry Andric     __lasx_xvpickod_w(__m256i _1, __m256i _2) {
13065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickod_w((v8i32)_1, (v8i32)_2);
13075f757f3fSDimitry Andric }
13085f757f3fSDimitry Andric 
13095f757f3fSDimitry Andric extern __inline
13105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13115f757f3fSDimitry Andric     __lasx_xvpickod_d(__m256i _1, __m256i _2) {
13125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpickod_d((v4i64)_1, (v4i64)_2);
13135f757f3fSDimitry Andric }
13145f757f3fSDimitry Andric 
13155f757f3fSDimitry Andric extern __inline
13165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13175f757f3fSDimitry Andric     __lasx_xvilvh_b(__m256i _1, __m256i _2) {
13185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvh_b((v32i8)_1, (v32i8)_2);
13195f757f3fSDimitry Andric }
13205f757f3fSDimitry Andric 
13215f757f3fSDimitry Andric extern __inline
13225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13235f757f3fSDimitry Andric     __lasx_xvilvh_h(__m256i _1, __m256i _2) {
13245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvh_h((v16i16)_1, (v16i16)_2);
13255f757f3fSDimitry Andric }
13265f757f3fSDimitry Andric 
13275f757f3fSDimitry Andric extern __inline
13285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13295f757f3fSDimitry Andric     __lasx_xvilvh_w(__m256i _1, __m256i _2) {
13305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvh_w((v8i32)_1, (v8i32)_2);
13315f757f3fSDimitry Andric }
13325f757f3fSDimitry Andric 
13335f757f3fSDimitry Andric extern __inline
13345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13355f757f3fSDimitry Andric     __lasx_xvilvh_d(__m256i _1, __m256i _2) {
13365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvh_d((v4i64)_1, (v4i64)_2);
13375f757f3fSDimitry Andric }
13385f757f3fSDimitry Andric 
13395f757f3fSDimitry Andric extern __inline
13405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13415f757f3fSDimitry Andric     __lasx_xvilvl_b(__m256i _1, __m256i _2) {
13425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvl_b((v32i8)_1, (v32i8)_2);
13435f757f3fSDimitry Andric }
13445f757f3fSDimitry Andric 
13455f757f3fSDimitry Andric extern __inline
13465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13475f757f3fSDimitry Andric     __lasx_xvilvl_h(__m256i _1, __m256i _2) {
13485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvl_h((v16i16)_1, (v16i16)_2);
13495f757f3fSDimitry Andric }
13505f757f3fSDimitry Andric 
13515f757f3fSDimitry Andric extern __inline
13525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13535f757f3fSDimitry Andric     __lasx_xvilvl_w(__m256i _1, __m256i _2) {
13545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvl_w((v8i32)_1, (v8i32)_2);
13555f757f3fSDimitry Andric }
13565f757f3fSDimitry Andric 
13575f757f3fSDimitry Andric extern __inline
13585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13595f757f3fSDimitry Andric     __lasx_xvilvl_d(__m256i _1, __m256i _2) {
13605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvilvl_d((v4i64)_1, (v4i64)_2);
13615f757f3fSDimitry Andric }
13625f757f3fSDimitry Andric 
13635f757f3fSDimitry Andric extern __inline
13645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13655f757f3fSDimitry Andric     __lasx_xvpackev_b(__m256i _1, __m256i _2) {
13665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackev_b((v32i8)_1, (v32i8)_2);
13675f757f3fSDimitry Andric }
13685f757f3fSDimitry Andric 
13695f757f3fSDimitry Andric extern __inline
13705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13715f757f3fSDimitry Andric     __lasx_xvpackev_h(__m256i _1, __m256i _2) {
13725f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackev_h((v16i16)_1, (v16i16)_2);
13735f757f3fSDimitry Andric }
13745f757f3fSDimitry Andric 
13755f757f3fSDimitry Andric extern __inline
13765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13775f757f3fSDimitry Andric     __lasx_xvpackev_w(__m256i _1, __m256i _2) {
13785f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackev_w((v8i32)_1, (v8i32)_2);
13795f757f3fSDimitry Andric }
13805f757f3fSDimitry Andric 
13815f757f3fSDimitry Andric extern __inline
13825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13835f757f3fSDimitry Andric     __lasx_xvpackev_d(__m256i _1, __m256i _2) {
13845f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackev_d((v4i64)_1, (v4i64)_2);
13855f757f3fSDimitry Andric }
13865f757f3fSDimitry Andric 
13875f757f3fSDimitry Andric extern __inline
13885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13895f757f3fSDimitry Andric     __lasx_xvpackod_b(__m256i _1, __m256i _2) {
13905f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackod_b((v32i8)_1, (v32i8)_2);
13915f757f3fSDimitry Andric }
13925f757f3fSDimitry Andric 
13935f757f3fSDimitry Andric extern __inline
13945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
13955f757f3fSDimitry Andric     __lasx_xvpackod_h(__m256i _1, __m256i _2) {
13965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackod_h((v16i16)_1, (v16i16)_2);
13975f757f3fSDimitry Andric }
13985f757f3fSDimitry Andric 
13995f757f3fSDimitry Andric extern __inline
14005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14015f757f3fSDimitry Andric     __lasx_xvpackod_w(__m256i _1, __m256i _2) {
14025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackod_w((v8i32)_1, (v8i32)_2);
14035f757f3fSDimitry Andric }
14045f757f3fSDimitry Andric 
14055f757f3fSDimitry Andric extern __inline
14065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14075f757f3fSDimitry Andric     __lasx_xvpackod_d(__m256i _1, __m256i _2) {
14085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpackod_d((v4i64)_1, (v4i64)_2);
14095f757f3fSDimitry Andric }
14105f757f3fSDimitry Andric 
14115f757f3fSDimitry Andric extern __inline
14125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14135f757f3fSDimitry Andric     __lasx_xvshuf_b(__m256i _1, __m256i _2, __m256i _3) {
14145f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvshuf_b((v32i8)_1, (v32i8)_2, (v32i8)_3);
14155f757f3fSDimitry Andric }
14165f757f3fSDimitry Andric 
14175f757f3fSDimitry Andric extern __inline
14185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14195f757f3fSDimitry Andric     __lasx_xvshuf_h(__m256i _1, __m256i _2, __m256i _3) {
14205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvshuf_h((v16i16)_1, (v16i16)_2, (v16i16)_3);
14215f757f3fSDimitry Andric }
14225f757f3fSDimitry Andric 
14235f757f3fSDimitry Andric extern __inline
14245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14255f757f3fSDimitry Andric     __lasx_xvshuf_w(__m256i _1, __m256i _2, __m256i _3) {
14265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvshuf_w((v8i32)_1, (v8i32)_2, (v8i32)_3);
14275f757f3fSDimitry Andric }
14285f757f3fSDimitry Andric 
14295f757f3fSDimitry Andric extern __inline
14305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14315f757f3fSDimitry Andric     __lasx_xvshuf_d(__m256i _1, __m256i _2, __m256i _3) {
14325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvshuf_d((v4i64)_1, (v4i64)_2, (v4i64)_3);
14335f757f3fSDimitry Andric }
14345f757f3fSDimitry Andric 
14355f757f3fSDimitry Andric extern __inline
14365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14375f757f3fSDimitry Andric     __lasx_xvand_v(__m256i _1, __m256i _2) {
14385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvand_v((v32u8)_1, (v32u8)_2);
14395f757f3fSDimitry Andric }
14405f757f3fSDimitry Andric 
14415f757f3fSDimitry Andric #define __lasx_xvandi_b(/*__m256i*/ _1, /*ui8*/ _2)                            \
14425f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvandi_b((v32u8)(_1), (_2)))
14435f757f3fSDimitry Andric 
14445f757f3fSDimitry Andric extern __inline
14455f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14465f757f3fSDimitry Andric     __lasx_xvor_v(__m256i _1, __m256i _2) {
14475f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvor_v((v32u8)_1, (v32u8)_2);
14485f757f3fSDimitry Andric }
14495f757f3fSDimitry Andric 
14505f757f3fSDimitry Andric #define __lasx_xvori_b(/*__m256i*/ _1, /*ui8*/ _2)                             \
14515f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvori_b((v32u8)(_1), (_2)))
14525f757f3fSDimitry Andric 
14535f757f3fSDimitry Andric extern __inline
14545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14555f757f3fSDimitry Andric     __lasx_xvnor_v(__m256i _1, __m256i _2) {
14565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvnor_v((v32u8)_1, (v32u8)_2);
14575f757f3fSDimitry Andric }
14585f757f3fSDimitry Andric 
14595f757f3fSDimitry Andric #define __lasx_xvnori_b(/*__m256i*/ _1, /*ui8*/ _2)                            \
14605f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvnori_b((v32u8)(_1), (_2)))
14615f757f3fSDimitry Andric 
14625f757f3fSDimitry Andric extern __inline
14635f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14645f757f3fSDimitry Andric     __lasx_xvxor_v(__m256i _1, __m256i _2) {
14655f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvxor_v((v32u8)_1, (v32u8)_2);
14665f757f3fSDimitry Andric }
14675f757f3fSDimitry Andric 
14685f757f3fSDimitry Andric #define __lasx_xvxori_b(/*__m256i*/ _1, /*ui8*/ _2)                            \
14695f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvxori_b((v32u8)(_1), (_2)))
14705f757f3fSDimitry Andric 
14715f757f3fSDimitry Andric extern __inline
14725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14735f757f3fSDimitry Andric     __lasx_xvbitsel_v(__m256i _1, __m256i _2, __m256i _3) {
14745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvbitsel_v((v32u8)_1, (v32u8)_2, (v32u8)_3);
14755f757f3fSDimitry Andric }
14765f757f3fSDimitry Andric 
14775f757f3fSDimitry Andric #define __lasx_xvbitseli_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)         \
14785f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbitseli_b((v32u8)(_1), (v32u8)(_2), (_3)))
14795f757f3fSDimitry Andric 
14805f757f3fSDimitry Andric #define __lasx_xvshuf4i_b(/*__m256i*/ _1, /*ui8*/ _2)                          \
14815f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvshuf4i_b((v32i8)(_1), (_2)))
14825f757f3fSDimitry Andric 
14835f757f3fSDimitry Andric #define __lasx_xvshuf4i_h(/*__m256i*/ _1, /*ui8*/ _2)                          \
14845f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvshuf4i_h((v16i16)(_1), (_2)))
14855f757f3fSDimitry Andric 
14865f757f3fSDimitry Andric #define __lasx_xvshuf4i_w(/*__m256i*/ _1, /*ui8*/ _2)                          \
14875f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvshuf4i_w((v8i32)(_1), (_2)))
14885f757f3fSDimitry Andric 
14895f757f3fSDimitry Andric extern __inline
14905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14915f757f3fSDimitry Andric     __lasx_xvreplgr2vr_b(int _1) {
14925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplgr2vr_b((int)_1);
14935f757f3fSDimitry Andric }
14945f757f3fSDimitry Andric 
14955f757f3fSDimitry Andric extern __inline
14965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
14975f757f3fSDimitry Andric     __lasx_xvreplgr2vr_h(int _1) {
14985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplgr2vr_h((int)_1);
14995f757f3fSDimitry Andric }
15005f757f3fSDimitry Andric 
15015f757f3fSDimitry Andric extern __inline
15025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15035f757f3fSDimitry Andric     __lasx_xvreplgr2vr_w(int _1) {
15045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplgr2vr_w((int)_1);
15055f757f3fSDimitry Andric }
15065f757f3fSDimitry Andric 
15075f757f3fSDimitry Andric extern __inline
15085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15095f757f3fSDimitry Andric     __lasx_xvreplgr2vr_d(long int _1) {
15105f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplgr2vr_d((long int)_1);
15115f757f3fSDimitry Andric }
15125f757f3fSDimitry Andric 
15135f757f3fSDimitry Andric extern __inline
15145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15155f757f3fSDimitry Andric     __lasx_xvpcnt_b(__m256i _1) {
15165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpcnt_b((v32i8)_1);
15175f757f3fSDimitry Andric }
15185f757f3fSDimitry Andric 
15195f757f3fSDimitry Andric extern __inline
15205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15215f757f3fSDimitry Andric     __lasx_xvpcnt_h(__m256i _1) {
15225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpcnt_h((v16i16)_1);
15235f757f3fSDimitry Andric }
15245f757f3fSDimitry Andric 
15255f757f3fSDimitry Andric extern __inline
15265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15275f757f3fSDimitry Andric     __lasx_xvpcnt_w(__m256i _1) {
15285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpcnt_w((v8i32)_1);
15295f757f3fSDimitry Andric }
15305f757f3fSDimitry Andric 
15315f757f3fSDimitry Andric extern __inline
15325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15335f757f3fSDimitry Andric     __lasx_xvpcnt_d(__m256i _1) {
15345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvpcnt_d((v4i64)_1);
15355f757f3fSDimitry Andric }
15365f757f3fSDimitry Andric 
15375f757f3fSDimitry Andric extern __inline
15385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15395f757f3fSDimitry Andric     __lasx_xvclo_b(__m256i _1) {
15405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclo_b((v32i8)_1);
15415f757f3fSDimitry Andric }
15425f757f3fSDimitry Andric 
15435f757f3fSDimitry Andric extern __inline
15445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15455f757f3fSDimitry Andric     __lasx_xvclo_h(__m256i _1) {
15465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclo_h((v16i16)_1);
15475f757f3fSDimitry Andric }
15485f757f3fSDimitry Andric 
15495f757f3fSDimitry Andric extern __inline
15505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15515f757f3fSDimitry Andric     __lasx_xvclo_w(__m256i _1) {
15525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclo_w((v8i32)_1);
15535f757f3fSDimitry Andric }
15545f757f3fSDimitry Andric 
15555f757f3fSDimitry Andric extern __inline
15565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15575f757f3fSDimitry Andric     __lasx_xvclo_d(__m256i _1) {
15585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclo_d((v4i64)_1);
15595f757f3fSDimitry Andric }
15605f757f3fSDimitry Andric 
15615f757f3fSDimitry Andric extern __inline
15625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15635f757f3fSDimitry Andric     __lasx_xvclz_b(__m256i _1) {
15645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclz_b((v32i8)_1);
15655f757f3fSDimitry Andric }
15665f757f3fSDimitry Andric 
15675f757f3fSDimitry Andric extern __inline
15685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15695f757f3fSDimitry Andric     __lasx_xvclz_h(__m256i _1) {
15705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclz_h((v16i16)_1);
15715f757f3fSDimitry Andric }
15725f757f3fSDimitry Andric 
15735f757f3fSDimitry Andric extern __inline
15745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15755f757f3fSDimitry Andric     __lasx_xvclz_w(__m256i _1) {
15765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclz_w((v8i32)_1);
15775f757f3fSDimitry Andric }
15785f757f3fSDimitry Andric 
15795f757f3fSDimitry Andric extern __inline
15805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
15815f757f3fSDimitry Andric     __lasx_xvclz_d(__m256i _1) {
15825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvclz_d((v4i64)_1);
15835f757f3fSDimitry Andric }
15845f757f3fSDimitry Andric 
15855f757f3fSDimitry Andric extern __inline
15865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
15875f757f3fSDimitry Andric     __lasx_xvfadd_s(__m256 _1, __m256 _2) {
15885f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfadd_s((v8f32)_1, (v8f32)_2);
15895f757f3fSDimitry Andric }
15905f757f3fSDimitry Andric 
15915f757f3fSDimitry Andric extern __inline
15925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
15935f757f3fSDimitry Andric     __lasx_xvfadd_d(__m256d _1, __m256d _2) {
15945f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfadd_d((v4f64)_1, (v4f64)_2);
15955f757f3fSDimitry Andric }
15965f757f3fSDimitry Andric 
15975f757f3fSDimitry Andric extern __inline
15985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
15995f757f3fSDimitry Andric     __lasx_xvfsub_s(__m256 _1, __m256 _2) {
16005f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfsub_s((v8f32)_1, (v8f32)_2);
16015f757f3fSDimitry Andric }
16025f757f3fSDimitry Andric 
16035f757f3fSDimitry Andric extern __inline
16045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
16055f757f3fSDimitry Andric     __lasx_xvfsub_d(__m256d _1, __m256d _2) {
16065f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfsub_d((v4f64)_1, (v4f64)_2);
16075f757f3fSDimitry Andric }
16085f757f3fSDimitry Andric 
16095f757f3fSDimitry Andric extern __inline
16105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
16115f757f3fSDimitry Andric     __lasx_xvfmul_s(__m256 _1, __m256 _2) {
16125f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfmul_s((v8f32)_1, (v8f32)_2);
16135f757f3fSDimitry Andric }
16145f757f3fSDimitry Andric 
16155f757f3fSDimitry Andric extern __inline
16165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
16175f757f3fSDimitry Andric     __lasx_xvfmul_d(__m256d _1, __m256d _2) {
16185f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfmul_d((v4f64)_1, (v4f64)_2);
16195f757f3fSDimitry Andric }
16205f757f3fSDimitry Andric 
16215f757f3fSDimitry Andric extern __inline
16225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
16235f757f3fSDimitry Andric     __lasx_xvfdiv_s(__m256 _1, __m256 _2) {
16245f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfdiv_s((v8f32)_1, (v8f32)_2);
16255f757f3fSDimitry Andric }
16265f757f3fSDimitry Andric 
16275f757f3fSDimitry Andric extern __inline
16285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
16295f757f3fSDimitry Andric     __lasx_xvfdiv_d(__m256d _1, __m256d _2) {
16305f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfdiv_d((v4f64)_1, (v4f64)_2);
16315f757f3fSDimitry Andric }
16325f757f3fSDimitry Andric 
16335f757f3fSDimitry Andric extern __inline
16345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
16355f757f3fSDimitry Andric     __lasx_xvfcvt_h_s(__m256 _1, __m256 _2) {
16365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcvt_h_s((v8f32)_1, (v8f32)_2);
16375f757f3fSDimitry Andric }
16385f757f3fSDimitry Andric 
16395f757f3fSDimitry Andric extern __inline
16405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
16415f757f3fSDimitry Andric     __lasx_xvfcvt_s_d(__m256d _1, __m256d _2) {
16425f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfcvt_s_d((v4f64)_1, (v4f64)_2);
16435f757f3fSDimitry Andric }
16445f757f3fSDimitry Andric 
16455f757f3fSDimitry Andric extern __inline
16465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
16475f757f3fSDimitry Andric     __lasx_xvfmin_s(__m256 _1, __m256 _2) {
16485f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfmin_s((v8f32)_1, (v8f32)_2);
16495f757f3fSDimitry Andric }
16505f757f3fSDimitry Andric 
16515f757f3fSDimitry Andric extern __inline
16525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
16535f757f3fSDimitry Andric     __lasx_xvfmin_d(__m256d _1, __m256d _2) {
16545f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfmin_d((v4f64)_1, (v4f64)_2);
16555f757f3fSDimitry Andric }
16565f757f3fSDimitry Andric 
16575f757f3fSDimitry Andric extern __inline
16585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
16595f757f3fSDimitry Andric     __lasx_xvfmina_s(__m256 _1, __m256 _2) {
16605f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfmina_s((v8f32)_1, (v8f32)_2);
16615f757f3fSDimitry Andric }
16625f757f3fSDimitry Andric 
16635f757f3fSDimitry Andric extern __inline
16645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
16655f757f3fSDimitry Andric     __lasx_xvfmina_d(__m256d _1, __m256d _2) {
16665f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfmina_d((v4f64)_1, (v4f64)_2);
16675f757f3fSDimitry Andric }
16685f757f3fSDimitry Andric 
16695f757f3fSDimitry Andric extern __inline
16705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
16715f757f3fSDimitry Andric     __lasx_xvfmax_s(__m256 _1, __m256 _2) {
16725f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfmax_s((v8f32)_1, (v8f32)_2);
16735f757f3fSDimitry Andric }
16745f757f3fSDimitry Andric 
16755f757f3fSDimitry Andric extern __inline
16765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
16775f757f3fSDimitry Andric     __lasx_xvfmax_d(__m256d _1, __m256d _2) {
16785f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfmax_d((v4f64)_1, (v4f64)_2);
16795f757f3fSDimitry Andric }
16805f757f3fSDimitry Andric 
16815f757f3fSDimitry Andric extern __inline
16825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
16835f757f3fSDimitry Andric     __lasx_xvfmaxa_s(__m256 _1, __m256 _2) {
16845f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfmaxa_s((v8f32)_1, (v8f32)_2);
16855f757f3fSDimitry Andric }
16865f757f3fSDimitry Andric 
16875f757f3fSDimitry Andric extern __inline
16885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
16895f757f3fSDimitry Andric     __lasx_xvfmaxa_d(__m256d _1, __m256d _2) {
16905f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfmaxa_d((v4f64)_1, (v4f64)_2);
16915f757f3fSDimitry Andric }
16925f757f3fSDimitry Andric 
16935f757f3fSDimitry Andric extern __inline
16945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
16955f757f3fSDimitry Andric     __lasx_xvfclass_s(__m256 _1) {
16965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfclass_s((v8f32)_1);
16975f757f3fSDimitry Andric }
16985f757f3fSDimitry Andric 
16995f757f3fSDimitry Andric extern __inline
17005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
17015f757f3fSDimitry Andric     __lasx_xvfclass_d(__m256d _1) {
17025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfclass_d((v4f64)_1);
17035f757f3fSDimitry Andric }
17045f757f3fSDimitry Andric 
17055f757f3fSDimitry Andric extern __inline
17065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
17075f757f3fSDimitry Andric     __lasx_xvfsqrt_s(__m256 _1) {
17085f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfsqrt_s((v8f32)_1);
17095f757f3fSDimitry Andric }
17105f757f3fSDimitry Andric 
17115f757f3fSDimitry Andric extern __inline
17125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
17135f757f3fSDimitry Andric     __lasx_xvfsqrt_d(__m256d _1) {
17145f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfsqrt_d((v4f64)_1);
17155f757f3fSDimitry Andric }
17165f757f3fSDimitry Andric 
17175f757f3fSDimitry Andric extern __inline
17185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
17195f757f3fSDimitry Andric     __lasx_xvfrecip_s(__m256 _1) {
17205f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfrecip_s((v8f32)_1);
17215f757f3fSDimitry Andric }
17225f757f3fSDimitry Andric 
17235f757f3fSDimitry Andric extern __inline
17245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
17255f757f3fSDimitry Andric     __lasx_xvfrecip_d(__m256d _1) {
17265f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfrecip_d((v4f64)_1);
17275f757f3fSDimitry Andric }
17285f757f3fSDimitry Andric 
17295f757f3fSDimitry Andric extern __inline
17305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
1731*7a6dacacSDimitry Andric     __lasx_xvfrecipe_s(__m256 _1) {
1732*7a6dacacSDimitry Andric   return (__m256)__builtin_lasx_xvfrecipe_s((v8f32)_1);
1733*7a6dacacSDimitry Andric }
1734*7a6dacacSDimitry Andric 
1735*7a6dacacSDimitry Andric extern __inline
1736*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
1737*7a6dacacSDimitry Andric     __lasx_xvfrecipe_d(__m256d _1) {
1738*7a6dacacSDimitry Andric   return (__m256d)__builtin_lasx_xvfrecipe_d((v4f64)_1);
1739*7a6dacacSDimitry Andric }
1740*7a6dacacSDimitry Andric 
1741*7a6dacacSDimitry Andric extern __inline
1742*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
17435f757f3fSDimitry Andric     __lasx_xvfrint_s(__m256 _1) {
17445f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfrint_s((v8f32)_1);
17455f757f3fSDimitry Andric }
17465f757f3fSDimitry Andric 
17475f757f3fSDimitry Andric extern __inline
17485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
17495f757f3fSDimitry Andric     __lasx_xvfrint_d(__m256d _1) {
17505f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfrint_d((v4f64)_1);
17515f757f3fSDimitry Andric }
17525f757f3fSDimitry Andric 
17535f757f3fSDimitry Andric extern __inline
17545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
17555f757f3fSDimitry Andric     __lasx_xvfrsqrt_s(__m256 _1) {
17565f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfrsqrt_s((v8f32)_1);
17575f757f3fSDimitry Andric }
17585f757f3fSDimitry Andric 
17595f757f3fSDimitry Andric extern __inline
17605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
17615f757f3fSDimitry Andric     __lasx_xvfrsqrt_d(__m256d _1) {
17625f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfrsqrt_d((v4f64)_1);
17635f757f3fSDimitry Andric }
17645f757f3fSDimitry Andric 
17655f757f3fSDimitry Andric extern __inline
17665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
1767*7a6dacacSDimitry Andric     __lasx_xvfrsqrte_s(__m256 _1) {
1768*7a6dacacSDimitry Andric   return (__m256)__builtin_lasx_xvfrsqrte_s((v8f32)_1);
1769*7a6dacacSDimitry Andric }
1770*7a6dacacSDimitry Andric 
1771*7a6dacacSDimitry Andric extern __inline
1772*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
1773*7a6dacacSDimitry Andric     __lasx_xvfrsqrte_d(__m256d _1) {
1774*7a6dacacSDimitry Andric   return (__m256d)__builtin_lasx_xvfrsqrte_d((v4f64)_1);
1775*7a6dacacSDimitry Andric }
1776*7a6dacacSDimitry Andric 
1777*7a6dacacSDimitry Andric extern __inline
1778*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
17795f757f3fSDimitry Andric     __lasx_xvflogb_s(__m256 _1) {
17805f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvflogb_s((v8f32)_1);
17815f757f3fSDimitry Andric }
17825f757f3fSDimitry Andric 
17835f757f3fSDimitry Andric extern __inline
17845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
17855f757f3fSDimitry Andric     __lasx_xvflogb_d(__m256d _1) {
17865f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvflogb_d((v4f64)_1);
17875f757f3fSDimitry Andric }
17885f757f3fSDimitry Andric 
17895f757f3fSDimitry Andric extern __inline
17905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
17915f757f3fSDimitry Andric     __lasx_xvfcvth_s_h(__m256i _1) {
17925f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfcvth_s_h((v16i16)_1);
17935f757f3fSDimitry Andric }
17945f757f3fSDimitry Andric 
17955f757f3fSDimitry Andric extern __inline
17965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
17975f757f3fSDimitry Andric     __lasx_xvfcvth_d_s(__m256 _1) {
17985f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfcvth_d_s((v8f32)_1);
17995f757f3fSDimitry Andric }
18005f757f3fSDimitry Andric 
18015f757f3fSDimitry Andric extern __inline
18025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
18035f757f3fSDimitry Andric     __lasx_xvfcvtl_s_h(__m256i _1) {
18045f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfcvtl_s_h((v16i16)_1);
18055f757f3fSDimitry Andric }
18065f757f3fSDimitry Andric 
18075f757f3fSDimitry Andric extern __inline
18085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
18095f757f3fSDimitry Andric     __lasx_xvfcvtl_d_s(__m256 _1) {
18105f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfcvtl_d_s((v8f32)_1);
18115f757f3fSDimitry Andric }
18125f757f3fSDimitry Andric 
18135f757f3fSDimitry Andric extern __inline
18145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18155f757f3fSDimitry Andric     __lasx_xvftint_w_s(__m256 _1) {
18165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftint_w_s((v8f32)_1);
18175f757f3fSDimitry Andric }
18185f757f3fSDimitry Andric 
18195f757f3fSDimitry Andric extern __inline
18205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18215f757f3fSDimitry Andric     __lasx_xvftint_l_d(__m256d _1) {
18225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftint_l_d((v4f64)_1);
18235f757f3fSDimitry Andric }
18245f757f3fSDimitry Andric 
18255f757f3fSDimitry Andric extern __inline
18265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18275f757f3fSDimitry Andric     __lasx_xvftint_wu_s(__m256 _1) {
18285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftint_wu_s((v8f32)_1);
18295f757f3fSDimitry Andric }
18305f757f3fSDimitry Andric 
18315f757f3fSDimitry Andric extern __inline
18325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18335f757f3fSDimitry Andric     __lasx_xvftint_lu_d(__m256d _1) {
18345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftint_lu_d((v4f64)_1);
18355f757f3fSDimitry Andric }
18365f757f3fSDimitry Andric 
18375f757f3fSDimitry Andric extern __inline
18385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18395f757f3fSDimitry Andric     __lasx_xvftintrz_w_s(__m256 _1) {
18405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrz_w_s((v8f32)_1);
18415f757f3fSDimitry Andric }
18425f757f3fSDimitry Andric 
18435f757f3fSDimitry Andric extern __inline
18445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18455f757f3fSDimitry Andric     __lasx_xvftintrz_l_d(__m256d _1) {
18465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrz_l_d((v4f64)_1);
18475f757f3fSDimitry Andric }
18485f757f3fSDimitry Andric 
18495f757f3fSDimitry Andric extern __inline
18505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18515f757f3fSDimitry Andric     __lasx_xvftintrz_wu_s(__m256 _1) {
18525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrz_wu_s((v8f32)_1);
18535f757f3fSDimitry Andric }
18545f757f3fSDimitry Andric 
18555f757f3fSDimitry Andric extern __inline
18565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18575f757f3fSDimitry Andric     __lasx_xvftintrz_lu_d(__m256d _1) {
18585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrz_lu_d((v4f64)_1);
18595f757f3fSDimitry Andric }
18605f757f3fSDimitry Andric 
18615f757f3fSDimitry Andric extern __inline
18625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
18635f757f3fSDimitry Andric     __lasx_xvffint_s_w(__m256i _1) {
18645f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvffint_s_w((v8i32)_1);
18655f757f3fSDimitry Andric }
18665f757f3fSDimitry Andric 
18675f757f3fSDimitry Andric extern __inline
18685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
18695f757f3fSDimitry Andric     __lasx_xvffint_d_l(__m256i _1) {
18705f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvffint_d_l((v4i64)_1);
18715f757f3fSDimitry Andric }
18725f757f3fSDimitry Andric 
18735f757f3fSDimitry Andric extern __inline
18745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
18755f757f3fSDimitry Andric     __lasx_xvffint_s_wu(__m256i _1) {
18765f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvffint_s_wu((v8u32)_1);
18775f757f3fSDimitry Andric }
18785f757f3fSDimitry Andric 
18795f757f3fSDimitry Andric extern __inline
18805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
18815f757f3fSDimitry Andric     __lasx_xvffint_d_lu(__m256i _1) {
18825f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvffint_d_lu((v4u64)_1);
18835f757f3fSDimitry Andric }
18845f757f3fSDimitry Andric 
18855f757f3fSDimitry Andric extern __inline
18865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18875f757f3fSDimitry Andric     __lasx_xvreplve_b(__m256i _1, int _2) {
18885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve_b((v32i8)_1, (int)_2);
18895f757f3fSDimitry Andric }
18905f757f3fSDimitry Andric 
18915f757f3fSDimitry Andric extern __inline
18925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18935f757f3fSDimitry Andric     __lasx_xvreplve_h(__m256i _1, int _2) {
18945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve_h((v16i16)_1, (int)_2);
18955f757f3fSDimitry Andric }
18965f757f3fSDimitry Andric 
18975f757f3fSDimitry Andric extern __inline
18985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
18995f757f3fSDimitry Andric     __lasx_xvreplve_w(__m256i _1, int _2) {
19005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve_w((v8i32)_1, (int)_2);
19015f757f3fSDimitry Andric }
19025f757f3fSDimitry Andric 
19035f757f3fSDimitry Andric extern __inline
19045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19055f757f3fSDimitry Andric     __lasx_xvreplve_d(__m256i _1, int _2) {
19065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve_d((v4i64)_1, (int)_2);
19075f757f3fSDimitry Andric }
19085f757f3fSDimitry Andric 
19095f757f3fSDimitry Andric #define __lasx_xvpermi_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)           \
19105f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvpermi_w((v8i32)(_1), (v8i32)(_2), (_3)))
19115f757f3fSDimitry Andric 
19125f757f3fSDimitry Andric extern __inline
19135f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19145f757f3fSDimitry Andric     __lasx_xvandn_v(__m256i _1, __m256i _2) {
19155f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvandn_v((v32u8)_1, (v32u8)_2);
19165f757f3fSDimitry Andric }
19175f757f3fSDimitry Andric 
19185f757f3fSDimitry Andric extern __inline
19195f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19205f757f3fSDimitry Andric     __lasx_xvneg_b(__m256i _1) {
19215f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvneg_b((v32i8)_1);
19225f757f3fSDimitry Andric }
19235f757f3fSDimitry Andric 
19245f757f3fSDimitry Andric extern __inline
19255f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19265f757f3fSDimitry Andric     __lasx_xvneg_h(__m256i _1) {
19275f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvneg_h((v16i16)_1);
19285f757f3fSDimitry Andric }
19295f757f3fSDimitry Andric 
19305f757f3fSDimitry Andric extern __inline
19315f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19325f757f3fSDimitry Andric     __lasx_xvneg_w(__m256i _1) {
19335f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvneg_w((v8i32)_1);
19345f757f3fSDimitry Andric }
19355f757f3fSDimitry Andric 
19365f757f3fSDimitry Andric extern __inline
19375f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19385f757f3fSDimitry Andric     __lasx_xvneg_d(__m256i _1) {
19395f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvneg_d((v4i64)_1);
19405f757f3fSDimitry Andric }
19415f757f3fSDimitry Andric 
19425f757f3fSDimitry Andric extern __inline
19435f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19445f757f3fSDimitry Andric     __lasx_xvmuh_b(__m256i _1, __m256i _2) {
19455f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_b((v32i8)_1, (v32i8)_2);
19465f757f3fSDimitry Andric }
19475f757f3fSDimitry Andric 
19485f757f3fSDimitry Andric extern __inline
19495f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19505f757f3fSDimitry Andric     __lasx_xvmuh_h(__m256i _1, __m256i _2) {
19515f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_h((v16i16)_1, (v16i16)_2);
19525f757f3fSDimitry Andric }
19535f757f3fSDimitry Andric 
19545f757f3fSDimitry Andric extern __inline
19555f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19565f757f3fSDimitry Andric     __lasx_xvmuh_w(__m256i _1, __m256i _2) {
19575f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_w((v8i32)_1, (v8i32)_2);
19585f757f3fSDimitry Andric }
19595f757f3fSDimitry Andric 
19605f757f3fSDimitry Andric extern __inline
19615f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19625f757f3fSDimitry Andric     __lasx_xvmuh_d(__m256i _1, __m256i _2) {
19635f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_d((v4i64)_1, (v4i64)_2);
19645f757f3fSDimitry Andric }
19655f757f3fSDimitry Andric 
19665f757f3fSDimitry Andric extern __inline
19675f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19685f757f3fSDimitry Andric     __lasx_xvmuh_bu(__m256i _1, __m256i _2) {
19695f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_bu((v32u8)_1, (v32u8)_2);
19705f757f3fSDimitry Andric }
19715f757f3fSDimitry Andric 
19725f757f3fSDimitry Andric extern __inline
19735f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19745f757f3fSDimitry Andric     __lasx_xvmuh_hu(__m256i _1, __m256i _2) {
19755f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_hu((v16u16)_1, (v16u16)_2);
19765f757f3fSDimitry Andric }
19775f757f3fSDimitry Andric 
19785f757f3fSDimitry Andric extern __inline
19795f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19805f757f3fSDimitry Andric     __lasx_xvmuh_wu(__m256i _1, __m256i _2) {
19815f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_wu((v8u32)_1, (v8u32)_2);
19825f757f3fSDimitry Andric }
19835f757f3fSDimitry Andric 
19845f757f3fSDimitry Andric extern __inline
19855f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
19865f757f3fSDimitry Andric     __lasx_xvmuh_du(__m256i _1, __m256i _2) {
19875f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmuh_du((v4u64)_1, (v4u64)_2);
19885f757f3fSDimitry Andric }
19895f757f3fSDimitry Andric 
19905f757f3fSDimitry Andric #define __lasx_xvsllwil_h_b(/*__m256i*/ _1, /*ui3*/ _2)                        \
19915f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsllwil_h_b((v32i8)(_1), (_2)))
19925f757f3fSDimitry Andric 
19935f757f3fSDimitry Andric #define __lasx_xvsllwil_w_h(/*__m256i*/ _1, /*ui4*/ _2)                        \
19945f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsllwil_w_h((v16i16)(_1), (_2)))
19955f757f3fSDimitry Andric 
19965f757f3fSDimitry Andric #define __lasx_xvsllwil_d_w(/*__m256i*/ _1, /*ui5*/ _2)                        \
19975f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsllwil_d_w((v8i32)(_1), (_2)))
19985f757f3fSDimitry Andric 
19995f757f3fSDimitry Andric #define __lasx_xvsllwil_hu_bu(/*__m256i*/ _1, /*ui3*/ _2)                      \
20005f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsllwil_hu_bu((v32u8)(_1), (_2)))
20015f757f3fSDimitry Andric 
20025f757f3fSDimitry Andric #define __lasx_xvsllwil_wu_hu(/*__m256i*/ _1, /*ui4*/ _2)                      \
20035f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsllwil_wu_hu((v16u16)(_1), (_2)))
20045f757f3fSDimitry Andric 
20055f757f3fSDimitry Andric #define __lasx_xvsllwil_du_wu(/*__m256i*/ _1, /*ui5*/ _2)                      \
20065f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsllwil_du_wu((v8u32)(_1), (_2)))
20075f757f3fSDimitry Andric 
20085f757f3fSDimitry Andric extern __inline
20095f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20105f757f3fSDimitry Andric     __lasx_xvsran_b_h(__m256i _1, __m256i _2) {
20115f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsran_b_h((v16i16)_1, (v16i16)_2);
20125f757f3fSDimitry Andric }
20135f757f3fSDimitry Andric 
20145f757f3fSDimitry Andric extern __inline
20155f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20165f757f3fSDimitry Andric     __lasx_xvsran_h_w(__m256i _1, __m256i _2) {
20175f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsran_h_w((v8i32)_1, (v8i32)_2);
20185f757f3fSDimitry Andric }
20195f757f3fSDimitry Andric 
20205f757f3fSDimitry Andric extern __inline
20215f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20225f757f3fSDimitry Andric     __lasx_xvsran_w_d(__m256i _1, __m256i _2) {
20235f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsran_w_d((v4i64)_1, (v4i64)_2);
20245f757f3fSDimitry Andric }
20255f757f3fSDimitry Andric 
20265f757f3fSDimitry Andric extern __inline
20275f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20285f757f3fSDimitry Andric     __lasx_xvssran_b_h(__m256i _1, __m256i _2) {
20295f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssran_b_h((v16i16)_1, (v16i16)_2);
20305f757f3fSDimitry Andric }
20315f757f3fSDimitry Andric 
20325f757f3fSDimitry Andric extern __inline
20335f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20345f757f3fSDimitry Andric     __lasx_xvssran_h_w(__m256i _1, __m256i _2) {
20355f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssran_h_w((v8i32)_1, (v8i32)_2);
20365f757f3fSDimitry Andric }
20375f757f3fSDimitry Andric 
20385f757f3fSDimitry Andric extern __inline
20395f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20405f757f3fSDimitry Andric     __lasx_xvssran_w_d(__m256i _1, __m256i _2) {
20415f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssran_w_d((v4i64)_1, (v4i64)_2);
20425f757f3fSDimitry Andric }
20435f757f3fSDimitry Andric 
20445f757f3fSDimitry Andric extern __inline
20455f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20465f757f3fSDimitry Andric     __lasx_xvssran_bu_h(__m256i _1, __m256i _2) {
20475f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssran_bu_h((v16u16)_1, (v16u16)_2);
20485f757f3fSDimitry Andric }
20495f757f3fSDimitry Andric 
20505f757f3fSDimitry Andric extern __inline
20515f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20525f757f3fSDimitry Andric     __lasx_xvssran_hu_w(__m256i _1, __m256i _2) {
20535f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssran_hu_w((v8u32)_1, (v8u32)_2);
20545f757f3fSDimitry Andric }
20555f757f3fSDimitry Andric 
20565f757f3fSDimitry Andric extern __inline
20575f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20585f757f3fSDimitry Andric     __lasx_xvssran_wu_d(__m256i _1, __m256i _2) {
20595f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssran_wu_d((v4u64)_1, (v4u64)_2);
20605f757f3fSDimitry Andric }
20615f757f3fSDimitry Andric 
20625f757f3fSDimitry Andric extern __inline
20635f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20645f757f3fSDimitry Andric     __lasx_xvsrarn_b_h(__m256i _1, __m256i _2) {
20655f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrarn_b_h((v16i16)_1, (v16i16)_2);
20665f757f3fSDimitry Andric }
20675f757f3fSDimitry Andric 
20685f757f3fSDimitry Andric extern __inline
20695f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20705f757f3fSDimitry Andric     __lasx_xvsrarn_h_w(__m256i _1, __m256i _2) {
20715f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrarn_h_w((v8i32)_1, (v8i32)_2);
20725f757f3fSDimitry Andric }
20735f757f3fSDimitry Andric 
20745f757f3fSDimitry Andric extern __inline
20755f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20765f757f3fSDimitry Andric     __lasx_xvsrarn_w_d(__m256i _1, __m256i _2) {
20775f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrarn_w_d((v4i64)_1, (v4i64)_2);
20785f757f3fSDimitry Andric }
20795f757f3fSDimitry Andric 
20805f757f3fSDimitry Andric extern __inline
20815f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20825f757f3fSDimitry Andric     __lasx_xvssrarn_b_h(__m256i _1, __m256i _2) {
20835f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrarn_b_h((v16i16)_1, (v16i16)_2);
20845f757f3fSDimitry Andric }
20855f757f3fSDimitry Andric 
20865f757f3fSDimitry Andric extern __inline
20875f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20885f757f3fSDimitry Andric     __lasx_xvssrarn_h_w(__m256i _1, __m256i _2) {
20895f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrarn_h_w((v8i32)_1, (v8i32)_2);
20905f757f3fSDimitry Andric }
20915f757f3fSDimitry Andric 
20925f757f3fSDimitry Andric extern __inline
20935f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
20945f757f3fSDimitry Andric     __lasx_xvssrarn_w_d(__m256i _1, __m256i _2) {
20955f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrarn_w_d((v4i64)_1, (v4i64)_2);
20965f757f3fSDimitry Andric }
20975f757f3fSDimitry Andric 
20985f757f3fSDimitry Andric extern __inline
20995f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21005f757f3fSDimitry Andric     __lasx_xvssrarn_bu_h(__m256i _1, __m256i _2) {
21015f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrarn_bu_h((v16u16)_1, (v16u16)_2);
21025f757f3fSDimitry Andric }
21035f757f3fSDimitry Andric 
21045f757f3fSDimitry Andric extern __inline
21055f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21065f757f3fSDimitry Andric     __lasx_xvssrarn_hu_w(__m256i _1, __m256i _2) {
21075f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrarn_hu_w((v8u32)_1, (v8u32)_2);
21085f757f3fSDimitry Andric }
21095f757f3fSDimitry Andric 
21105f757f3fSDimitry Andric extern __inline
21115f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21125f757f3fSDimitry Andric     __lasx_xvssrarn_wu_d(__m256i _1, __m256i _2) {
21135f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrarn_wu_d((v4u64)_1, (v4u64)_2);
21145f757f3fSDimitry Andric }
21155f757f3fSDimitry Andric 
21165f757f3fSDimitry Andric extern __inline
21175f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21185f757f3fSDimitry Andric     __lasx_xvsrln_b_h(__m256i _1, __m256i _2) {
21195f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrln_b_h((v16i16)_1, (v16i16)_2);
21205f757f3fSDimitry Andric }
21215f757f3fSDimitry Andric 
21225f757f3fSDimitry Andric extern __inline
21235f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21245f757f3fSDimitry Andric     __lasx_xvsrln_h_w(__m256i _1, __m256i _2) {
21255f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrln_h_w((v8i32)_1, (v8i32)_2);
21265f757f3fSDimitry Andric }
21275f757f3fSDimitry Andric 
21285f757f3fSDimitry Andric extern __inline
21295f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21305f757f3fSDimitry Andric     __lasx_xvsrln_w_d(__m256i _1, __m256i _2) {
21315f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrln_w_d((v4i64)_1, (v4i64)_2);
21325f757f3fSDimitry Andric }
21335f757f3fSDimitry Andric 
21345f757f3fSDimitry Andric extern __inline
21355f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21365f757f3fSDimitry Andric     __lasx_xvssrln_bu_h(__m256i _1, __m256i _2) {
21375f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrln_bu_h((v16u16)_1, (v16u16)_2);
21385f757f3fSDimitry Andric }
21395f757f3fSDimitry Andric 
21405f757f3fSDimitry Andric extern __inline
21415f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21425f757f3fSDimitry Andric     __lasx_xvssrln_hu_w(__m256i _1, __m256i _2) {
21435f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrln_hu_w((v8u32)_1, (v8u32)_2);
21445f757f3fSDimitry Andric }
21455f757f3fSDimitry Andric 
21465f757f3fSDimitry Andric extern __inline
21475f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21485f757f3fSDimitry Andric     __lasx_xvssrln_wu_d(__m256i _1, __m256i _2) {
21495f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrln_wu_d((v4u64)_1, (v4u64)_2);
21505f757f3fSDimitry Andric }
21515f757f3fSDimitry Andric 
21525f757f3fSDimitry Andric extern __inline
21535f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21545f757f3fSDimitry Andric     __lasx_xvsrlrn_b_h(__m256i _1, __m256i _2) {
21555f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrlrn_b_h((v16i16)_1, (v16i16)_2);
21565f757f3fSDimitry Andric }
21575f757f3fSDimitry Andric 
21585f757f3fSDimitry Andric extern __inline
21595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21605f757f3fSDimitry Andric     __lasx_xvsrlrn_h_w(__m256i _1, __m256i _2) {
21615f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrlrn_h_w((v8i32)_1, (v8i32)_2);
21625f757f3fSDimitry Andric }
21635f757f3fSDimitry Andric 
21645f757f3fSDimitry Andric extern __inline
21655f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21665f757f3fSDimitry Andric     __lasx_xvsrlrn_w_d(__m256i _1, __m256i _2) {
21675f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsrlrn_w_d((v4i64)_1, (v4i64)_2);
21685f757f3fSDimitry Andric }
21695f757f3fSDimitry Andric 
21705f757f3fSDimitry Andric extern __inline
21715f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21725f757f3fSDimitry Andric     __lasx_xvssrlrn_bu_h(__m256i _1, __m256i _2) {
21735f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrlrn_bu_h((v16u16)_1, (v16u16)_2);
21745f757f3fSDimitry Andric }
21755f757f3fSDimitry Andric 
21765f757f3fSDimitry Andric extern __inline
21775f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21785f757f3fSDimitry Andric     __lasx_xvssrlrn_hu_w(__m256i _1, __m256i _2) {
21795f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrlrn_hu_w((v8u32)_1, (v8u32)_2);
21805f757f3fSDimitry Andric }
21815f757f3fSDimitry Andric 
21825f757f3fSDimitry Andric extern __inline
21835f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21845f757f3fSDimitry Andric     __lasx_xvssrlrn_wu_d(__m256i _1, __m256i _2) {
21855f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrlrn_wu_d((v4u64)_1, (v4u64)_2);
21865f757f3fSDimitry Andric }
21875f757f3fSDimitry Andric 
21885f757f3fSDimitry Andric #define __lasx_xvfrstpi_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)          \
21895f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvfrstpi_b((v32i8)(_1), (v32i8)(_2), (_3)))
21905f757f3fSDimitry Andric 
21915f757f3fSDimitry Andric #define __lasx_xvfrstpi_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)          \
21925f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvfrstpi_h((v16i16)(_1), (v16i16)(_2), (_3)))
21935f757f3fSDimitry Andric 
21945f757f3fSDimitry Andric extern __inline
21955f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
21965f757f3fSDimitry Andric     __lasx_xvfrstp_b(__m256i _1, __m256i _2, __m256i _3) {
21975f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfrstp_b((v32i8)_1, (v32i8)_2, (v32i8)_3);
21985f757f3fSDimitry Andric }
21995f757f3fSDimitry Andric 
22005f757f3fSDimitry Andric extern __inline
22015f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22025f757f3fSDimitry Andric     __lasx_xvfrstp_h(__m256i _1, __m256i _2, __m256i _3) {
22035f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfrstp_h((v16i16)_1, (v16i16)_2, (v16i16)_3);
22045f757f3fSDimitry Andric }
22055f757f3fSDimitry Andric 
22065f757f3fSDimitry Andric #define __lasx_xvshuf4i_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)          \
22075f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvshuf4i_d((v4i64)(_1), (v4i64)(_2), (_3)))
22085f757f3fSDimitry Andric 
22095f757f3fSDimitry Andric #define __lasx_xvbsrl_v(/*__m256i*/ _1, /*ui5*/ _2)                            \
22105f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbsrl_v((v32i8)(_1), (_2)))
22115f757f3fSDimitry Andric 
22125f757f3fSDimitry Andric #define __lasx_xvbsll_v(/*__m256i*/ _1, /*ui5*/ _2)                            \
22135f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvbsll_v((v32i8)(_1), (_2)))
22145f757f3fSDimitry Andric 
22155f757f3fSDimitry Andric #define __lasx_xvextrins_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)         \
22165f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvextrins_b((v32i8)(_1), (v32i8)(_2), (_3)))
22175f757f3fSDimitry Andric 
22185f757f3fSDimitry Andric #define __lasx_xvextrins_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)         \
22195f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvextrins_h((v16i16)(_1), (v16i16)(_2), (_3)))
22205f757f3fSDimitry Andric 
22215f757f3fSDimitry Andric #define __lasx_xvextrins_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)         \
22225f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvextrins_w((v8i32)(_1), (v8i32)(_2), (_3)))
22235f757f3fSDimitry Andric 
22245f757f3fSDimitry Andric #define __lasx_xvextrins_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)         \
22255f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvextrins_d((v4i64)(_1), (v4i64)(_2), (_3)))
22265f757f3fSDimitry Andric 
22275f757f3fSDimitry Andric extern __inline
22285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22295f757f3fSDimitry Andric     __lasx_xvmskltz_b(__m256i _1) {
22305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmskltz_b((v32i8)_1);
22315f757f3fSDimitry Andric }
22325f757f3fSDimitry Andric 
22335f757f3fSDimitry Andric extern __inline
22345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22355f757f3fSDimitry Andric     __lasx_xvmskltz_h(__m256i _1) {
22365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmskltz_h((v16i16)_1);
22375f757f3fSDimitry Andric }
22385f757f3fSDimitry Andric 
22395f757f3fSDimitry Andric extern __inline
22405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22415f757f3fSDimitry Andric     __lasx_xvmskltz_w(__m256i _1) {
22425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmskltz_w((v8i32)_1);
22435f757f3fSDimitry Andric }
22445f757f3fSDimitry Andric 
22455f757f3fSDimitry Andric extern __inline
22465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22475f757f3fSDimitry Andric     __lasx_xvmskltz_d(__m256i _1) {
22485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmskltz_d((v4i64)_1);
22495f757f3fSDimitry Andric }
22505f757f3fSDimitry Andric 
22515f757f3fSDimitry Andric extern __inline
22525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22535f757f3fSDimitry Andric     __lasx_xvsigncov_b(__m256i _1, __m256i _2) {
22545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsigncov_b((v32i8)_1, (v32i8)_2);
22555f757f3fSDimitry Andric }
22565f757f3fSDimitry Andric 
22575f757f3fSDimitry Andric extern __inline
22585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22595f757f3fSDimitry Andric     __lasx_xvsigncov_h(__m256i _1, __m256i _2) {
22605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsigncov_h((v16i16)_1, (v16i16)_2);
22615f757f3fSDimitry Andric }
22625f757f3fSDimitry Andric 
22635f757f3fSDimitry Andric extern __inline
22645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22655f757f3fSDimitry Andric     __lasx_xvsigncov_w(__m256i _1, __m256i _2) {
22665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsigncov_w((v8i32)_1, (v8i32)_2);
22675f757f3fSDimitry Andric }
22685f757f3fSDimitry Andric 
22695f757f3fSDimitry Andric extern __inline
22705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
22715f757f3fSDimitry Andric     __lasx_xvsigncov_d(__m256i _1, __m256i _2) {
22725f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsigncov_d((v4i64)_1, (v4i64)_2);
22735f757f3fSDimitry Andric }
22745f757f3fSDimitry Andric 
22755f757f3fSDimitry Andric extern __inline
22765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
22775f757f3fSDimitry Andric     __lasx_xvfmadd_s(__m256 _1, __m256 _2, __m256 _3) {
22785f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfmadd_s((v8f32)_1, (v8f32)_2, (v8f32)_3);
22795f757f3fSDimitry Andric }
22805f757f3fSDimitry Andric 
22815f757f3fSDimitry Andric extern __inline
22825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
22835f757f3fSDimitry Andric     __lasx_xvfmadd_d(__m256d _1, __m256d _2, __m256d _3) {
22845f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfmadd_d((v4f64)_1, (v4f64)_2, (v4f64)_3);
22855f757f3fSDimitry Andric }
22865f757f3fSDimitry Andric 
22875f757f3fSDimitry Andric extern __inline
22885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
22895f757f3fSDimitry Andric     __lasx_xvfmsub_s(__m256 _1, __m256 _2, __m256 _3) {
22905f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfmsub_s((v8f32)_1, (v8f32)_2, (v8f32)_3);
22915f757f3fSDimitry Andric }
22925f757f3fSDimitry Andric 
22935f757f3fSDimitry Andric extern __inline
22945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
22955f757f3fSDimitry Andric     __lasx_xvfmsub_d(__m256d _1, __m256d _2, __m256d _3) {
22965f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfmsub_d((v4f64)_1, (v4f64)_2, (v4f64)_3);
22975f757f3fSDimitry Andric }
22985f757f3fSDimitry Andric 
22995f757f3fSDimitry Andric extern __inline
23005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
23015f757f3fSDimitry Andric     __lasx_xvfnmadd_s(__m256 _1, __m256 _2, __m256 _3) {
23025f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfnmadd_s((v8f32)_1, (v8f32)_2, (v8f32)_3);
23035f757f3fSDimitry Andric }
23045f757f3fSDimitry Andric 
23055f757f3fSDimitry Andric extern __inline
23065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
23075f757f3fSDimitry Andric     __lasx_xvfnmadd_d(__m256d _1, __m256d _2, __m256d _3) {
23085f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfnmadd_d((v4f64)_1, (v4f64)_2, (v4f64)_3);
23095f757f3fSDimitry Andric }
23105f757f3fSDimitry Andric 
23115f757f3fSDimitry Andric extern __inline
23125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
23135f757f3fSDimitry Andric     __lasx_xvfnmsub_s(__m256 _1, __m256 _2, __m256 _3) {
23145f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfnmsub_s((v8f32)_1, (v8f32)_2, (v8f32)_3);
23155f757f3fSDimitry Andric }
23165f757f3fSDimitry Andric 
23175f757f3fSDimitry Andric extern __inline
23185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
23195f757f3fSDimitry Andric     __lasx_xvfnmsub_d(__m256d _1, __m256d _2, __m256d _3) {
23205f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfnmsub_d((v4f64)_1, (v4f64)_2, (v4f64)_3);
23215f757f3fSDimitry Andric }
23225f757f3fSDimitry Andric 
23235f757f3fSDimitry Andric extern __inline
23245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23255f757f3fSDimitry Andric     __lasx_xvftintrne_w_s(__m256 _1) {
23265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrne_w_s((v8f32)_1);
23275f757f3fSDimitry Andric }
23285f757f3fSDimitry Andric 
23295f757f3fSDimitry Andric extern __inline
23305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23315f757f3fSDimitry Andric     __lasx_xvftintrne_l_d(__m256d _1) {
23325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrne_l_d((v4f64)_1);
23335f757f3fSDimitry Andric }
23345f757f3fSDimitry Andric 
23355f757f3fSDimitry Andric extern __inline
23365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23375f757f3fSDimitry Andric     __lasx_xvftintrp_w_s(__m256 _1) {
23385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrp_w_s((v8f32)_1);
23395f757f3fSDimitry Andric }
23405f757f3fSDimitry Andric 
23415f757f3fSDimitry Andric extern __inline
23425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23435f757f3fSDimitry Andric     __lasx_xvftintrp_l_d(__m256d _1) {
23445f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrp_l_d((v4f64)_1);
23455f757f3fSDimitry Andric }
23465f757f3fSDimitry Andric 
23475f757f3fSDimitry Andric extern __inline
23485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23495f757f3fSDimitry Andric     __lasx_xvftintrm_w_s(__m256 _1) {
23505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrm_w_s((v8f32)_1);
23515f757f3fSDimitry Andric }
23525f757f3fSDimitry Andric 
23535f757f3fSDimitry Andric extern __inline
23545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23555f757f3fSDimitry Andric     __lasx_xvftintrm_l_d(__m256d _1) {
23565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrm_l_d((v4f64)_1);
23575f757f3fSDimitry Andric }
23585f757f3fSDimitry Andric 
23595f757f3fSDimitry Andric extern __inline
23605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23615f757f3fSDimitry Andric     __lasx_xvftint_w_d(__m256d _1, __m256d _2) {
23625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftint_w_d((v4f64)_1, (v4f64)_2);
23635f757f3fSDimitry Andric }
23645f757f3fSDimitry Andric 
23655f757f3fSDimitry Andric extern __inline
23665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
23675f757f3fSDimitry Andric     __lasx_xvffint_s_l(__m256i _1, __m256i _2) {
23685f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvffint_s_l((v4i64)_1, (v4i64)_2);
23695f757f3fSDimitry Andric }
23705f757f3fSDimitry Andric 
23715f757f3fSDimitry Andric extern __inline
23725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23735f757f3fSDimitry Andric     __lasx_xvftintrz_w_d(__m256d _1, __m256d _2) {
23745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrz_w_d((v4f64)_1, (v4f64)_2);
23755f757f3fSDimitry Andric }
23765f757f3fSDimitry Andric 
23775f757f3fSDimitry Andric extern __inline
23785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23795f757f3fSDimitry Andric     __lasx_xvftintrp_w_d(__m256d _1, __m256d _2) {
23805f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrp_w_d((v4f64)_1, (v4f64)_2);
23815f757f3fSDimitry Andric }
23825f757f3fSDimitry Andric 
23835f757f3fSDimitry Andric extern __inline
23845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23855f757f3fSDimitry Andric     __lasx_xvftintrm_w_d(__m256d _1, __m256d _2) {
23865f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrm_w_d((v4f64)_1, (v4f64)_2);
23875f757f3fSDimitry Andric }
23885f757f3fSDimitry Andric 
23895f757f3fSDimitry Andric extern __inline
23905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23915f757f3fSDimitry Andric     __lasx_xvftintrne_w_d(__m256d _1, __m256d _2) {
23925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrne_w_d((v4f64)_1, (v4f64)_2);
23935f757f3fSDimitry Andric }
23945f757f3fSDimitry Andric 
23955f757f3fSDimitry Andric extern __inline
23965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
23975f757f3fSDimitry Andric     __lasx_xvftinth_l_s(__m256 _1) {
23985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftinth_l_s((v8f32)_1);
23995f757f3fSDimitry Andric }
24005f757f3fSDimitry Andric 
24015f757f3fSDimitry Andric extern __inline
24025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24035f757f3fSDimitry Andric     __lasx_xvftintl_l_s(__m256 _1) {
24045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintl_l_s((v8f32)_1);
24055f757f3fSDimitry Andric }
24065f757f3fSDimitry Andric 
24075f757f3fSDimitry Andric extern __inline
24085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
24095f757f3fSDimitry Andric     __lasx_xvffinth_d_w(__m256i _1) {
24105f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvffinth_d_w((v8i32)_1);
24115f757f3fSDimitry Andric }
24125f757f3fSDimitry Andric 
24135f757f3fSDimitry Andric extern __inline
24145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
24155f757f3fSDimitry Andric     __lasx_xvffintl_d_w(__m256i _1) {
24165f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvffintl_d_w((v8i32)_1);
24175f757f3fSDimitry Andric }
24185f757f3fSDimitry Andric 
24195f757f3fSDimitry Andric extern __inline
24205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24215f757f3fSDimitry Andric     __lasx_xvftintrzh_l_s(__m256 _1) {
24225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrzh_l_s((v8f32)_1);
24235f757f3fSDimitry Andric }
24245f757f3fSDimitry Andric 
24255f757f3fSDimitry Andric extern __inline
24265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24275f757f3fSDimitry Andric     __lasx_xvftintrzl_l_s(__m256 _1) {
24285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrzl_l_s((v8f32)_1);
24295f757f3fSDimitry Andric }
24305f757f3fSDimitry Andric 
24315f757f3fSDimitry Andric extern __inline
24325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24335f757f3fSDimitry Andric     __lasx_xvftintrph_l_s(__m256 _1) {
24345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrph_l_s((v8f32)_1);
24355f757f3fSDimitry Andric }
24365f757f3fSDimitry Andric 
24375f757f3fSDimitry Andric extern __inline
24385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24395f757f3fSDimitry Andric     __lasx_xvftintrpl_l_s(__m256 _1) {
24405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrpl_l_s((v8f32)_1);
24415f757f3fSDimitry Andric }
24425f757f3fSDimitry Andric 
24435f757f3fSDimitry Andric extern __inline
24445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24455f757f3fSDimitry Andric     __lasx_xvftintrmh_l_s(__m256 _1) {
24465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrmh_l_s((v8f32)_1);
24475f757f3fSDimitry Andric }
24485f757f3fSDimitry Andric 
24495f757f3fSDimitry Andric extern __inline
24505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24515f757f3fSDimitry Andric     __lasx_xvftintrml_l_s(__m256 _1) {
24525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrml_l_s((v8f32)_1);
24535f757f3fSDimitry Andric }
24545f757f3fSDimitry Andric 
24555f757f3fSDimitry Andric extern __inline
24565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24575f757f3fSDimitry Andric     __lasx_xvftintrneh_l_s(__m256 _1) {
24585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrneh_l_s((v8f32)_1);
24595f757f3fSDimitry Andric }
24605f757f3fSDimitry Andric 
24615f757f3fSDimitry Andric extern __inline
24625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
24635f757f3fSDimitry Andric     __lasx_xvftintrnel_l_s(__m256 _1) {
24645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvftintrnel_l_s((v8f32)_1);
24655f757f3fSDimitry Andric }
24665f757f3fSDimitry Andric 
24675f757f3fSDimitry Andric extern __inline
24685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
24695f757f3fSDimitry Andric     __lasx_xvfrintrne_s(__m256 _1) {
24705f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfrintrne_s((v8f32)_1);
24715f757f3fSDimitry Andric }
24725f757f3fSDimitry Andric 
24735f757f3fSDimitry Andric extern __inline
24745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
24755f757f3fSDimitry Andric     __lasx_xvfrintrne_d(__m256d _1) {
24765f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfrintrne_d((v4f64)_1);
24775f757f3fSDimitry Andric }
24785f757f3fSDimitry Andric 
24795f757f3fSDimitry Andric extern __inline
24805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
24815f757f3fSDimitry Andric     __lasx_xvfrintrz_s(__m256 _1) {
24825f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfrintrz_s((v8f32)_1);
24835f757f3fSDimitry Andric }
24845f757f3fSDimitry Andric 
24855f757f3fSDimitry Andric extern __inline
24865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
24875f757f3fSDimitry Andric     __lasx_xvfrintrz_d(__m256d _1) {
24885f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfrintrz_d((v4f64)_1);
24895f757f3fSDimitry Andric }
24905f757f3fSDimitry Andric 
24915f757f3fSDimitry Andric extern __inline
24925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
24935f757f3fSDimitry Andric     __lasx_xvfrintrp_s(__m256 _1) {
24945f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfrintrp_s((v8f32)_1);
24955f757f3fSDimitry Andric }
24965f757f3fSDimitry Andric 
24975f757f3fSDimitry Andric extern __inline
24985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
24995f757f3fSDimitry Andric     __lasx_xvfrintrp_d(__m256d _1) {
25005f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfrintrp_d((v4f64)_1);
25015f757f3fSDimitry Andric }
25025f757f3fSDimitry Andric 
25035f757f3fSDimitry Andric extern __inline
25045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256
25055f757f3fSDimitry Andric     __lasx_xvfrintrm_s(__m256 _1) {
25065f757f3fSDimitry Andric   return (__m256)__builtin_lasx_xvfrintrm_s((v8f32)_1);
25075f757f3fSDimitry Andric }
25085f757f3fSDimitry Andric 
25095f757f3fSDimitry Andric extern __inline
25105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256d
25115f757f3fSDimitry Andric     __lasx_xvfrintrm_d(__m256d _1) {
25125f757f3fSDimitry Andric   return (__m256d)__builtin_lasx_xvfrintrm_d((v4f64)_1);
25135f757f3fSDimitry Andric }
25145f757f3fSDimitry Andric 
25155f757f3fSDimitry Andric #define __lasx_xvld(/*void **/ _1, /*si12*/ _2)                                \
25165f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvld((void const *)(_1), (_2)))
25175f757f3fSDimitry Andric 
25185f757f3fSDimitry Andric #define __lasx_xvst(/*__m256i*/ _1, /*void **/ _2, /*si12*/ _3)                \
25195f757f3fSDimitry Andric   ((void)__builtin_lasx_xvst((v32i8)(_1), (void *)(_2), (_3)))
25205f757f3fSDimitry Andric 
25215f757f3fSDimitry Andric #define __lasx_xvstelm_b(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3,            \
25225f757f3fSDimitry Andric                          /*idx*/ _4)                                           \
25235f757f3fSDimitry Andric   ((void)__builtin_lasx_xvstelm_b((v32i8)(_1), (void *)(_2), (_3), (_4)))
25245f757f3fSDimitry Andric 
25255f757f3fSDimitry Andric #define __lasx_xvstelm_h(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3,            \
25265f757f3fSDimitry Andric                          /*idx*/ _4)                                           \
25275f757f3fSDimitry Andric   ((void)__builtin_lasx_xvstelm_h((v16i16)(_1), (void *)(_2), (_3), (_4)))
25285f757f3fSDimitry Andric 
25295f757f3fSDimitry Andric #define __lasx_xvstelm_w(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3,            \
25305f757f3fSDimitry Andric                          /*idx*/ _4)                                           \
25315f757f3fSDimitry Andric   ((void)__builtin_lasx_xvstelm_w((v8i32)(_1), (void *)(_2), (_3), (_4)))
25325f757f3fSDimitry Andric 
25335f757f3fSDimitry Andric #define __lasx_xvstelm_d(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3,            \
25345f757f3fSDimitry Andric                          /*idx*/ _4)                                           \
25355f757f3fSDimitry Andric   ((void)__builtin_lasx_xvstelm_d((v4i64)(_1), (void *)(_2), (_3), (_4)))
25365f757f3fSDimitry Andric 
25375f757f3fSDimitry Andric #define __lasx_xvinsve0_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui3*/ _3)          \
25385f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvinsve0_w((v8i32)(_1), (v8i32)(_2), (_3)))
25395f757f3fSDimitry Andric 
25405f757f3fSDimitry Andric #define __lasx_xvinsve0_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui2*/ _3)          \
25415f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvinsve0_d((v4i64)(_1), (v4i64)(_2), (_3)))
25425f757f3fSDimitry Andric 
25435f757f3fSDimitry Andric #define __lasx_xvpickve_w(/*__m256i*/ _1, /*ui3*/ _2)                          \
25445f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvpickve_w((v8i32)(_1), (_2)))
25455f757f3fSDimitry Andric 
25465f757f3fSDimitry Andric #define __lasx_xvpickve_d(/*__m256i*/ _1, /*ui2*/ _2)                          \
25475f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvpickve_d((v4i64)(_1), (_2)))
25485f757f3fSDimitry Andric 
25495f757f3fSDimitry Andric extern __inline
25505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25515f757f3fSDimitry Andric     __lasx_xvssrlrn_b_h(__m256i _1, __m256i _2) {
25525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrlrn_b_h((v16i16)_1, (v16i16)_2);
25535f757f3fSDimitry Andric }
25545f757f3fSDimitry Andric 
25555f757f3fSDimitry Andric extern __inline
25565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25575f757f3fSDimitry Andric     __lasx_xvssrlrn_h_w(__m256i _1, __m256i _2) {
25585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrlrn_h_w((v8i32)_1, (v8i32)_2);
25595f757f3fSDimitry Andric }
25605f757f3fSDimitry Andric 
25615f757f3fSDimitry Andric extern __inline
25625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25635f757f3fSDimitry Andric     __lasx_xvssrlrn_w_d(__m256i _1, __m256i _2) {
25645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrlrn_w_d((v4i64)_1, (v4i64)_2);
25655f757f3fSDimitry Andric }
25665f757f3fSDimitry Andric 
25675f757f3fSDimitry Andric extern __inline
25685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25695f757f3fSDimitry Andric     __lasx_xvssrln_b_h(__m256i _1, __m256i _2) {
25705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrln_b_h((v16i16)_1, (v16i16)_2);
25715f757f3fSDimitry Andric }
25725f757f3fSDimitry Andric 
25735f757f3fSDimitry Andric extern __inline
25745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25755f757f3fSDimitry Andric     __lasx_xvssrln_h_w(__m256i _1, __m256i _2) {
25765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrln_h_w((v8i32)_1, (v8i32)_2);
25775f757f3fSDimitry Andric }
25785f757f3fSDimitry Andric 
25795f757f3fSDimitry Andric extern __inline
25805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25815f757f3fSDimitry Andric     __lasx_xvssrln_w_d(__m256i _1, __m256i _2) {
25825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvssrln_w_d((v4i64)_1, (v4i64)_2);
25835f757f3fSDimitry Andric }
25845f757f3fSDimitry Andric 
25855f757f3fSDimitry Andric extern __inline
25865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25875f757f3fSDimitry Andric     __lasx_xvorn_v(__m256i _1, __m256i _2) {
25885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvorn_v((v32i8)_1, (v32i8)_2);
25895f757f3fSDimitry Andric }
25905f757f3fSDimitry Andric 
25915f757f3fSDimitry Andric #define __lasx_xvldi(/*i13*/ _1) ((__m256i)__builtin_lasx_xvldi((_1)))
25925f757f3fSDimitry Andric 
25935f757f3fSDimitry Andric extern __inline
25945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
25955f757f3fSDimitry Andric     __lasx_xvldx(void const *_1, long int _2) {
25965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvldx((void const *)_1, (long int)_2);
25975f757f3fSDimitry Andric }
25985f757f3fSDimitry Andric 
25995f757f3fSDimitry Andric extern __inline
26005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) void
26015f757f3fSDimitry Andric     __lasx_xvstx(__m256i _1, void *_2, long int _3) {
26025f757f3fSDimitry Andric   return (void)__builtin_lasx_xvstx((v32i8)_1, (void *)_2, (long int)_3);
26035f757f3fSDimitry Andric }
26045f757f3fSDimitry Andric 
26055f757f3fSDimitry Andric extern __inline
26065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26075f757f3fSDimitry Andric     __lasx_xvextl_qu_du(__m256i _1) {
26085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvextl_qu_du((v4u64)_1);
26095f757f3fSDimitry Andric }
26105f757f3fSDimitry Andric 
26115f757f3fSDimitry Andric #define __lasx_xvinsgr2vr_w(/*__m256i*/ _1, /*int*/ _2, /*ui3*/ _3)            \
26125f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvinsgr2vr_w((v8i32)(_1), (int)(_2), (_3)))
26135f757f3fSDimitry Andric 
26145f757f3fSDimitry Andric #define __lasx_xvinsgr2vr_d(/*__m256i*/ _1, /*long int*/ _2, /*ui2*/ _3)       \
26155f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvinsgr2vr_d((v4i64)(_1), (long int)(_2), (_3)))
26165f757f3fSDimitry Andric 
26175f757f3fSDimitry Andric extern __inline
26185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26195f757f3fSDimitry Andric     __lasx_xvreplve0_b(__m256i _1) {
26205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve0_b((v32i8)_1);
26215f757f3fSDimitry Andric }
26225f757f3fSDimitry Andric 
26235f757f3fSDimitry Andric extern __inline
26245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26255f757f3fSDimitry Andric     __lasx_xvreplve0_h(__m256i _1) {
26265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve0_h((v16i16)_1);
26275f757f3fSDimitry Andric }
26285f757f3fSDimitry Andric 
26295f757f3fSDimitry Andric extern __inline
26305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26315f757f3fSDimitry Andric     __lasx_xvreplve0_w(__m256i _1) {
26325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve0_w((v8i32)_1);
26335f757f3fSDimitry Andric }
26345f757f3fSDimitry Andric 
26355f757f3fSDimitry Andric extern __inline
26365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26375f757f3fSDimitry Andric     __lasx_xvreplve0_d(__m256i _1) {
26385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve0_d((v4i64)_1);
26395f757f3fSDimitry Andric }
26405f757f3fSDimitry Andric 
26415f757f3fSDimitry Andric extern __inline
26425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26435f757f3fSDimitry Andric     __lasx_xvreplve0_q(__m256i _1) {
26445f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvreplve0_q((v32i8)_1);
26455f757f3fSDimitry Andric }
26465f757f3fSDimitry Andric 
26475f757f3fSDimitry Andric extern __inline
26485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26495f757f3fSDimitry Andric     __lasx_vext2xv_h_b(__m256i _1) {
26505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_h_b((v32i8)_1);
26515f757f3fSDimitry Andric }
26525f757f3fSDimitry Andric 
26535f757f3fSDimitry Andric extern __inline
26545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26555f757f3fSDimitry Andric     __lasx_vext2xv_w_h(__m256i _1) {
26565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_w_h((v16i16)_1);
26575f757f3fSDimitry Andric }
26585f757f3fSDimitry Andric 
26595f757f3fSDimitry Andric extern __inline
26605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26615f757f3fSDimitry Andric     __lasx_vext2xv_d_w(__m256i _1) {
26625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_d_w((v8i32)_1);
26635f757f3fSDimitry Andric }
26645f757f3fSDimitry Andric 
26655f757f3fSDimitry Andric extern __inline
26665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26675f757f3fSDimitry Andric     __lasx_vext2xv_w_b(__m256i _1) {
26685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_w_b((v32i8)_1);
26695f757f3fSDimitry Andric }
26705f757f3fSDimitry Andric 
26715f757f3fSDimitry Andric extern __inline
26725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26735f757f3fSDimitry Andric     __lasx_vext2xv_d_h(__m256i _1) {
26745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_d_h((v16i16)_1);
26755f757f3fSDimitry Andric }
26765f757f3fSDimitry Andric 
26775f757f3fSDimitry Andric extern __inline
26785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26795f757f3fSDimitry Andric     __lasx_vext2xv_d_b(__m256i _1) {
26805f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_d_b((v32i8)_1);
26815f757f3fSDimitry Andric }
26825f757f3fSDimitry Andric 
26835f757f3fSDimitry Andric extern __inline
26845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26855f757f3fSDimitry Andric     __lasx_vext2xv_hu_bu(__m256i _1) {
26865f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_hu_bu((v32i8)_1);
26875f757f3fSDimitry Andric }
26885f757f3fSDimitry Andric 
26895f757f3fSDimitry Andric extern __inline
26905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26915f757f3fSDimitry Andric     __lasx_vext2xv_wu_hu(__m256i _1) {
26925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_wu_hu((v16i16)_1);
26935f757f3fSDimitry Andric }
26945f757f3fSDimitry Andric 
26955f757f3fSDimitry Andric extern __inline
26965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
26975f757f3fSDimitry Andric     __lasx_vext2xv_du_wu(__m256i _1) {
26985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_du_wu((v8i32)_1);
26995f757f3fSDimitry Andric }
27005f757f3fSDimitry Andric 
27015f757f3fSDimitry Andric extern __inline
27025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27035f757f3fSDimitry Andric     __lasx_vext2xv_wu_bu(__m256i _1) {
27045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_wu_bu((v32i8)_1);
27055f757f3fSDimitry Andric }
27065f757f3fSDimitry Andric 
27075f757f3fSDimitry Andric extern __inline
27085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27095f757f3fSDimitry Andric     __lasx_vext2xv_du_hu(__m256i _1) {
27105f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_du_hu((v16i16)_1);
27115f757f3fSDimitry Andric }
27125f757f3fSDimitry Andric 
27135f757f3fSDimitry Andric extern __inline
27145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27155f757f3fSDimitry Andric     __lasx_vext2xv_du_bu(__m256i _1) {
27165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_vext2xv_du_bu((v32i8)_1);
27175f757f3fSDimitry Andric }
27185f757f3fSDimitry Andric 
27195f757f3fSDimitry Andric #define __lasx_xvpermi_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3)           \
27205f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvpermi_q((v32i8)(_1), (v32i8)(_2), (_3)))
27215f757f3fSDimitry Andric 
27225f757f3fSDimitry Andric #define __lasx_xvpermi_d(/*__m256i*/ _1, /*ui8*/ _2)                           \
27235f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvpermi_d((v4i64)(_1), (_2)))
27245f757f3fSDimitry Andric 
27255f757f3fSDimitry Andric extern __inline
27265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27275f757f3fSDimitry Andric     __lasx_xvperm_w(__m256i _1, __m256i _2) {
27285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvperm_w((v8i32)_1, (v8i32)_2);
27295f757f3fSDimitry Andric }
27305f757f3fSDimitry Andric 
27315f757f3fSDimitry Andric #define __lasx_xvldrepl_b(/*void **/ _1, /*si12*/ _2)                          \
27325f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvldrepl_b((void const *)(_1), (_2)))
27335f757f3fSDimitry Andric 
27345f757f3fSDimitry Andric #define __lasx_xvldrepl_h(/*void **/ _1, /*si11*/ _2)                          \
27355f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvldrepl_h((void const *)(_1), (_2)))
27365f757f3fSDimitry Andric 
27375f757f3fSDimitry Andric #define __lasx_xvldrepl_w(/*void **/ _1, /*si10*/ _2)                          \
27385f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvldrepl_w((void const *)(_1), (_2)))
27395f757f3fSDimitry Andric 
27405f757f3fSDimitry Andric #define __lasx_xvldrepl_d(/*void **/ _1, /*si9*/ _2)                           \
27415f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvldrepl_d((void const *)(_1), (_2)))
27425f757f3fSDimitry Andric 
27435f757f3fSDimitry Andric #define __lasx_xvpickve2gr_w(/*__m256i*/ _1, /*ui3*/ _2)                       \
27445f757f3fSDimitry Andric   ((int)__builtin_lasx_xvpickve2gr_w((v8i32)(_1), (_2)))
27455f757f3fSDimitry Andric 
27465f757f3fSDimitry Andric #define __lasx_xvpickve2gr_wu(/*__m256i*/ _1, /*ui3*/ _2)                      \
27475f757f3fSDimitry Andric   ((unsigned int)__builtin_lasx_xvpickve2gr_wu((v8i32)(_1), (_2)))
27485f757f3fSDimitry Andric 
27495f757f3fSDimitry Andric #define __lasx_xvpickve2gr_d(/*__m256i*/ _1, /*ui2*/ _2)                       \
27505f757f3fSDimitry Andric   ((long int)__builtin_lasx_xvpickve2gr_d((v4i64)(_1), (_2)))
27515f757f3fSDimitry Andric 
27525f757f3fSDimitry Andric #define __lasx_xvpickve2gr_du(/*__m256i*/ _1, /*ui2*/ _2)                      \
27535f757f3fSDimitry Andric   ((unsigned long int)__builtin_lasx_xvpickve2gr_du((v4i64)(_1), (_2)))
27545f757f3fSDimitry Andric 
27555f757f3fSDimitry Andric extern __inline
27565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27575f757f3fSDimitry Andric     __lasx_xvaddwev_q_d(__m256i _1, __m256i _2) {
27585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_q_d((v4i64)_1, (v4i64)_2);
27595f757f3fSDimitry Andric }
27605f757f3fSDimitry Andric 
27615f757f3fSDimitry Andric extern __inline
27625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27635f757f3fSDimitry Andric     __lasx_xvaddwev_d_w(__m256i _1, __m256i _2) {
27645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_d_w((v8i32)_1, (v8i32)_2);
27655f757f3fSDimitry Andric }
27665f757f3fSDimitry Andric 
27675f757f3fSDimitry Andric extern __inline
27685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27695f757f3fSDimitry Andric     __lasx_xvaddwev_w_h(__m256i _1, __m256i _2) {
27705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_w_h((v16i16)_1, (v16i16)_2);
27715f757f3fSDimitry Andric }
27725f757f3fSDimitry Andric 
27735f757f3fSDimitry Andric extern __inline
27745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27755f757f3fSDimitry Andric     __lasx_xvaddwev_h_b(__m256i _1, __m256i _2) {
27765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_h_b((v32i8)_1, (v32i8)_2);
27775f757f3fSDimitry Andric }
27785f757f3fSDimitry Andric 
27795f757f3fSDimitry Andric extern __inline
27805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27815f757f3fSDimitry Andric     __lasx_xvaddwev_q_du(__m256i _1, __m256i _2) {
27825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_q_du((v4u64)_1, (v4u64)_2);
27835f757f3fSDimitry Andric }
27845f757f3fSDimitry Andric 
27855f757f3fSDimitry Andric extern __inline
27865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27875f757f3fSDimitry Andric     __lasx_xvaddwev_d_wu(__m256i _1, __m256i _2) {
27885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_d_wu((v8u32)_1, (v8u32)_2);
27895f757f3fSDimitry Andric }
27905f757f3fSDimitry Andric 
27915f757f3fSDimitry Andric extern __inline
27925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27935f757f3fSDimitry Andric     __lasx_xvaddwev_w_hu(__m256i _1, __m256i _2) {
27945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_w_hu((v16u16)_1, (v16u16)_2);
27955f757f3fSDimitry Andric }
27965f757f3fSDimitry Andric 
27975f757f3fSDimitry Andric extern __inline
27985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
27995f757f3fSDimitry Andric     __lasx_xvaddwev_h_bu(__m256i _1, __m256i _2) {
28005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_h_bu((v32u8)_1, (v32u8)_2);
28015f757f3fSDimitry Andric }
28025f757f3fSDimitry Andric 
28035f757f3fSDimitry Andric extern __inline
28045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28055f757f3fSDimitry Andric     __lasx_xvsubwev_q_d(__m256i _1, __m256i _2) {
28065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_q_d((v4i64)_1, (v4i64)_2);
28075f757f3fSDimitry Andric }
28085f757f3fSDimitry Andric 
28095f757f3fSDimitry Andric extern __inline
28105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28115f757f3fSDimitry Andric     __lasx_xvsubwev_d_w(__m256i _1, __m256i _2) {
28125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_d_w((v8i32)_1, (v8i32)_2);
28135f757f3fSDimitry Andric }
28145f757f3fSDimitry Andric 
28155f757f3fSDimitry Andric extern __inline
28165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28175f757f3fSDimitry Andric     __lasx_xvsubwev_w_h(__m256i _1, __m256i _2) {
28185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_w_h((v16i16)_1, (v16i16)_2);
28195f757f3fSDimitry Andric }
28205f757f3fSDimitry Andric 
28215f757f3fSDimitry Andric extern __inline
28225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28235f757f3fSDimitry Andric     __lasx_xvsubwev_h_b(__m256i _1, __m256i _2) {
28245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_h_b((v32i8)_1, (v32i8)_2);
28255f757f3fSDimitry Andric }
28265f757f3fSDimitry Andric 
28275f757f3fSDimitry Andric extern __inline
28285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28295f757f3fSDimitry Andric     __lasx_xvsubwev_q_du(__m256i _1, __m256i _2) {
28305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_q_du((v4u64)_1, (v4u64)_2);
28315f757f3fSDimitry Andric }
28325f757f3fSDimitry Andric 
28335f757f3fSDimitry Andric extern __inline
28345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28355f757f3fSDimitry Andric     __lasx_xvsubwev_d_wu(__m256i _1, __m256i _2) {
28365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_d_wu((v8u32)_1, (v8u32)_2);
28375f757f3fSDimitry Andric }
28385f757f3fSDimitry Andric 
28395f757f3fSDimitry Andric extern __inline
28405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28415f757f3fSDimitry Andric     __lasx_xvsubwev_w_hu(__m256i _1, __m256i _2) {
28425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_w_hu((v16u16)_1, (v16u16)_2);
28435f757f3fSDimitry Andric }
28445f757f3fSDimitry Andric 
28455f757f3fSDimitry Andric extern __inline
28465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28475f757f3fSDimitry Andric     __lasx_xvsubwev_h_bu(__m256i _1, __m256i _2) {
28485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwev_h_bu((v32u8)_1, (v32u8)_2);
28495f757f3fSDimitry Andric }
28505f757f3fSDimitry Andric 
28515f757f3fSDimitry Andric extern __inline
28525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28535f757f3fSDimitry Andric     __lasx_xvmulwev_q_d(__m256i _1, __m256i _2) {
28545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_q_d((v4i64)_1, (v4i64)_2);
28555f757f3fSDimitry Andric }
28565f757f3fSDimitry Andric 
28575f757f3fSDimitry Andric extern __inline
28585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28595f757f3fSDimitry Andric     __lasx_xvmulwev_d_w(__m256i _1, __m256i _2) {
28605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_d_w((v8i32)_1, (v8i32)_2);
28615f757f3fSDimitry Andric }
28625f757f3fSDimitry Andric 
28635f757f3fSDimitry Andric extern __inline
28645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28655f757f3fSDimitry Andric     __lasx_xvmulwev_w_h(__m256i _1, __m256i _2) {
28665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_w_h((v16i16)_1, (v16i16)_2);
28675f757f3fSDimitry Andric }
28685f757f3fSDimitry Andric 
28695f757f3fSDimitry Andric extern __inline
28705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28715f757f3fSDimitry Andric     __lasx_xvmulwev_h_b(__m256i _1, __m256i _2) {
28725f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_h_b((v32i8)_1, (v32i8)_2);
28735f757f3fSDimitry Andric }
28745f757f3fSDimitry Andric 
28755f757f3fSDimitry Andric extern __inline
28765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28775f757f3fSDimitry Andric     __lasx_xvmulwev_q_du(__m256i _1, __m256i _2) {
28785f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_q_du((v4u64)_1, (v4u64)_2);
28795f757f3fSDimitry Andric }
28805f757f3fSDimitry Andric 
28815f757f3fSDimitry Andric extern __inline
28825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28835f757f3fSDimitry Andric     __lasx_xvmulwev_d_wu(__m256i _1, __m256i _2) {
28845f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_d_wu((v8u32)_1, (v8u32)_2);
28855f757f3fSDimitry Andric }
28865f757f3fSDimitry Andric 
28875f757f3fSDimitry Andric extern __inline
28885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28895f757f3fSDimitry Andric     __lasx_xvmulwev_w_hu(__m256i _1, __m256i _2) {
28905f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_w_hu((v16u16)_1, (v16u16)_2);
28915f757f3fSDimitry Andric }
28925f757f3fSDimitry Andric 
28935f757f3fSDimitry Andric extern __inline
28945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
28955f757f3fSDimitry Andric     __lasx_xvmulwev_h_bu(__m256i _1, __m256i _2) {
28965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_h_bu((v32u8)_1, (v32u8)_2);
28975f757f3fSDimitry Andric }
28985f757f3fSDimitry Andric 
28995f757f3fSDimitry Andric extern __inline
29005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29015f757f3fSDimitry Andric     __lasx_xvaddwod_q_d(__m256i _1, __m256i _2) {
29025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_q_d((v4i64)_1, (v4i64)_2);
29035f757f3fSDimitry Andric }
29045f757f3fSDimitry Andric 
29055f757f3fSDimitry Andric extern __inline
29065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29075f757f3fSDimitry Andric     __lasx_xvaddwod_d_w(__m256i _1, __m256i _2) {
29085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_d_w((v8i32)_1, (v8i32)_2);
29095f757f3fSDimitry Andric }
29105f757f3fSDimitry Andric 
29115f757f3fSDimitry Andric extern __inline
29125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29135f757f3fSDimitry Andric     __lasx_xvaddwod_w_h(__m256i _1, __m256i _2) {
29145f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_w_h((v16i16)_1, (v16i16)_2);
29155f757f3fSDimitry Andric }
29165f757f3fSDimitry Andric 
29175f757f3fSDimitry Andric extern __inline
29185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29195f757f3fSDimitry Andric     __lasx_xvaddwod_h_b(__m256i _1, __m256i _2) {
29205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_h_b((v32i8)_1, (v32i8)_2);
29215f757f3fSDimitry Andric }
29225f757f3fSDimitry Andric 
29235f757f3fSDimitry Andric extern __inline
29245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29255f757f3fSDimitry Andric     __lasx_xvaddwod_q_du(__m256i _1, __m256i _2) {
29265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_q_du((v4u64)_1, (v4u64)_2);
29275f757f3fSDimitry Andric }
29285f757f3fSDimitry Andric 
29295f757f3fSDimitry Andric extern __inline
29305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29315f757f3fSDimitry Andric     __lasx_xvaddwod_d_wu(__m256i _1, __m256i _2) {
29325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_d_wu((v8u32)_1, (v8u32)_2);
29335f757f3fSDimitry Andric }
29345f757f3fSDimitry Andric 
29355f757f3fSDimitry Andric extern __inline
29365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29375f757f3fSDimitry Andric     __lasx_xvaddwod_w_hu(__m256i _1, __m256i _2) {
29385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_w_hu((v16u16)_1, (v16u16)_2);
29395f757f3fSDimitry Andric }
29405f757f3fSDimitry Andric 
29415f757f3fSDimitry Andric extern __inline
29425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29435f757f3fSDimitry Andric     __lasx_xvaddwod_h_bu(__m256i _1, __m256i _2) {
29445f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_h_bu((v32u8)_1, (v32u8)_2);
29455f757f3fSDimitry Andric }
29465f757f3fSDimitry Andric 
29475f757f3fSDimitry Andric extern __inline
29485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29495f757f3fSDimitry Andric     __lasx_xvsubwod_q_d(__m256i _1, __m256i _2) {
29505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_q_d((v4i64)_1, (v4i64)_2);
29515f757f3fSDimitry Andric }
29525f757f3fSDimitry Andric 
29535f757f3fSDimitry Andric extern __inline
29545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29555f757f3fSDimitry Andric     __lasx_xvsubwod_d_w(__m256i _1, __m256i _2) {
29565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_d_w((v8i32)_1, (v8i32)_2);
29575f757f3fSDimitry Andric }
29585f757f3fSDimitry Andric 
29595f757f3fSDimitry Andric extern __inline
29605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29615f757f3fSDimitry Andric     __lasx_xvsubwod_w_h(__m256i _1, __m256i _2) {
29625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_w_h((v16i16)_1, (v16i16)_2);
29635f757f3fSDimitry Andric }
29645f757f3fSDimitry Andric 
29655f757f3fSDimitry Andric extern __inline
29665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29675f757f3fSDimitry Andric     __lasx_xvsubwod_h_b(__m256i _1, __m256i _2) {
29685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_h_b((v32i8)_1, (v32i8)_2);
29695f757f3fSDimitry Andric }
29705f757f3fSDimitry Andric 
29715f757f3fSDimitry Andric extern __inline
29725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29735f757f3fSDimitry Andric     __lasx_xvsubwod_q_du(__m256i _1, __m256i _2) {
29745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_q_du((v4u64)_1, (v4u64)_2);
29755f757f3fSDimitry Andric }
29765f757f3fSDimitry Andric 
29775f757f3fSDimitry Andric extern __inline
29785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29795f757f3fSDimitry Andric     __lasx_xvsubwod_d_wu(__m256i _1, __m256i _2) {
29805f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_d_wu((v8u32)_1, (v8u32)_2);
29815f757f3fSDimitry Andric }
29825f757f3fSDimitry Andric 
29835f757f3fSDimitry Andric extern __inline
29845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29855f757f3fSDimitry Andric     __lasx_xvsubwod_w_hu(__m256i _1, __m256i _2) {
29865f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_w_hu((v16u16)_1, (v16u16)_2);
29875f757f3fSDimitry Andric }
29885f757f3fSDimitry Andric 
29895f757f3fSDimitry Andric extern __inline
29905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29915f757f3fSDimitry Andric     __lasx_xvsubwod_h_bu(__m256i _1, __m256i _2) {
29925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsubwod_h_bu((v32u8)_1, (v32u8)_2);
29935f757f3fSDimitry Andric }
29945f757f3fSDimitry Andric 
29955f757f3fSDimitry Andric extern __inline
29965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
29975f757f3fSDimitry Andric     __lasx_xvmulwod_q_d(__m256i _1, __m256i _2) {
29985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_q_d((v4i64)_1, (v4i64)_2);
29995f757f3fSDimitry Andric }
30005f757f3fSDimitry Andric 
30015f757f3fSDimitry Andric extern __inline
30025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30035f757f3fSDimitry Andric     __lasx_xvmulwod_d_w(__m256i _1, __m256i _2) {
30045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_d_w((v8i32)_1, (v8i32)_2);
30055f757f3fSDimitry Andric }
30065f757f3fSDimitry Andric 
30075f757f3fSDimitry Andric extern __inline
30085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30095f757f3fSDimitry Andric     __lasx_xvmulwod_w_h(__m256i _1, __m256i _2) {
30105f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_w_h((v16i16)_1, (v16i16)_2);
30115f757f3fSDimitry Andric }
30125f757f3fSDimitry Andric 
30135f757f3fSDimitry Andric extern __inline
30145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30155f757f3fSDimitry Andric     __lasx_xvmulwod_h_b(__m256i _1, __m256i _2) {
30165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_h_b((v32i8)_1, (v32i8)_2);
30175f757f3fSDimitry Andric }
30185f757f3fSDimitry Andric 
30195f757f3fSDimitry Andric extern __inline
30205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30215f757f3fSDimitry Andric     __lasx_xvmulwod_q_du(__m256i _1, __m256i _2) {
30225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_q_du((v4u64)_1, (v4u64)_2);
30235f757f3fSDimitry Andric }
30245f757f3fSDimitry Andric 
30255f757f3fSDimitry Andric extern __inline
30265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30275f757f3fSDimitry Andric     __lasx_xvmulwod_d_wu(__m256i _1, __m256i _2) {
30285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_d_wu((v8u32)_1, (v8u32)_2);
30295f757f3fSDimitry Andric }
30305f757f3fSDimitry Andric 
30315f757f3fSDimitry Andric extern __inline
30325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30335f757f3fSDimitry Andric     __lasx_xvmulwod_w_hu(__m256i _1, __m256i _2) {
30345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_w_hu((v16u16)_1, (v16u16)_2);
30355f757f3fSDimitry Andric }
30365f757f3fSDimitry Andric 
30375f757f3fSDimitry Andric extern __inline
30385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30395f757f3fSDimitry Andric     __lasx_xvmulwod_h_bu(__m256i _1, __m256i _2) {
30405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_h_bu((v32u8)_1, (v32u8)_2);
30415f757f3fSDimitry Andric }
30425f757f3fSDimitry Andric 
30435f757f3fSDimitry Andric extern __inline
30445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30455f757f3fSDimitry Andric     __lasx_xvaddwev_d_wu_w(__m256i _1, __m256i _2) {
30465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_d_wu_w((v8u32)_1, (v8i32)_2);
30475f757f3fSDimitry Andric }
30485f757f3fSDimitry Andric 
30495f757f3fSDimitry Andric extern __inline
30505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30515f757f3fSDimitry Andric     __lasx_xvaddwev_w_hu_h(__m256i _1, __m256i _2) {
30525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_w_hu_h((v16u16)_1, (v16i16)_2);
30535f757f3fSDimitry Andric }
30545f757f3fSDimitry Andric 
30555f757f3fSDimitry Andric extern __inline
30565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30575f757f3fSDimitry Andric     __lasx_xvaddwev_h_bu_b(__m256i _1, __m256i _2) {
30585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_h_bu_b((v32u8)_1, (v32i8)_2);
30595f757f3fSDimitry Andric }
30605f757f3fSDimitry Andric 
30615f757f3fSDimitry Andric extern __inline
30625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30635f757f3fSDimitry Andric     __lasx_xvmulwev_d_wu_w(__m256i _1, __m256i _2) {
30645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_d_wu_w((v8u32)_1, (v8i32)_2);
30655f757f3fSDimitry Andric }
30665f757f3fSDimitry Andric 
30675f757f3fSDimitry Andric extern __inline
30685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30695f757f3fSDimitry Andric     __lasx_xvmulwev_w_hu_h(__m256i _1, __m256i _2) {
30705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_w_hu_h((v16u16)_1, (v16i16)_2);
30715f757f3fSDimitry Andric }
30725f757f3fSDimitry Andric 
30735f757f3fSDimitry Andric extern __inline
30745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30755f757f3fSDimitry Andric     __lasx_xvmulwev_h_bu_b(__m256i _1, __m256i _2) {
30765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_h_bu_b((v32u8)_1, (v32i8)_2);
30775f757f3fSDimitry Andric }
30785f757f3fSDimitry Andric 
30795f757f3fSDimitry Andric extern __inline
30805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30815f757f3fSDimitry Andric     __lasx_xvaddwod_d_wu_w(__m256i _1, __m256i _2) {
30825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_d_wu_w((v8u32)_1, (v8i32)_2);
30835f757f3fSDimitry Andric }
30845f757f3fSDimitry Andric 
30855f757f3fSDimitry Andric extern __inline
30865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30875f757f3fSDimitry Andric     __lasx_xvaddwod_w_hu_h(__m256i _1, __m256i _2) {
30885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_w_hu_h((v16u16)_1, (v16i16)_2);
30895f757f3fSDimitry Andric }
30905f757f3fSDimitry Andric 
30915f757f3fSDimitry Andric extern __inline
30925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30935f757f3fSDimitry Andric     __lasx_xvaddwod_h_bu_b(__m256i _1, __m256i _2) {
30945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_h_bu_b((v32u8)_1, (v32i8)_2);
30955f757f3fSDimitry Andric }
30965f757f3fSDimitry Andric 
30975f757f3fSDimitry Andric extern __inline
30985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
30995f757f3fSDimitry Andric     __lasx_xvmulwod_d_wu_w(__m256i _1, __m256i _2) {
31005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_d_wu_w((v8u32)_1, (v8i32)_2);
31015f757f3fSDimitry Andric }
31025f757f3fSDimitry Andric 
31035f757f3fSDimitry Andric extern __inline
31045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31055f757f3fSDimitry Andric     __lasx_xvmulwod_w_hu_h(__m256i _1, __m256i _2) {
31065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_w_hu_h((v16u16)_1, (v16i16)_2);
31075f757f3fSDimitry Andric }
31085f757f3fSDimitry Andric 
31095f757f3fSDimitry Andric extern __inline
31105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31115f757f3fSDimitry Andric     __lasx_xvmulwod_h_bu_b(__m256i _1, __m256i _2) {
31125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_h_bu_b((v32u8)_1, (v32i8)_2);
31135f757f3fSDimitry Andric }
31145f757f3fSDimitry Andric 
31155f757f3fSDimitry Andric extern __inline
31165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31175f757f3fSDimitry Andric     __lasx_xvhaddw_q_d(__m256i _1, __m256i _2) {
31185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_q_d((v4i64)_1, (v4i64)_2);
31195f757f3fSDimitry Andric }
31205f757f3fSDimitry Andric 
31215f757f3fSDimitry Andric extern __inline
31225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31235f757f3fSDimitry Andric     __lasx_xvhaddw_qu_du(__m256i _1, __m256i _2) {
31245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhaddw_qu_du((v4u64)_1, (v4u64)_2);
31255f757f3fSDimitry Andric }
31265f757f3fSDimitry Andric 
31275f757f3fSDimitry Andric extern __inline
31285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31295f757f3fSDimitry Andric     __lasx_xvhsubw_q_d(__m256i _1, __m256i _2) {
31305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_q_d((v4i64)_1, (v4i64)_2);
31315f757f3fSDimitry Andric }
31325f757f3fSDimitry Andric 
31335f757f3fSDimitry Andric extern __inline
31345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31355f757f3fSDimitry Andric     __lasx_xvhsubw_qu_du(__m256i _1, __m256i _2) {
31365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvhsubw_qu_du((v4u64)_1, (v4u64)_2);
31375f757f3fSDimitry Andric }
31385f757f3fSDimitry Andric 
31395f757f3fSDimitry Andric extern __inline
31405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31415f757f3fSDimitry Andric     __lasx_xvmaddwev_q_d(__m256i _1, __m256i _2, __m256i _3) {
31425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_q_d((v4i64)_1, (v4i64)_2, (v4i64)_3);
31435f757f3fSDimitry Andric }
31445f757f3fSDimitry Andric 
31455f757f3fSDimitry Andric extern __inline
31465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31475f757f3fSDimitry Andric     __lasx_xvmaddwev_d_w(__m256i _1, __m256i _2, __m256i _3) {
31485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_d_w((v4i64)_1, (v8i32)_2, (v8i32)_3);
31495f757f3fSDimitry Andric }
31505f757f3fSDimitry Andric 
31515f757f3fSDimitry Andric extern __inline
31525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31535f757f3fSDimitry Andric     __lasx_xvmaddwev_w_h(__m256i _1, __m256i _2, __m256i _3) {
31545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_w_h((v8i32)_1, (v16i16)_2,
31555f757f3fSDimitry Andric                                                (v16i16)_3);
31565f757f3fSDimitry Andric }
31575f757f3fSDimitry Andric 
31585f757f3fSDimitry Andric extern __inline
31595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31605f757f3fSDimitry Andric     __lasx_xvmaddwev_h_b(__m256i _1, __m256i _2, __m256i _3) {
31615f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_h_b((v16i16)_1, (v32i8)_2,
31625f757f3fSDimitry Andric                                                (v32i8)_3);
31635f757f3fSDimitry Andric }
31645f757f3fSDimitry Andric 
31655f757f3fSDimitry Andric extern __inline
31665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31675f757f3fSDimitry Andric     __lasx_xvmaddwev_q_du(__m256i _1, __m256i _2, __m256i _3) {
31685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_q_du((v4u64)_1, (v4u64)_2,
31695f757f3fSDimitry Andric                                                 (v4u64)_3);
31705f757f3fSDimitry Andric }
31715f757f3fSDimitry Andric 
31725f757f3fSDimitry Andric extern __inline
31735f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31745f757f3fSDimitry Andric     __lasx_xvmaddwev_d_wu(__m256i _1, __m256i _2, __m256i _3) {
31755f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_d_wu((v4u64)_1, (v8u32)_2,
31765f757f3fSDimitry Andric                                                 (v8u32)_3);
31775f757f3fSDimitry Andric }
31785f757f3fSDimitry Andric 
31795f757f3fSDimitry Andric extern __inline
31805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31815f757f3fSDimitry Andric     __lasx_xvmaddwev_w_hu(__m256i _1, __m256i _2, __m256i _3) {
31825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_w_hu((v8u32)_1, (v16u16)_2,
31835f757f3fSDimitry Andric                                                 (v16u16)_3);
31845f757f3fSDimitry Andric }
31855f757f3fSDimitry Andric 
31865f757f3fSDimitry Andric extern __inline
31875f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31885f757f3fSDimitry Andric     __lasx_xvmaddwev_h_bu(__m256i _1, __m256i _2, __m256i _3) {
31895f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_h_bu((v16u16)_1, (v32u8)_2,
31905f757f3fSDimitry Andric                                                 (v32u8)_3);
31915f757f3fSDimitry Andric }
31925f757f3fSDimitry Andric 
31935f757f3fSDimitry Andric extern __inline
31945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
31955f757f3fSDimitry Andric     __lasx_xvmaddwod_q_d(__m256i _1, __m256i _2, __m256i _3) {
31965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_q_d((v4i64)_1, (v4i64)_2, (v4i64)_3);
31975f757f3fSDimitry Andric }
31985f757f3fSDimitry Andric 
31995f757f3fSDimitry Andric extern __inline
32005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32015f757f3fSDimitry Andric     __lasx_xvmaddwod_d_w(__m256i _1, __m256i _2, __m256i _3) {
32025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_d_w((v4i64)_1, (v8i32)_2, (v8i32)_3);
32035f757f3fSDimitry Andric }
32045f757f3fSDimitry Andric 
32055f757f3fSDimitry Andric extern __inline
32065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32075f757f3fSDimitry Andric     __lasx_xvmaddwod_w_h(__m256i _1, __m256i _2, __m256i _3) {
32085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_w_h((v8i32)_1, (v16i16)_2,
32095f757f3fSDimitry Andric                                                (v16i16)_3);
32105f757f3fSDimitry Andric }
32115f757f3fSDimitry Andric 
32125f757f3fSDimitry Andric extern __inline
32135f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32145f757f3fSDimitry Andric     __lasx_xvmaddwod_h_b(__m256i _1, __m256i _2, __m256i _3) {
32155f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_h_b((v16i16)_1, (v32i8)_2,
32165f757f3fSDimitry Andric                                                (v32i8)_3);
32175f757f3fSDimitry Andric }
32185f757f3fSDimitry Andric 
32195f757f3fSDimitry Andric extern __inline
32205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32215f757f3fSDimitry Andric     __lasx_xvmaddwod_q_du(__m256i _1, __m256i _2, __m256i _3) {
32225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_q_du((v4u64)_1, (v4u64)_2,
32235f757f3fSDimitry Andric                                                 (v4u64)_3);
32245f757f3fSDimitry Andric }
32255f757f3fSDimitry Andric 
32265f757f3fSDimitry Andric extern __inline
32275f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32285f757f3fSDimitry Andric     __lasx_xvmaddwod_d_wu(__m256i _1, __m256i _2, __m256i _3) {
32295f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_d_wu((v4u64)_1, (v8u32)_2,
32305f757f3fSDimitry Andric                                                 (v8u32)_3);
32315f757f3fSDimitry Andric }
32325f757f3fSDimitry Andric 
32335f757f3fSDimitry Andric extern __inline
32345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32355f757f3fSDimitry Andric     __lasx_xvmaddwod_w_hu(__m256i _1, __m256i _2, __m256i _3) {
32365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_w_hu((v8u32)_1, (v16u16)_2,
32375f757f3fSDimitry Andric                                                 (v16u16)_3);
32385f757f3fSDimitry Andric }
32395f757f3fSDimitry Andric 
32405f757f3fSDimitry Andric extern __inline
32415f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32425f757f3fSDimitry Andric     __lasx_xvmaddwod_h_bu(__m256i _1, __m256i _2, __m256i _3) {
32435f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_h_bu((v16u16)_1, (v32u8)_2,
32445f757f3fSDimitry Andric                                                 (v32u8)_3);
32455f757f3fSDimitry Andric }
32465f757f3fSDimitry Andric 
32475f757f3fSDimitry Andric extern __inline
32485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32495f757f3fSDimitry Andric     __lasx_xvmaddwev_q_du_d(__m256i _1, __m256i _2, __m256i _3) {
32505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_q_du_d((v4i64)_1, (v4u64)_2,
32515f757f3fSDimitry Andric                                                   (v4i64)_3);
32525f757f3fSDimitry Andric }
32535f757f3fSDimitry Andric 
32545f757f3fSDimitry Andric extern __inline
32555f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32565f757f3fSDimitry Andric     __lasx_xvmaddwev_d_wu_w(__m256i _1, __m256i _2, __m256i _3) {
32575f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_d_wu_w((v4i64)_1, (v8u32)_2,
32585f757f3fSDimitry Andric                                                   (v8i32)_3);
32595f757f3fSDimitry Andric }
32605f757f3fSDimitry Andric 
32615f757f3fSDimitry Andric extern __inline
32625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32635f757f3fSDimitry Andric     __lasx_xvmaddwev_w_hu_h(__m256i _1, __m256i _2, __m256i _3) {
32645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_w_hu_h((v8i32)_1, (v16u16)_2,
32655f757f3fSDimitry Andric                                                   (v16i16)_3);
32665f757f3fSDimitry Andric }
32675f757f3fSDimitry Andric 
32685f757f3fSDimitry Andric extern __inline
32695f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32705f757f3fSDimitry Andric     __lasx_xvmaddwev_h_bu_b(__m256i _1, __m256i _2, __m256i _3) {
32715f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwev_h_bu_b((v16i16)_1, (v32u8)_2,
32725f757f3fSDimitry Andric                                                   (v32i8)_3);
32735f757f3fSDimitry Andric }
32745f757f3fSDimitry Andric 
32755f757f3fSDimitry Andric extern __inline
32765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32775f757f3fSDimitry Andric     __lasx_xvmaddwod_q_du_d(__m256i _1, __m256i _2, __m256i _3) {
32785f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_q_du_d((v4i64)_1, (v4u64)_2,
32795f757f3fSDimitry Andric                                                   (v4i64)_3);
32805f757f3fSDimitry Andric }
32815f757f3fSDimitry Andric 
32825f757f3fSDimitry Andric extern __inline
32835f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32845f757f3fSDimitry Andric     __lasx_xvmaddwod_d_wu_w(__m256i _1, __m256i _2, __m256i _3) {
32855f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_d_wu_w((v4i64)_1, (v8u32)_2,
32865f757f3fSDimitry Andric                                                   (v8i32)_3);
32875f757f3fSDimitry Andric }
32885f757f3fSDimitry Andric 
32895f757f3fSDimitry Andric extern __inline
32905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32915f757f3fSDimitry Andric     __lasx_xvmaddwod_w_hu_h(__m256i _1, __m256i _2, __m256i _3) {
32925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_w_hu_h((v8i32)_1, (v16u16)_2,
32935f757f3fSDimitry Andric                                                   (v16i16)_3);
32945f757f3fSDimitry Andric }
32955f757f3fSDimitry Andric 
32965f757f3fSDimitry Andric extern __inline
32975f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
32985f757f3fSDimitry Andric     __lasx_xvmaddwod_h_bu_b(__m256i _1, __m256i _2, __m256i _3) {
32995f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmaddwod_h_bu_b((v16i16)_1, (v32u8)_2,
33005f757f3fSDimitry Andric                                                   (v32i8)_3);
33015f757f3fSDimitry Andric }
33025f757f3fSDimitry Andric 
33035f757f3fSDimitry Andric extern __inline
33045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33055f757f3fSDimitry Andric     __lasx_xvrotr_b(__m256i _1, __m256i _2) {
33065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvrotr_b((v32i8)_1, (v32i8)_2);
33075f757f3fSDimitry Andric }
33085f757f3fSDimitry Andric 
33095f757f3fSDimitry Andric extern __inline
33105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33115f757f3fSDimitry Andric     __lasx_xvrotr_h(__m256i _1, __m256i _2) {
33125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvrotr_h((v16i16)_1, (v16i16)_2);
33135f757f3fSDimitry Andric }
33145f757f3fSDimitry Andric 
33155f757f3fSDimitry Andric extern __inline
33165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33175f757f3fSDimitry Andric     __lasx_xvrotr_w(__m256i _1, __m256i _2) {
33185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvrotr_w((v8i32)_1, (v8i32)_2);
33195f757f3fSDimitry Andric }
33205f757f3fSDimitry Andric 
33215f757f3fSDimitry Andric extern __inline
33225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33235f757f3fSDimitry Andric     __lasx_xvrotr_d(__m256i _1, __m256i _2) {
33245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvrotr_d((v4i64)_1, (v4i64)_2);
33255f757f3fSDimitry Andric }
33265f757f3fSDimitry Andric 
33275f757f3fSDimitry Andric extern __inline
33285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33295f757f3fSDimitry Andric     __lasx_xvadd_q(__m256i _1, __m256i _2) {
33305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvadd_q((v4i64)_1, (v4i64)_2);
33315f757f3fSDimitry Andric }
33325f757f3fSDimitry Andric 
33335f757f3fSDimitry Andric extern __inline
33345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33355f757f3fSDimitry Andric     __lasx_xvsub_q(__m256i _1, __m256i _2) {
33365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvsub_q((v4i64)_1, (v4i64)_2);
33375f757f3fSDimitry Andric }
33385f757f3fSDimitry Andric 
33395f757f3fSDimitry Andric extern __inline
33405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33415f757f3fSDimitry Andric     __lasx_xvaddwev_q_du_d(__m256i _1, __m256i _2) {
33425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwev_q_du_d((v4u64)_1, (v4i64)_2);
33435f757f3fSDimitry Andric }
33445f757f3fSDimitry Andric 
33455f757f3fSDimitry Andric extern __inline
33465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33475f757f3fSDimitry Andric     __lasx_xvaddwod_q_du_d(__m256i _1, __m256i _2) {
33485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvaddwod_q_du_d((v4u64)_1, (v4i64)_2);
33495f757f3fSDimitry Andric }
33505f757f3fSDimitry Andric 
33515f757f3fSDimitry Andric extern __inline
33525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33535f757f3fSDimitry Andric     __lasx_xvmulwev_q_du_d(__m256i _1, __m256i _2) {
33545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwev_q_du_d((v4u64)_1, (v4i64)_2);
33555f757f3fSDimitry Andric }
33565f757f3fSDimitry Andric 
33575f757f3fSDimitry Andric extern __inline
33585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33595f757f3fSDimitry Andric     __lasx_xvmulwod_q_du_d(__m256i _1, __m256i _2) {
33605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmulwod_q_du_d((v4u64)_1, (v4i64)_2);
33615f757f3fSDimitry Andric }
33625f757f3fSDimitry Andric 
33635f757f3fSDimitry Andric extern __inline
33645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33655f757f3fSDimitry Andric     __lasx_xvmskgez_b(__m256i _1) {
33665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmskgez_b((v32i8)_1);
33675f757f3fSDimitry Andric }
33685f757f3fSDimitry Andric 
33695f757f3fSDimitry Andric extern __inline
33705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33715f757f3fSDimitry Andric     __lasx_xvmsknz_b(__m256i _1) {
33725f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvmsknz_b((v32i8)_1);
33735f757f3fSDimitry Andric }
33745f757f3fSDimitry Andric 
33755f757f3fSDimitry Andric extern __inline
33765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33775f757f3fSDimitry Andric     __lasx_xvexth_h_b(__m256i _1) {
33785f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_h_b((v32i8)_1);
33795f757f3fSDimitry Andric }
33805f757f3fSDimitry Andric 
33815f757f3fSDimitry Andric extern __inline
33825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33835f757f3fSDimitry Andric     __lasx_xvexth_w_h(__m256i _1) {
33845f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_w_h((v16i16)_1);
33855f757f3fSDimitry Andric }
33865f757f3fSDimitry Andric 
33875f757f3fSDimitry Andric extern __inline
33885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33895f757f3fSDimitry Andric     __lasx_xvexth_d_w(__m256i _1) {
33905f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_d_w((v8i32)_1);
33915f757f3fSDimitry Andric }
33925f757f3fSDimitry Andric 
33935f757f3fSDimitry Andric extern __inline
33945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
33955f757f3fSDimitry Andric     __lasx_xvexth_q_d(__m256i _1) {
33965f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_q_d((v4i64)_1);
33975f757f3fSDimitry Andric }
33985f757f3fSDimitry Andric 
33995f757f3fSDimitry Andric extern __inline
34005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
34015f757f3fSDimitry Andric     __lasx_xvexth_hu_bu(__m256i _1) {
34025f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_hu_bu((v32u8)_1);
34035f757f3fSDimitry Andric }
34045f757f3fSDimitry Andric 
34055f757f3fSDimitry Andric extern __inline
34065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
34075f757f3fSDimitry Andric     __lasx_xvexth_wu_hu(__m256i _1) {
34085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_wu_hu((v16u16)_1);
34095f757f3fSDimitry Andric }
34105f757f3fSDimitry Andric 
34115f757f3fSDimitry Andric extern __inline
34125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
34135f757f3fSDimitry Andric     __lasx_xvexth_du_wu(__m256i _1) {
34145f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_du_wu((v8u32)_1);
34155f757f3fSDimitry Andric }
34165f757f3fSDimitry Andric 
34175f757f3fSDimitry Andric extern __inline
34185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
34195f757f3fSDimitry Andric     __lasx_xvexth_qu_du(__m256i _1) {
34205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvexth_qu_du((v4u64)_1);
34215f757f3fSDimitry Andric }
34225f757f3fSDimitry Andric 
34235f757f3fSDimitry Andric #define __lasx_xvrotri_b(/*__m256i*/ _1, /*ui3*/ _2)                           \
34245f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrotri_b((v32i8)(_1), (_2)))
34255f757f3fSDimitry Andric 
34265f757f3fSDimitry Andric #define __lasx_xvrotri_h(/*__m256i*/ _1, /*ui4*/ _2)                           \
34275f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrotri_h((v16i16)(_1), (_2)))
34285f757f3fSDimitry Andric 
34295f757f3fSDimitry Andric #define __lasx_xvrotri_w(/*__m256i*/ _1, /*ui5*/ _2)                           \
34305f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrotri_w((v8i32)(_1), (_2)))
34315f757f3fSDimitry Andric 
34325f757f3fSDimitry Andric #define __lasx_xvrotri_d(/*__m256i*/ _1, /*ui6*/ _2)                           \
34335f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvrotri_d((v4i64)(_1), (_2)))
34345f757f3fSDimitry Andric 
34355f757f3fSDimitry Andric extern __inline
34365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
34375f757f3fSDimitry Andric     __lasx_xvextl_q_d(__m256i _1) {
34385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvextl_q_d((v4i64)_1);
34395f757f3fSDimitry Andric }
34405f757f3fSDimitry Andric 
34415f757f3fSDimitry Andric #define __lasx_xvsrlni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)         \
34425f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlni_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
34435f757f3fSDimitry Andric 
34445f757f3fSDimitry Andric #define __lasx_xvsrlni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)         \
34455f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlni_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
34465f757f3fSDimitry Andric 
34475f757f3fSDimitry Andric #define __lasx_xvsrlni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)         \
34485f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlni_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
34495f757f3fSDimitry Andric 
34505f757f3fSDimitry Andric #define __lasx_xvsrlni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)         \
34515f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlni_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
34525f757f3fSDimitry Andric 
34535f757f3fSDimitry Andric #define __lasx_xvsrlrni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)        \
34545f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlrni_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
34555f757f3fSDimitry Andric 
34565f757f3fSDimitry Andric #define __lasx_xvsrlrni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)        \
34575f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlrni_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
34585f757f3fSDimitry Andric 
34595f757f3fSDimitry Andric #define __lasx_xvsrlrni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)        \
34605f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlrni_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
34615f757f3fSDimitry Andric 
34625f757f3fSDimitry Andric #define __lasx_xvsrlrni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)        \
34635f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrlrni_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
34645f757f3fSDimitry Andric 
34655f757f3fSDimitry Andric #define __lasx_xvssrlni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)        \
34665f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
34675f757f3fSDimitry Andric 
34685f757f3fSDimitry Andric #define __lasx_xvssrlni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)        \
34695f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
34705f757f3fSDimitry Andric 
34715f757f3fSDimitry Andric #define __lasx_xvssrlni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)        \
34725f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
34735f757f3fSDimitry Andric 
34745f757f3fSDimitry Andric #define __lasx_xvssrlni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)        \
34755f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
34765f757f3fSDimitry Andric 
34775f757f3fSDimitry Andric #define __lasx_xvssrlni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)       \
34785f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_bu_h((v32u8)(_1), (v32i8)(_2), (_3)))
34795f757f3fSDimitry Andric 
34805f757f3fSDimitry Andric #define __lasx_xvssrlni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)       \
34815f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_hu_w((v16u16)(_1), (v16i16)(_2), (_3)))
34825f757f3fSDimitry Andric 
34835f757f3fSDimitry Andric #define __lasx_xvssrlni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)       \
34845f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_wu_d((v8u32)(_1), (v8i32)(_2), (_3)))
34855f757f3fSDimitry Andric 
34865f757f3fSDimitry Andric #define __lasx_xvssrlni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)       \
34875f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlni_du_q((v4u64)(_1), (v4i64)(_2), (_3)))
34885f757f3fSDimitry Andric 
34895f757f3fSDimitry Andric #define __lasx_xvssrlrni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)       \
34905f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
34915f757f3fSDimitry Andric 
34925f757f3fSDimitry Andric #define __lasx_xvssrlrni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)       \
34935f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
34945f757f3fSDimitry Andric 
34955f757f3fSDimitry Andric #define __lasx_xvssrlrni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)       \
34965f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
34975f757f3fSDimitry Andric 
34985f757f3fSDimitry Andric #define __lasx_xvssrlrni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)       \
34995f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
35005f757f3fSDimitry Andric 
35015f757f3fSDimitry Andric #define __lasx_xvssrlrni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)      \
35025f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_bu_h((v32u8)(_1), (v32i8)(_2), (_3)))
35035f757f3fSDimitry Andric 
35045f757f3fSDimitry Andric #define __lasx_xvssrlrni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)      \
35055f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_hu_w((v16u16)(_1), (v16i16)(_2), (_3)))
35065f757f3fSDimitry Andric 
35075f757f3fSDimitry Andric #define __lasx_xvssrlrni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)      \
35085f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_wu_d((v8u32)(_1), (v8i32)(_2), (_3)))
35095f757f3fSDimitry Andric 
35105f757f3fSDimitry Andric #define __lasx_xvssrlrni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)      \
35115f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrlrni_du_q((v4u64)(_1), (v4i64)(_2), (_3)))
35125f757f3fSDimitry Andric 
35135f757f3fSDimitry Andric #define __lasx_xvsrani_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)         \
35145f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrani_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
35155f757f3fSDimitry Andric 
35165f757f3fSDimitry Andric #define __lasx_xvsrani_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)         \
35175f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrani_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
35185f757f3fSDimitry Andric 
35195f757f3fSDimitry Andric #define __lasx_xvsrani_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)         \
35205f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrani_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
35215f757f3fSDimitry Andric 
35225f757f3fSDimitry Andric #define __lasx_xvsrani_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)         \
35235f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrani_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
35245f757f3fSDimitry Andric 
35255f757f3fSDimitry Andric #define __lasx_xvsrarni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)        \
35265f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrarni_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
35275f757f3fSDimitry Andric 
35285f757f3fSDimitry Andric #define __lasx_xvsrarni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)        \
35295f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrarni_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
35305f757f3fSDimitry Andric 
35315f757f3fSDimitry Andric #define __lasx_xvsrarni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)        \
35325f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrarni_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
35335f757f3fSDimitry Andric 
35345f757f3fSDimitry Andric #define __lasx_xvsrarni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)        \
35355f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvsrarni_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
35365f757f3fSDimitry Andric 
35375f757f3fSDimitry Andric #define __lasx_xvssrani_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)        \
35385f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
35395f757f3fSDimitry Andric 
35405f757f3fSDimitry Andric #define __lasx_xvssrani_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)        \
35415f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
35425f757f3fSDimitry Andric 
35435f757f3fSDimitry Andric #define __lasx_xvssrani_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)        \
35445f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
35455f757f3fSDimitry Andric 
35465f757f3fSDimitry Andric #define __lasx_xvssrani_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)        \
35475f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
35485f757f3fSDimitry Andric 
35495f757f3fSDimitry Andric #define __lasx_xvssrani_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)       \
35505f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_bu_h((v32u8)(_1), (v32i8)(_2), (_3)))
35515f757f3fSDimitry Andric 
35525f757f3fSDimitry Andric #define __lasx_xvssrani_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)       \
35535f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_hu_w((v16u16)(_1), (v16i16)(_2), (_3)))
35545f757f3fSDimitry Andric 
35555f757f3fSDimitry Andric #define __lasx_xvssrani_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)       \
35565f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_wu_d((v8u32)(_1), (v8i32)(_2), (_3)))
35575f757f3fSDimitry Andric 
35585f757f3fSDimitry Andric #define __lasx_xvssrani_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)       \
35595f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrani_du_q((v4u64)(_1), (v4i64)(_2), (_3)))
35605f757f3fSDimitry Andric 
35615f757f3fSDimitry Andric #define __lasx_xvssrarni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)       \
35625f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_b_h((v32i8)(_1), (v32i8)(_2), (_3)))
35635f757f3fSDimitry Andric 
35645f757f3fSDimitry Andric #define __lasx_xvssrarni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)       \
35655f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_h_w((v16i16)(_1), (v16i16)(_2), (_3)))
35665f757f3fSDimitry Andric 
35675f757f3fSDimitry Andric #define __lasx_xvssrarni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)       \
35685f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_w_d((v8i32)(_1), (v8i32)(_2), (_3)))
35695f757f3fSDimitry Andric 
35705f757f3fSDimitry Andric #define __lasx_xvssrarni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)       \
35715f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_d_q((v4i64)(_1), (v4i64)(_2), (_3)))
35725f757f3fSDimitry Andric 
35735f757f3fSDimitry Andric #define __lasx_xvssrarni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3)      \
35745f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_bu_h((v32u8)(_1), (v32i8)(_2), (_3)))
35755f757f3fSDimitry Andric 
35765f757f3fSDimitry Andric #define __lasx_xvssrarni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3)      \
35775f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_hu_w((v16u16)(_1), (v16i16)(_2), (_3)))
35785f757f3fSDimitry Andric 
35795f757f3fSDimitry Andric #define __lasx_xvssrarni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3)      \
35805f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_wu_d((v8u32)(_1), (v8i32)(_2), (_3)))
35815f757f3fSDimitry Andric 
35825f757f3fSDimitry Andric #define __lasx_xvssrarni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3)      \
35835f757f3fSDimitry Andric   ((__m256i)__builtin_lasx_xvssrarni_du_q((v4u64)(_1), (v4i64)(_2), (_3)))
35845f757f3fSDimitry Andric 
35855f757f3fSDimitry Andric #define __lasx_xbnz_b(/*__m256i*/ _1) ((int)__builtin_lasx_xbnz_b((v32u8)(_1)))
35865f757f3fSDimitry Andric 
35875f757f3fSDimitry Andric #define __lasx_xbnz_d(/*__m256i*/ _1) ((int)__builtin_lasx_xbnz_d((v4u64)(_1)))
35885f757f3fSDimitry Andric 
35895f757f3fSDimitry Andric #define __lasx_xbnz_h(/*__m256i*/ _1) ((int)__builtin_lasx_xbnz_h((v16u16)(_1)))
35905f757f3fSDimitry Andric 
35915f757f3fSDimitry Andric #define __lasx_xbnz_v(/*__m256i*/ _1) ((int)__builtin_lasx_xbnz_v((v32u8)(_1)))
35925f757f3fSDimitry Andric 
35935f757f3fSDimitry Andric #define __lasx_xbnz_w(/*__m256i*/ _1) ((int)__builtin_lasx_xbnz_w((v8u32)(_1)))
35945f757f3fSDimitry Andric 
35955f757f3fSDimitry Andric #define __lasx_xbz_b(/*__m256i*/ _1) ((int)__builtin_lasx_xbz_b((v32u8)(_1)))
35965f757f3fSDimitry Andric 
35975f757f3fSDimitry Andric #define __lasx_xbz_d(/*__m256i*/ _1) ((int)__builtin_lasx_xbz_d((v4u64)(_1)))
35985f757f3fSDimitry Andric 
35995f757f3fSDimitry Andric #define __lasx_xbz_h(/*__m256i*/ _1) ((int)__builtin_lasx_xbz_h((v16u16)(_1)))
36005f757f3fSDimitry Andric 
36015f757f3fSDimitry Andric #define __lasx_xbz_v(/*__m256i*/ _1) ((int)__builtin_lasx_xbz_v((v32u8)(_1)))
36025f757f3fSDimitry Andric 
36035f757f3fSDimitry Andric #define __lasx_xbz_w(/*__m256i*/ _1) ((int)__builtin_lasx_xbz_w((v8u32)(_1)))
36045f757f3fSDimitry Andric 
36055f757f3fSDimitry Andric extern __inline
36065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36075f757f3fSDimitry Andric     __lasx_xvfcmp_caf_d(__m256d _1, __m256d _2) {
36085f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_caf_d((v4f64)_1, (v4f64)_2);
36095f757f3fSDimitry Andric }
36105f757f3fSDimitry Andric 
36115f757f3fSDimitry Andric extern __inline
36125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36135f757f3fSDimitry Andric     __lasx_xvfcmp_caf_s(__m256 _1, __m256 _2) {
36145f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_caf_s((v8f32)_1, (v8f32)_2);
36155f757f3fSDimitry Andric }
36165f757f3fSDimitry Andric 
36175f757f3fSDimitry Andric extern __inline
36185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36195f757f3fSDimitry Andric     __lasx_xvfcmp_ceq_d(__m256d _1, __m256d _2) {
36205f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_ceq_d((v4f64)_1, (v4f64)_2);
36215f757f3fSDimitry Andric }
36225f757f3fSDimitry Andric 
36235f757f3fSDimitry Andric extern __inline
36245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36255f757f3fSDimitry Andric     __lasx_xvfcmp_ceq_s(__m256 _1, __m256 _2) {
36265f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_ceq_s((v8f32)_1, (v8f32)_2);
36275f757f3fSDimitry Andric }
36285f757f3fSDimitry Andric 
36295f757f3fSDimitry Andric extern __inline
36305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36315f757f3fSDimitry Andric     __lasx_xvfcmp_cle_d(__m256d _1, __m256d _2) {
36325f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cle_d((v4f64)_1, (v4f64)_2);
36335f757f3fSDimitry Andric }
36345f757f3fSDimitry Andric 
36355f757f3fSDimitry Andric extern __inline
36365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36375f757f3fSDimitry Andric     __lasx_xvfcmp_cle_s(__m256 _1, __m256 _2) {
36385f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cle_s((v8f32)_1, (v8f32)_2);
36395f757f3fSDimitry Andric }
36405f757f3fSDimitry Andric 
36415f757f3fSDimitry Andric extern __inline
36425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36435f757f3fSDimitry Andric     __lasx_xvfcmp_clt_d(__m256d _1, __m256d _2) {
36445f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_clt_d((v4f64)_1, (v4f64)_2);
36455f757f3fSDimitry Andric }
36465f757f3fSDimitry Andric 
36475f757f3fSDimitry Andric extern __inline
36485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36495f757f3fSDimitry Andric     __lasx_xvfcmp_clt_s(__m256 _1, __m256 _2) {
36505f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_clt_s((v8f32)_1, (v8f32)_2);
36515f757f3fSDimitry Andric }
36525f757f3fSDimitry Andric 
36535f757f3fSDimitry Andric extern __inline
36545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36555f757f3fSDimitry Andric     __lasx_xvfcmp_cne_d(__m256d _1, __m256d _2) {
36565f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cne_d((v4f64)_1, (v4f64)_2);
36575f757f3fSDimitry Andric }
36585f757f3fSDimitry Andric 
36595f757f3fSDimitry Andric extern __inline
36605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36615f757f3fSDimitry Andric     __lasx_xvfcmp_cne_s(__m256 _1, __m256 _2) {
36625f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cne_s((v8f32)_1, (v8f32)_2);
36635f757f3fSDimitry Andric }
36645f757f3fSDimitry Andric 
36655f757f3fSDimitry Andric extern __inline
36665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36675f757f3fSDimitry Andric     __lasx_xvfcmp_cor_d(__m256d _1, __m256d _2) {
36685f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cor_d((v4f64)_1, (v4f64)_2);
36695f757f3fSDimitry Andric }
36705f757f3fSDimitry Andric 
36715f757f3fSDimitry Andric extern __inline
36725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36735f757f3fSDimitry Andric     __lasx_xvfcmp_cor_s(__m256 _1, __m256 _2) {
36745f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cor_s((v8f32)_1, (v8f32)_2);
36755f757f3fSDimitry Andric }
36765f757f3fSDimitry Andric 
36775f757f3fSDimitry Andric extern __inline
36785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36795f757f3fSDimitry Andric     __lasx_xvfcmp_cueq_d(__m256d _1, __m256d _2) {
36805f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cueq_d((v4f64)_1, (v4f64)_2);
36815f757f3fSDimitry Andric }
36825f757f3fSDimitry Andric 
36835f757f3fSDimitry Andric extern __inline
36845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36855f757f3fSDimitry Andric     __lasx_xvfcmp_cueq_s(__m256 _1, __m256 _2) {
36865f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cueq_s((v8f32)_1, (v8f32)_2);
36875f757f3fSDimitry Andric }
36885f757f3fSDimitry Andric 
36895f757f3fSDimitry Andric extern __inline
36905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36915f757f3fSDimitry Andric     __lasx_xvfcmp_cule_d(__m256d _1, __m256d _2) {
36925f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cule_d((v4f64)_1, (v4f64)_2);
36935f757f3fSDimitry Andric }
36945f757f3fSDimitry Andric 
36955f757f3fSDimitry Andric extern __inline
36965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
36975f757f3fSDimitry Andric     __lasx_xvfcmp_cule_s(__m256 _1, __m256 _2) {
36985f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cule_s((v8f32)_1, (v8f32)_2);
36995f757f3fSDimitry Andric }
37005f757f3fSDimitry Andric 
37015f757f3fSDimitry Andric extern __inline
37025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37035f757f3fSDimitry Andric     __lasx_xvfcmp_cult_d(__m256d _1, __m256d _2) {
37045f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cult_d((v4f64)_1, (v4f64)_2);
37055f757f3fSDimitry Andric }
37065f757f3fSDimitry Andric 
37075f757f3fSDimitry Andric extern __inline
37085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37095f757f3fSDimitry Andric     __lasx_xvfcmp_cult_s(__m256 _1, __m256 _2) {
37105f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cult_s((v8f32)_1, (v8f32)_2);
37115f757f3fSDimitry Andric }
37125f757f3fSDimitry Andric 
37135f757f3fSDimitry Andric extern __inline
37145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37155f757f3fSDimitry Andric     __lasx_xvfcmp_cun_d(__m256d _1, __m256d _2) {
37165f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cun_d((v4f64)_1, (v4f64)_2);
37175f757f3fSDimitry Andric }
37185f757f3fSDimitry Andric 
37195f757f3fSDimitry Andric extern __inline
37205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37215f757f3fSDimitry Andric     __lasx_xvfcmp_cune_d(__m256d _1, __m256d _2) {
37225f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cune_d((v4f64)_1, (v4f64)_2);
37235f757f3fSDimitry Andric }
37245f757f3fSDimitry Andric 
37255f757f3fSDimitry Andric extern __inline
37265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37275f757f3fSDimitry Andric     __lasx_xvfcmp_cune_s(__m256 _1, __m256 _2) {
37285f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cune_s((v8f32)_1, (v8f32)_2);
37295f757f3fSDimitry Andric }
37305f757f3fSDimitry Andric 
37315f757f3fSDimitry Andric extern __inline
37325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37335f757f3fSDimitry Andric     __lasx_xvfcmp_cun_s(__m256 _1, __m256 _2) {
37345f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_cun_s((v8f32)_1, (v8f32)_2);
37355f757f3fSDimitry Andric }
37365f757f3fSDimitry Andric 
37375f757f3fSDimitry Andric extern __inline
37385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37395f757f3fSDimitry Andric     __lasx_xvfcmp_saf_d(__m256d _1, __m256d _2) {
37405f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_saf_d((v4f64)_1, (v4f64)_2);
37415f757f3fSDimitry Andric }
37425f757f3fSDimitry Andric 
37435f757f3fSDimitry Andric extern __inline
37445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37455f757f3fSDimitry Andric     __lasx_xvfcmp_saf_s(__m256 _1, __m256 _2) {
37465f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_saf_s((v8f32)_1, (v8f32)_2);
37475f757f3fSDimitry Andric }
37485f757f3fSDimitry Andric 
37495f757f3fSDimitry Andric extern __inline
37505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37515f757f3fSDimitry Andric     __lasx_xvfcmp_seq_d(__m256d _1, __m256d _2) {
37525f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_seq_d((v4f64)_1, (v4f64)_2);
37535f757f3fSDimitry Andric }
37545f757f3fSDimitry Andric 
37555f757f3fSDimitry Andric extern __inline
37565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37575f757f3fSDimitry Andric     __lasx_xvfcmp_seq_s(__m256 _1, __m256 _2) {
37585f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_seq_s((v8f32)_1, (v8f32)_2);
37595f757f3fSDimitry Andric }
37605f757f3fSDimitry Andric 
37615f757f3fSDimitry Andric extern __inline
37625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37635f757f3fSDimitry Andric     __lasx_xvfcmp_sle_d(__m256d _1, __m256d _2) {
37645f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sle_d((v4f64)_1, (v4f64)_2);
37655f757f3fSDimitry Andric }
37665f757f3fSDimitry Andric 
37675f757f3fSDimitry Andric extern __inline
37685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37695f757f3fSDimitry Andric     __lasx_xvfcmp_sle_s(__m256 _1, __m256 _2) {
37705f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sle_s((v8f32)_1, (v8f32)_2);
37715f757f3fSDimitry Andric }
37725f757f3fSDimitry Andric 
37735f757f3fSDimitry Andric extern __inline
37745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37755f757f3fSDimitry Andric     __lasx_xvfcmp_slt_d(__m256d _1, __m256d _2) {
37765f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_slt_d((v4f64)_1, (v4f64)_2);
37775f757f3fSDimitry Andric }
37785f757f3fSDimitry Andric 
37795f757f3fSDimitry Andric extern __inline
37805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37815f757f3fSDimitry Andric     __lasx_xvfcmp_slt_s(__m256 _1, __m256 _2) {
37825f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_slt_s((v8f32)_1, (v8f32)_2);
37835f757f3fSDimitry Andric }
37845f757f3fSDimitry Andric 
37855f757f3fSDimitry Andric extern __inline
37865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37875f757f3fSDimitry Andric     __lasx_xvfcmp_sne_d(__m256d _1, __m256d _2) {
37885f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sne_d((v4f64)_1, (v4f64)_2);
37895f757f3fSDimitry Andric }
37905f757f3fSDimitry Andric 
37915f757f3fSDimitry Andric extern __inline
37925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37935f757f3fSDimitry Andric     __lasx_xvfcmp_sne_s(__m256 _1, __m256 _2) {
37945f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sne_s((v8f32)_1, (v8f32)_2);
37955f757f3fSDimitry Andric }
37965f757f3fSDimitry Andric 
37975f757f3fSDimitry Andric extern __inline
37985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
37995f757f3fSDimitry Andric     __lasx_xvfcmp_sor_d(__m256d _1, __m256d _2) {
38005f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sor_d((v4f64)_1, (v4f64)_2);
38015f757f3fSDimitry Andric }
38025f757f3fSDimitry Andric 
38035f757f3fSDimitry Andric extern __inline
38045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38055f757f3fSDimitry Andric     __lasx_xvfcmp_sor_s(__m256 _1, __m256 _2) {
38065f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sor_s((v8f32)_1, (v8f32)_2);
38075f757f3fSDimitry Andric }
38085f757f3fSDimitry Andric 
38095f757f3fSDimitry Andric extern __inline
38105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38115f757f3fSDimitry Andric     __lasx_xvfcmp_sueq_d(__m256d _1, __m256d _2) {
38125f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sueq_d((v4f64)_1, (v4f64)_2);
38135f757f3fSDimitry Andric }
38145f757f3fSDimitry Andric 
38155f757f3fSDimitry Andric extern __inline
38165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38175f757f3fSDimitry Andric     __lasx_xvfcmp_sueq_s(__m256 _1, __m256 _2) {
38185f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sueq_s((v8f32)_1, (v8f32)_2);
38195f757f3fSDimitry Andric }
38205f757f3fSDimitry Andric 
38215f757f3fSDimitry Andric extern __inline
38225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38235f757f3fSDimitry Andric     __lasx_xvfcmp_sule_d(__m256d _1, __m256d _2) {
38245f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sule_d((v4f64)_1, (v4f64)_2);
38255f757f3fSDimitry Andric }
38265f757f3fSDimitry Andric 
38275f757f3fSDimitry Andric extern __inline
38285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38295f757f3fSDimitry Andric     __lasx_xvfcmp_sule_s(__m256 _1, __m256 _2) {
38305f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sule_s((v8f32)_1, (v8f32)_2);
38315f757f3fSDimitry Andric }
38325f757f3fSDimitry Andric 
38335f757f3fSDimitry Andric extern __inline
38345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38355f757f3fSDimitry Andric     __lasx_xvfcmp_sult_d(__m256d _1, __m256d _2) {
38365f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sult_d((v4f64)_1, (v4f64)_2);
38375f757f3fSDimitry Andric }
38385f757f3fSDimitry Andric 
38395f757f3fSDimitry Andric extern __inline
38405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38415f757f3fSDimitry Andric     __lasx_xvfcmp_sult_s(__m256 _1, __m256 _2) {
38425f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sult_s((v8f32)_1, (v8f32)_2);
38435f757f3fSDimitry Andric }
38445f757f3fSDimitry Andric 
38455f757f3fSDimitry Andric extern __inline
38465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38475f757f3fSDimitry Andric     __lasx_xvfcmp_sun_d(__m256d _1, __m256d _2) {
38485f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sun_d((v4f64)_1, (v4f64)_2);
38495f757f3fSDimitry Andric }
38505f757f3fSDimitry Andric 
38515f757f3fSDimitry Andric extern __inline
38525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38535f757f3fSDimitry Andric     __lasx_xvfcmp_sune_d(__m256d _1, __m256d _2) {
38545f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sune_d((v4f64)_1, (v4f64)_2);
38555f757f3fSDimitry Andric }
38565f757f3fSDimitry Andric 
38575f757f3fSDimitry Andric extern __inline
38585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38595f757f3fSDimitry Andric     __lasx_xvfcmp_sune_s(__m256 _1, __m256 _2) {
38605f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sune_s((v8f32)_1, (v8f32)_2);
38615f757f3fSDimitry Andric }
38625f757f3fSDimitry Andric 
38635f757f3fSDimitry Andric extern __inline
38645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m256i
38655f757f3fSDimitry Andric     __lasx_xvfcmp_sun_s(__m256 _1, __m256 _2) {
38665f757f3fSDimitry Andric   return (__m256i)__builtin_lasx_xvfcmp_sun_s((v8f32)_1, (v8f32)_2);
38675f757f3fSDimitry Andric }
38685f757f3fSDimitry Andric 
38695f757f3fSDimitry Andric #define __lasx_xvpickve_d_f(/*__m256d*/ _1, /*ui2*/ _2)                        \
38705f757f3fSDimitry Andric   ((__m256d)__builtin_lasx_xvpickve_d_f((v4f64)(_1), (_2)))
38715f757f3fSDimitry Andric 
38725f757f3fSDimitry Andric #define __lasx_xvpickve_w_f(/*__m256*/ _1, /*ui3*/ _2)                         \
38735f757f3fSDimitry Andric   ((__m256)__builtin_lasx_xvpickve_w_f((v8f32)(_1), (_2)))
38745f757f3fSDimitry Andric 
38755f757f3fSDimitry Andric #define __lasx_xvrepli_b(/*si10*/ _1) ((__m256i)__builtin_lasx_xvrepli_b((_1)))
38765f757f3fSDimitry Andric 
38775f757f3fSDimitry Andric #define __lasx_xvrepli_d(/*si10*/ _1) ((__m256i)__builtin_lasx_xvrepli_d((_1)))
38785f757f3fSDimitry Andric 
38795f757f3fSDimitry Andric #define __lasx_xvrepli_h(/*si10*/ _1) ((__m256i)__builtin_lasx_xvrepli_h((_1)))
38805f757f3fSDimitry Andric 
38815f757f3fSDimitry Andric #define __lasx_xvrepli_w(/*si10*/ _1) ((__m256i)__builtin_lasx_xvrepli_w((_1)))
38825f757f3fSDimitry Andric 
38835f757f3fSDimitry Andric #endif /* defined(__loongarch_asx).  */
38845f757f3fSDimitry Andric #endif /* _LOONGSON_ASXINTRIN_H.  */
3885