xref: /freebsd/contrib/llvm-project/clang/lib/Headers/lsxintrin.h (revision 7a6dacaca14b62ca4b74406814becb87a3fefac0)
15f757f3fSDimitry Andric /*===------------- lsxintrin.h - LoongArch LSX 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_SXINTRIN_H
115f757f3fSDimitry Andric #define _LOONGSON_SXINTRIN_H 1
125f757f3fSDimitry Andric 
135f757f3fSDimitry Andric #if defined(__loongarch_sx)
145f757f3fSDimitry Andric typedef signed char v16i8 __attribute__((vector_size(16), aligned(16)));
155f757f3fSDimitry Andric typedef signed char v16i8_b __attribute__((vector_size(16), aligned(1)));
165f757f3fSDimitry Andric typedef unsigned char v16u8 __attribute__((vector_size(16), aligned(16)));
175f757f3fSDimitry Andric typedef unsigned char v16u8_b __attribute__((vector_size(16), aligned(1)));
185f757f3fSDimitry Andric typedef short v8i16 __attribute__((vector_size(16), aligned(16)));
195f757f3fSDimitry Andric typedef short v8i16_h __attribute__((vector_size(16), aligned(2)));
205f757f3fSDimitry Andric typedef unsigned short v8u16 __attribute__((vector_size(16), aligned(16)));
215f757f3fSDimitry Andric typedef unsigned short v8u16_h __attribute__((vector_size(16), aligned(2)));
225f757f3fSDimitry Andric typedef int v4i32 __attribute__((vector_size(16), aligned(16)));
235f757f3fSDimitry Andric typedef int v4i32_w __attribute__((vector_size(16), aligned(4)));
245f757f3fSDimitry Andric typedef unsigned int v4u32 __attribute__((vector_size(16), aligned(16)));
255f757f3fSDimitry Andric typedef unsigned int v4u32_w __attribute__((vector_size(16), aligned(4)));
265f757f3fSDimitry Andric typedef long long v2i64 __attribute__((vector_size(16), aligned(16)));
275f757f3fSDimitry Andric typedef long long v2i64_d __attribute__((vector_size(16), aligned(8)));
285f757f3fSDimitry Andric typedef unsigned long long v2u64 __attribute__((vector_size(16), aligned(16)));
295f757f3fSDimitry Andric typedef unsigned long long v2u64_d __attribute__((vector_size(16), aligned(8)));
305f757f3fSDimitry Andric typedef float v4f32 __attribute__((vector_size(16), aligned(16)));
315f757f3fSDimitry Andric typedef float v4f32_w __attribute__((vector_size(16), aligned(4)));
325f757f3fSDimitry Andric typedef double v2f64 __attribute__((vector_size(16), aligned(16)));
335f757f3fSDimitry Andric typedef double v2f64_d __attribute__((vector_size(16), aligned(8)));
345f757f3fSDimitry Andric 
355f757f3fSDimitry Andric typedef long long __m128i __attribute__((__vector_size__(16), __may_alias__));
365f757f3fSDimitry Andric typedef float __m128 __attribute__((__vector_size__(16), __may_alias__));
375f757f3fSDimitry Andric typedef double __m128d __attribute__((__vector_size__(16), __may_alias__));
385f757f3fSDimitry Andric 
395f757f3fSDimitry Andric extern __inline
405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
415f757f3fSDimitry Andric     __lsx_vsll_b(__m128i _1, __m128i _2) {
425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsll_b((v16i8)_1, (v16i8)_2);
435f757f3fSDimitry Andric }
445f757f3fSDimitry Andric 
455f757f3fSDimitry Andric extern __inline
465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
475f757f3fSDimitry Andric     __lsx_vsll_h(__m128i _1, __m128i _2) {
485f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsll_h((v8i16)_1, (v8i16)_2);
495f757f3fSDimitry Andric }
505f757f3fSDimitry Andric 
515f757f3fSDimitry Andric extern __inline
525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
535f757f3fSDimitry Andric     __lsx_vsll_w(__m128i _1, __m128i _2) {
545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsll_w((v4i32)_1, (v4i32)_2);
555f757f3fSDimitry Andric }
565f757f3fSDimitry Andric 
575f757f3fSDimitry Andric extern __inline
585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
595f757f3fSDimitry Andric     __lsx_vsll_d(__m128i _1, __m128i _2) {
605f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsll_d((v2i64)_1, (v2i64)_2);
615f757f3fSDimitry Andric }
625f757f3fSDimitry Andric 
635f757f3fSDimitry Andric #define __lsx_vslli_b(/*__m128i*/ _1, /*ui3*/ _2)                              \
645f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslli_b((v16i8)(_1), (_2)))
655f757f3fSDimitry Andric 
665f757f3fSDimitry Andric #define __lsx_vslli_h(/*__m128i*/ _1, /*ui4*/ _2)                              \
675f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslli_h((v8i16)(_1), (_2)))
685f757f3fSDimitry Andric 
695f757f3fSDimitry Andric #define __lsx_vslli_w(/*__m128i*/ _1, /*ui5*/ _2)                              \
705f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslli_w((v4i32)(_1), (_2)))
715f757f3fSDimitry Andric 
725f757f3fSDimitry Andric #define __lsx_vslli_d(/*__m128i*/ _1, /*ui6*/ _2)                              \
735f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslli_d((v2i64)(_1), (_2)))
745f757f3fSDimitry Andric 
755f757f3fSDimitry Andric extern __inline
765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
775f757f3fSDimitry Andric     __lsx_vsra_b(__m128i _1, __m128i _2) {
785f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsra_b((v16i8)_1, (v16i8)_2);
795f757f3fSDimitry Andric }
805f757f3fSDimitry Andric 
815f757f3fSDimitry Andric extern __inline
825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
835f757f3fSDimitry Andric     __lsx_vsra_h(__m128i _1, __m128i _2) {
845f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsra_h((v8i16)_1, (v8i16)_2);
855f757f3fSDimitry Andric }
865f757f3fSDimitry Andric 
875f757f3fSDimitry Andric extern __inline
885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
895f757f3fSDimitry Andric     __lsx_vsra_w(__m128i _1, __m128i _2) {
905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsra_w((v4i32)_1, (v4i32)_2);
915f757f3fSDimitry Andric }
925f757f3fSDimitry Andric 
935f757f3fSDimitry Andric extern __inline
945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
955f757f3fSDimitry Andric     __lsx_vsra_d(__m128i _1, __m128i _2) {
965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsra_d((v2i64)_1, (v2i64)_2);
975f757f3fSDimitry Andric }
985f757f3fSDimitry Andric 
995f757f3fSDimitry Andric #define __lsx_vsrai_b(/*__m128i*/ _1, /*ui3*/ _2)                              \
1005f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrai_b((v16i8)(_1), (_2)))
1015f757f3fSDimitry Andric 
1025f757f3fSDimitry Andric #define __lsx_vsrai_h(/*__m128i*/ _1, /*ui4*/ _2)                              \
1035f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrai_h((v8i16)(_1), (_2)))
1045f757f3fSDimitry Andric 
1055f757f3fSDimitry Andric #define __lsx_vsrai_w(/*__m128i*/ _1, /*ui5*/ _2)                              \
1065f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrai_w((v4i32)(_1), (_2)))
1075f757f3fSDimitry Andric 
1085f757f3fSDimitry Andric #define __lsx_vsrai_d(/*__m128i*/ _1, /*ui6*/ _2)                              \
1095f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrai_d((v2i64)(_1), (_2)))
1105f757f3fSDimitry Andric 
1115f757f3fSDimitry Andric extern __inline
1125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1135f757f3fSDimitry Andric     __lsx_vsrar_b(__m128i _1, __m128i _2) {
1145f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrar_b((v16i8)_1, (v16i8)_2);
1155f757f3fSDimitry Andric }
1165f757f3fSDimitry Andric 
1175f757f3fSDimitry Andric extern __inline
1185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1195f757f3fSDimitry Andric     __lsx_vsrar_h(__m128i _1, __m128i _2) {
1205f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrar_h((v8i16)_1, (v8i16)_2);
1215f757f3fSDimitry Andric }
1225f757f3fSDimitry Andric 
1235f757f3fSDimitry Andric extern __inline
1245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1255f757f3fSDimitry Andric     __lsx_vsrar_w(__m128i _1, __m128i _2) {
1265f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrar_w((v4i32)_1, (v4i32)_2);
1275f757f3fSDimitry Andric }
1285f757f3fSDimitry Andric 
1295f757f3fSDimitry Andric extern __inline
1305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1315f757f3fSDimitry Andric     __lsx_vsrar_d(__m128i _1, __m128i _2) {
1325f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrar_d((v2i64)_1, (v2i64)_2);
1335f757f3fSDimitry Andric }
1345f757f3fSDimitry Andric 
1355f757f3fSDimitry Andric #define __lsx_vsrari_b(/*__m128i*/ _1, /*ui3*/ _2)                             \
1365f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrari_b((v16i8)(_1), (_2)))
1375f757f3fSDimitry Andric 
1385f757f3fSDimitry Andric #define __lsx_vsrari_h(/*__m128i*/ _1, /*ui4*/ _2)                             \
1395f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrari_h((v8i16)(_1), (_2)))
1405f757f3fSDimitry Andric 
1415f757f3fSDimitry Andric #define __lsx_vsrari_w(/*__m128i*/ _1, /*ui5*/ _2)                             \
1425f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrari_w((v4i32)(_1), (_2)))
1435f757f3fSDimitry Andric 
1445f757f3fSDimitry Andric #define __lsx_vsrari_d(/*__m128i*/ _1, /*ui6*/ _2)                             \
1455f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrari_d((v2i64)(_1), (_2)))
1465f757f3fSDimitry Andric 
1475f757f3fSDimitry Andric extern __inline
1485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1495f757f3fSDimitry Andric     __lsx_vsrl_b(__m128i _1, __m128i _2) {
1505f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrl_b((v16i8)_1, (v16i8)_2);
1515f757f3fSDimitry Andric }
1525f757f3fSDimitry Andric 
1535f757f3fSDimitry Andric extern __inline
1545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1555f757f3fSDimitry Andric     __lsx_vsrl_h(__m128i _1, __m128i _2) {
1565f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrl_h((v8i16)_1, (v8i16)_2);
1575f757f3fSDimitry Andric }
1585f757f3fSDimitry Andric 
1595f757f3fSDimitry Andric extern __inline
1605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1615f757f3fSDimitry Andric     __lsx_vsrl_w(__m128i _1, __m128i _2) {
1625f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrl_w((v4i32)_1, (v4i32)_2);
1635f757f3fSDimitry Andric }
1645f757f3fSDimitry Andric 
1655f757f3fSDimitry Andric extern __inline
1665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1675f757f3fSDimitry Andric     __lsx_vsrl_d(__m128i _1, __m128i _2) {
1685f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrl_d((v2i64)_1, (v2i64)_2);
1695f757f3fSDimitry Andric }
1705f757f3fSDimitry Andric 
1715f757f3fSDimitry Andric #define __lsx_vsrli_b(/*__m128i*/ _1, /*ui3*/ _2)                              \
1725f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrli_b((v16i8)(_1), (_2)))
1735f757f3fSDimitry Andric 
1745f757f3fSDimitry Andric #define __lsx_vsrli_h(/*__m128i*/ _1, /*ui4*/ _2)                              \
1755f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrli_h((v8i16)(_1), (_2)))
1765f757f3fSDimitry Andric 
1775f757f3fSDimitry Andric #define __lsx_vsrli_w(/*__m128i*/ _1, /*ui5*/ _2)                              \
1785f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrli_w((v4i32)(_1), (_2)))
1795f757f3fSDimitry Andric 
1805f757f3fSDimitry Andric #define __lsx_vsrli_d(/*__m128i*/ _1, /*ui6*/ _2)                              \
1815f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrli_d((v2i64)(_1), (_2)))
1825f757f3fSDimitry Andric 
1835f757f3fSDimitry Andric extern __inline
1845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1855f757f3fSDimitry Andric     __lsx_vsrlr_b(__m128i _1, __m128i _2) {
1865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrlr_b((v16i8)_1, (v16i8)_2);
1875f757f3fSDimitry Andric }
1885f757f3fSDimitry Andric 
1895f757f3fSDimitry Andric extern __inline
1905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1915f757f3fSDimitry Andric     __lsx_vsrlr_h(__m128i _1, __m128i _2) {
1925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrlr_h((v8i16)_1, (v8i16)_2);
1935f757f3fSDimitry Andric }
1945f757f3fSDimitry Andric 
1955f757f3fSDimitry Andric extern __inline
1965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
1975f757f3fSDimitry Andric     __lsx_vsrlr_w(__m128i _1, __m128i _2) {
1985f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrlr_w((v4i32)_1, (v4i32)_2);
1995f757f3fSDimitry Andric }
2005f757f3fSDimitry Andric 
2015f757f3fSDimitry Andric extern __inline
2025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2035f757f3fSDimitry Andric     __lsx_vsrlr_d(__m128i _1, __m128i _2) {
2045f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrlr_d((v2i64)_1, (v2i64)_2);
2055f757f3fSDimitry Andric }
2065f757f3fSDimitry Andric 
2075f757f3fSDimitry Andric #define __lsx_vsrlri_b(/*__m128i*/ _1, /*ui3*/ _2)                             \
2085f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlri_b((v16i8)(_1), (_2)))
2095f757f3fSDimitry Andric 
2105f757f3fSDimitry Andric #define __lsx_vsrlri_h(/*__m128i*/ _1, /*ui4*/ _2)                             \
2115f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlri_h((v8i16)(_1), (_2)))
2125f757f3fSDimitry Andric 
2135f757f3fSDimitry Andric #define __lsx_vsrlri_w(/*__m128i*/ _1, /*ui5*/ _2)                             \
2145f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlri_w((v4i32)(_1), (_2)))
2155f757f3fSDimitry Andric 
2165f757f3fSDimitry Andric #define __lsx_vsrlri_d(/*__m128i*/ _1, /*ui6*/ _2)                             \
2175f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlri_d((v2i64)(_1), (_2)))
2185f757f3fSDimitry Andric 
2195f757f3fSDimitry Andric extern __inline
2205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2215f757f3fSDimitry Andric     __lsx_vbitclr_b(__m128i _1, __m128i _2) {
2225f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitclr_b((v16u8)_1, (v16u8)_2);
2235f757f3fSDimitry Andric }
2245f757f3fSDimitry Andric 
2255f757f3fSDimitry Andric extern __inline
2265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2275f757f3fSDimitry Andric     __lsx_vbitclr_h(__m128i _1, __m128i _2) {
2285f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitclr_h((v8u16)_1, (v8u16)_2);
2295f757f3fSDimitry Andric }
2305f757f3fSDimitry Andric 
2315f757f3fSDimitry Andric extern __inline
2325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2335f757f3fSDimitry Andric     __lsx_vbitclr_w(__m128i _1, __m128i _2) {
2345f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitclr_w((v4u32)_1, (v4u32)_2);
2355f757f3fSDimitry Andric }
2365f757f3fSDimitry Andric 
2375f757f3fSDimitry Andric extern __inline
2385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2395f757f3fSDimitry Andric     __lsx_vbitclr_d(__m128i _1, __m128i _2) {
2405f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitclr_d((v2u64)_1, (v2u64)_2);
2415f757f3fSDimitry Andric }
2425f757f3fSDimitry Andric 
2435f757f3fSDimitry Andric #define __lsx_vbitclri_b(/*__m128i*/ _1, /*ui3*/ _2)                           \
2445f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitclri_b((v16u8)(_1), (_2)))
2455f757f3fSDimitry Andric 
2465f757f3fSDimitry Andric #define __lsx_vbitclri_h(/*__m128i*/ _1, /*ui4*/ _2)                           \
2475f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitclri_h((v8u16)(_1), (_2)))
2485f757f3fSDimitry Andric 
2495f757f3fSDimitry Andric #define __lsx_vbitclri_w(/*__m128i*/ _1, /*ui5*/ _2)                           \
2505f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitclri_w((v4u32)(_1), (_2)))
2515f757f3fSDimitry Andric 
2525f757f3fSDimitry Andric #define __lsx_vbitclri_d(/*__m128i*/ _1, /*ui6*/ _2)                           \
2535f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitclri_d((v2u64)(_1), (_2)))
2545f757f3fSDimitry Andric 
2555f757f3fSDimitry Andric extern __inline
2565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2575f757f3fSDimitry Andric     __lsx_vbitset_b(__m128i _1, __m128i _2) {
2585f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitset_b((v16u8)_1, (v16u8)_2);
2595f757f3fSDimitry Andric }
2605f757f3fSDimitry Andric 
2615f757f3fSDimitry Andric extern __inline
2625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2635f757f3fSDimitry Andric     __lsx_vbitset_h(__m128i _1, __m128i _2) {
2645f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitset_h((v8u16)_1, (v8u16)_2);
2655f757f3fSDimitry Andric }
2665f757f3fSDimitry Andric 
2675f757f3fSDimitry Andric extern __inline
2685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2695f757f3fSDimitry Andric     __lsx_vbitset_w(__m128i _1, __m128i _2) {
2705f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitset_w((v4u32)_1, (v4u32)_2);
2715f757f3fSDimitry Andric }
2725f757f3fSDimitry Andric 
2735f757f3fSDimitry Andric extern __inline
2745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2755f757f3fSDimitry Andric     __lsx_vbitset_d(__m128i _1, __m128i _2) {
2765f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitset_d((v2u64)_1, (v2u64)_2);
2775f757f3fSDimitry Andric }
2785f757f3fSDimitry Andric 
2795f757f3fSDimitry Andric #define __lsx_vbitseti_b(/*__m128i*/ _1, /*ui3*/ _2)                           \
2805f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitseti_b((v16u8)(_1), (_2)))
2815f757f3fSDimitry Andric 
2825f757f3fSDimitry Andric #define __lsx_vbitseti_h(/*__m128i*/ _1, /*ui4*/ _2)                           \
2835f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitseti_h((v8u16)(_1), (_2)))
2845f757f3fSDimitry Andric 
2855f757f3fSDimitry Andric #define __lsx_vbitseti_w(/*__m128i*/ _1, /*ui5*/ _2)                           \
2865f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitseti_w((v4u32)(_1), (_2)))
2875f757f3fSDimitry Andric 
2885f757f3fSDimitry Andric #define __lsx_vbitseti_d(/*__m128i*/ _1, /*ui6*/ _2)                           \
2895f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitseti_d((v2u64)(_1), (_2)))
2905f757f3fSDimitry Andric 
2915f757f3fSDimitry Andric extern __inline
2925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2935f757f3fSDimitry Andric     __lsx_vbitrev_b(__m128i _1, __m128i _2) {
2945f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitrev_b((v16u8)_1, (v16u8)_2);
2955f757f3fSDimitry Andric }
2965f757f3fSDimitry Andric 
2975f757f3fSDimitry Andric extern __inline
2985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
2995f757f3fSDimitry Andric     __lsx_vbitrev_h(__m128i _1, __m128i _2) {
3005f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitrev_h((v8u16)_1, (v8u16)_2);
3015f757f3fSDimitry Andric }
3025f757f3fSDimitry Andric 
3035f757f3fSDimitry Andric extern __inline
3045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3055f757f3fSDimitry Andric     __lsx_vbitrev_w(__m128i _1, __m128i _2) {
3065f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitrev_w((v4u32)_1, (v4u32)_2);
3075f757f3fSDimitry Andric }
3085f757f3fSDimitry Andric 
3095f757f3fSDimitry Andric extern __inline
3105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3115f757f3fSDimitry Andric     __lsx_vbitrev_d(__m128i _1, __m128i _2) {
3125f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitrev_d((v2u64)_1, (v2u64)_2);
3135f757f3fSDimitry Andric }
3145f757f3fSDimitry Andric 
3155f757f3fSDimitry Andric #define __lsx_vbitrevi_b(/*__m128i*/ _1, /*ui3*/ _2)                           \
3165f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitrevi_b((v16u8)(_1), (_2)))
3175f757f3fSDimitry Andric 
3185f757f3fSDimitry Andric #define __lsx_vbitrevi_h(/*__m128i*/ _1, /*ui4*/ _2)                           \
3195f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitrevi_h((v8u16)(_1), (_2)))
3205f757f3fSDimitry Andric 
3215f757f3fSDimitry Andric #define __lsx_vbitrevi_w(/*__m128i*/ _1, /*ui5*/ _2)                           \
3225f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitrevi_w((v4u32)(_1), (_2)))
3235f757f3fSDimitry Andric 
3245f757f3fSDimitry Andric #define __lsx_vbitrevi_d(/*__m128i*/ _1, /*ui6*/ _2)                           \
3255f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitrevi_d((v2u64)(_1), (_2)))
3265f757f3fSDimitry Andric 
3275f757f3fSDimitry Andric extern __inline
3285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3295f757f3fSDimitry Andric     __lsx_vadd_b(__m128i _1, __m128i _2) {
3305f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadd_b((v16i8)_1, (v16i8)_2);
3315f757f3fSDimitry Andric }
3325f757f3fSDimitry Andric 
3335f757f3fSDimitry Andric extern __inline
3345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3355f757f3fSDimitry Andric     __lsx_vadd_h(__m128i _1, __m128i _2) {
3365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadd_h((v8i16)_1, (v8i16)_2);
3375f757f3fSDimitry Andric }
3385f757f3fSDimitry Andric 
3395f757f3fSDimitry Andric extern __inline
3405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3415f757f3fSDimitry Andric     __lsx_vadd_w(__m128i _1, __m128i _2) {
3425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadd_w((v4i32)_1, (v4i32)_2);
3435f757f3fSDimitry Andric }
3445f757f3fSDimitry Andric 
3455f757f3fSDimitry Andric extern __inline
3465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3475f757f3fSDimitry Andric     __lsx_vadd_d(__m128i _1, __m128i _2) {
3485f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadd_d((v2i64)_1, (v2i64)_2);
3495f757f3fSDimitry Andric }
3505f757f3fSDimitry Andric 
3515f757f3fSDimitry Andric #define __lsx_vaddi_bu(/*__m128i*/ _1, /*ui5*/ _2)                             \
3525f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vaddi_bu((v16i8)(_1), (_2)))
3535f757f3fSDimitry Andric 
3545f757f3fSDimitry Andric #define __lsx_vaddi_hu(/*__m128i*/ _1, /*ui5*/ _2)                             \
3555f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vaddi_hu((v8i16)(_1), (_2)))
3565f757f3fSDimitry Andric 
3575f757f3fSDimitry Andric #define __lsx_vaddi_wu(/*__m128i*/ _1, /*ui5*/ _2)                             \
3585f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vaddi_wu((v4i32)(_1), (_2)))
3595f757f3fSDimitry Andric 
3605f757f3fSDimitry Andric #define __lsx_vaddi_du(/*__m128i*/ _1, /*ui5*/ _2)                             \
3615f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vaddi_du((v2i64)(_1), (_2)))
3625f757f3fSDimitry Andric 
3635f757f3fSDimitry Andric extern __inline
3645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3655f757f3fSDimitry Andric     __lsx_vsub_b(__m128i _1, __m128i _2) {
3665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsub_b((v16i8)_1, (v16i8)_2);
3675f757f3fSDimitry Andric }
3685f757f3fSDimitry Andric 
3695f757f3fSDimitry Andric extern __inline
3705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3715f757f3fSDimitry Andric     __lsx_vsub_h(__m128i _1, __m128i _2) {
3725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsub_h((v8i16)_1, (v8i16)_2);
3735f757f3fSDimitry Andric }
3745f757f3fSDimitry Andric 
3755f757f3fSDimitry Andric extern __inline
3765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3775f757f3fSDimitry Andric     __lsx_vsub_w(__m128i _1, __m128i _2) {
3785f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsub_w((v4i32)_1, (v4i32)_2);
3795f757f3fSDimitry Andric }
3805f757f3fSDimitry Andric 
3815f757f3fSDimitry Andric extern __inline
3825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
3835f757f3fSDimitry Andric     __lsx_vsub_d(__m128i _1, __m128i _2) {
3845f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsub_d((v2i64)_1, (v2i64)_2);
3855f757f3fSDimitry Andric }
3865f757f3fSDimitry Andric 
3875f757f3fSDimitry Andric #define __lsx_vsubi_bu(/*__m128i*/ _1, /*ui5*/ _2)                             \
3885f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsubi_bu((v16i8)(_1), (_2)))
3895f757f3fSDimitry Andric 
3905f757f3fSDimitry Andric #define __lsx_vsubi_hu(/*__m128i*/ _1, /*ui5*/ _2)                             \
3915f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsubi_hu((v8i16)(_1), (_2)))
3925f757f3fSDimitry Andric 
3935f757f3fSDimitry Andric #define __lsx_vsubi_wu(/*__m128i*/ _1, /*ui5*/ _2)                             \
3945f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsubi_wu((v4i32)(_1), (_2)))
3955f757f3fSDimitry Andric 
3965f757f3fSDimitry Andric #define __lsx_vsubi_du(/*__m128i*/ _1, /*ui5*/ _2)                             \
3975f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsubi_du((v2i64)(_1), (_2)))
3985f757f3fSDimitry Andric 
3995f757f3fSDimitry Andric extern __inline
4005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4015f757f3fSDimitry Andric     __lsx_vmax_b(__m128i _1, __m128i _2) {
4025f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_b((v16i8)_1, (v16i8)_2);
4035f757f3fSDimitry Andric }
4045f757f3fSDimitry Andric 
4055f757f3fSDimitry Andric extern __inline
4065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4075f757f3fSDimitry Andric     __lsx_vmax_h(__m128i _1, __m128i _2) {
4085f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_h((v8i16)_1, (v8i16)_2);
4095f757f3fSDimitry Andric }
4105f757f3fSDimitry Andric 
4115f757f3fSDimitry Andric extern __inline
4125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4135f757f3fSDimitry Andric     __lsx_vmax_w(__m128i _1, __m128i _2) {
4145f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_w((v4i32)_1, (v4i32)_2);
4155f757f3fSDimitry Andric }
4165f757f3fSDimitry Andric 
4175f757f3fSDimitry Andric extern __inline
4185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4195f757f3fSDimitry Andric     __lsx_vmax_d(__m128i _1, __m128i _2) {
4205f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_d((v2i64)_1, (v2i64)_2);
4215f757f3fSDimitry Andric }
4225f757f3fSDimitry Andric 
4235f757f3fSDimitry Andric #define __lsx_vmaxi_b(/*__m128i*/ _1, /*si5*/ _2)                              \
4245f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_b((v16i8)(_1), (_2)))
4255f757f3fSDimitry Andric 
4265f757f3fSDimitry Andric #define __lsx_vmaxi_h(/*__m128i*/ _1, /*si5*/ _2)                              \
4275f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_h((v8i16)(_1), (_2)))
4285f757f3fSDimitry Andric 
4295f757f3fSDimitry Andric #define __lsx_vmaxi_w(/*__m128i*/ _1, /*si5*/ _2)                              \
4305f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_w((v4i32)(_1), (_2)))
4315f757f3fSDimitry Andric 
4325f757f3fSDimitry Andric #define __lsx_vmaxi_d(/*__m128i*/ _1, /*si5*/ _2)                              \
4335f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_d((v2i64)(_1), (_2)))
4345f757f3fSDimitry Andric 
4355f757f3fSDimitry Andric extern __inline
4365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4375f757f3fSDimitry Andric     __lsx_vmax_bu(__m128i _1, __m128i _2) {
4385f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_bu((v16u8)_1, (v16u8)_2);
4395f757f3fSDimitry Andric }
4405f757f3fSDimitry Andric 
4415f757f3fSDimitry Andric extern __inline
4425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4435f757f3fSDimitry Andric     __lsx_vmax_hu(__m128i _1, __m128i _2) {
4445f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_hu((v8u16)_1, (v8u16)_2);
4455f757f3fSDimitry Andric }
4465f757f3fSDimitry Andric 
4475f757f3fSDimitry Andric extern __inline
4485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4495f757f3fSDimitry Andric     __lsx_vmax_wu(__m128i _1, __m128i _2) {
4505f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_wu((v4u32)_1, (v4u32)_2);
4515f757f3fSDimitry Andric }
4525f757f3fSDimitry Andric 
4535f757f3fSDimitry Andric extern __inline
4545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4555f757f3fSDimitry Andric     __lsx_vmax_du(__m128i _1, __m128i _2) {
4565f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmax_du((v2u64)_1, (v2u64)_2);
4575f757f3fSDimitry Andric }
4585f757f3fSDimitry Andric 
4595f757f3fSDimitry Andric #define __lsx_vmaxi_bu(/*__m128i*/ _1, /*ui5*/ _2)                             \
4605f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_bu((v16u8)(_1), (_2)))
4615f757f3fSDimitry Andric 
4625f757f3fSDimitry Andric #define __lsx_vmaxi_hu(/*__m128i*/ _1, /*ui5*/ _2)                             \
4635f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_hu((v8u16)(_1), (_2)))
4645f757f3fSDimitry Andric 
4655f757f3fSDimitry Andric #define __lsx_vmaxi_wu(/*__m128i*/ _1, /*ui5*/ _2)                             \
4665f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_wu((v4u32)(_1), (_2)))
4675f757f3fSDimitry Andric 
4685f757f3fSDimitry Andric #define __lsx_vmaxi_du(/*__m128i*/ _1, /*ui5*/ _2)                             \
4695f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmaxi_du((v2u64)(_1), (_2)))
4705f757f3fSDimitry Andric 
4715f757f3fSDimitry Andric extern __inline
4725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4735f757f3fSDimitry Andric     __lsx_vmin_b(__m128i _1, __m128i _2) {
4745f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_b((v16i8)_1, (v16i8)_2);
4755f757f3fSDimitry Andric }
4765f757f3fSDimitry Andric 
4775f757f3fSDimitry Andric extern __inline
4785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4795f757f3fSDimitry Andric     __lsx_vmin_h(__m128i _1, __m128i _2) {
4805f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_h((v8i16)_1, (v8i16)_2);
4815f757f3fSDimitry Andric }
4825f757f3fSDimitry Andric 
4835f757f3fSDimitry Andric extern __inline
4845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4855f757f3fSDimitry Andric     __lsx_vmin_w(__m128i _1, __m128i _2) {
4865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_w((v4i32)_1, (v4i32)_2);
4875f757f3fSDimitry Andric }
4885f757f3fSDimitry Andric 
4895f757f3fSDimitry Andric extern __inline
4905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
4915f757f3fSDimitry Andric     __lsx_vmin_d(__m128i _1, __m128i _2) {
4925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_d((v2i64)_1, (v2i64)_2);
4935f757f3fSDimitry Andric }
4945f757f3fSDimitry Andric 
4955f757f3fSDimitry Andric #define __lsx_vmini_b(/*__m128i*/ _1, /*si5*/ _2)                              \
4965f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_b((v16i8)(_1), (_2)))
4975f757f3fSDimitry Andric 
4985f757f3fSDimitry Andric #define __lsx_vmini_h(/*__m128i*/ _1, /*si5*/ _2)                              \
4995f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_h((v8i16)(_1), (_2)))
5005f757f3fSDimitry Andric 
5015f757f3fSDimitry Andric #define __lsx_vmini_w(/*__m128i*/ _1, /*si5*/ _2)                              \
5025f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_w((v4i32)(_1), (_2)))
5035f757f3fSDimitry Andric 
5045f757f3fSDimitry Andric #define __lsx_vmini_d(/*__m128i*/ _1, /*si5*/ _2)                              \
5055f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_d((v2i64)(_1), (_2)))
5065f757f3fSDimitry Andric 
5075f757f3fSDimitry Andric extern __inline
5085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5095f757f3fSDimitry Andric     __lsx_vmin_bu(__m128i _1, __m128i _2) {
5105f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_bu((v16u8)_1, (v16u8)_2);
5115f757f3fSDimitry Andric }
5125f757f3fSDimitry Andric 
5135f757f3fSDimitry Andric extern __inline
5145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5155f757f3fSDimitry Andric     __lsx_vmin_hu(__m128i _1, __m128i _2) {
5165f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_hu((v8u16)_1, (v8u16)_2);
5175f757f3fSDimitry Andric }
5185f757f3fSDimitry Andric 
5195f757f3fSDimitry Andric extern __inline
5205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5215f757f3fSDimitry Andric     __lsx_vmin_wu(__m128i _1, __m128i _2) {
5225f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_wu((v4u32)_1, (v4u32)_2);
5235f757f3fSDimitry Andric }
5245f757f3fSDimitry Andric 
5255f757f3fSDimitry Andric extern __inline
5265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5275f757f3fSDimitry Andric     __lsx_vmin_du(__m128i _1, __m128i _2) {
5285f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmin_du((v2u64)_1, (v2u64)_2);
5295f757f3fSDimitry Andric }
5305f757f3fSDimitry Andric 
5315f757f3fSDimitry Andric #define __lsx_vmini_bu(/*__m128i*/ _1, /*ui5*/ _2)                             \
5325f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_bu((v16u8)(_1), (_2)))
5335f757f3fSDimitry Andric 
5345f757f3fSDimitry Andric #define __lsx_vmini_hu(/*__m128i*/ _1, /*ui5*/ _2)                             \
5355f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_hu((v8u16)(_1), (_2)))
5365f757f3fSDimitry Andric 
5375f757f3fSDimitry Andric #define __lsx_vmini_wu(/*__m128i*/ _1, /*ui5*/ _2)                             \
5385f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_wu((v4u32)(_1), (_2)))
5395f757f3fSDimitry Andric 
5405f757f3fSDimitry Andric #define __lsx_vmini_du(/*__m128i*/ _1, /*ui5*/ _2)                             \
5415f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vmini_du((v2u64)(_1), (_2)))
5425f757f3fSDimitry Andric 
5435f757f3fSDimitry Andric extern __inline
5445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5455f757f3fSDimitry Andric     __lsx_vseq_b(__m128i _1, __m128i _2) {
5465f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vseq_b((v16i8)_1, (v16i8)_2);
5475f757f3fSDimitry Andric }
5485f757f3fSDimitry Andric 
5495f757f3fSDimitry Andric extern __inline
5505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5515f757f3fSDimitry Andric     __lsx_vseq_h(__m128i _1, __m128i _2) {
5525f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vseq_h((v8i16)_1, (v8i16)_2);
5535f757f3fSDimitry Andric }
5545f757f3fSDimitry Andric 
5555f757f3fSDimitry Andric extern __inline
5565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5575f757f3fSDimitry Andric     __lsx_vseq_w(__m128i _1, __m128i _2) {
5585f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vseq_w((v4i32)_1, (v4i32)_2);
5595f757f3fSDimitry Andric }
5605f757f3fSDimitry Andric 
5615f757f3fSDimitry Andric extern __inline
5625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5635f757f3fSDimitry Andric     __lsx_vseq_d(__m128i _1, __m128i _2) {
5645f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vseq_d((v2i64)_1, (v2i64)_2);
5655f757f3fSDimitry Andric }
5665f757f3fSDimitry Andric 
5675f757f3fSDimitry Andric #define __lsx_vseqi_b(/*__m128i*/ _1, /*si5*/ _2)                              \
5685f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vseqi_b((v16i8)(_1), (_2)))
5695f757f3fSDimitry Andric 
5705f757f3fSDimitry Andric #define __lsx_vseqi_h(/*__m128i*/ _1, /*si5*/ _2)                              \
5715f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vseqi_h((v8i16)(_1), (_2)))
5725f757f3fSDimitry Andric 
5735f757f3fSDimitry Andric #define __lsx_vseqi_w(/*__m128i*/ _1, /*si5*/ _2)                              \
5745f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vseqi_w((v4i32)(_1), (_2)))
5755f757f3fSDimitry Andric 
5765f757f3fSDimitry Andric #define __lsx_vseqi_d(/*__m128i*/ _1, /*si5*/ _2)                              \
5775f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vseqi_d((v2i64)(_1), (_2)))
5785f757f3fSDimitry Andric 
5795f757f3fSDimitry Andric #define __lsx_vslti_b(/*__m128i*/ _1, /*si5*/ _2)                              \
5805f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_b((v16i8)(_1), (_2)))
5815f757f3fSDimitry Andric 
5825f757f3fSDimitry Andric extern __inline
5835f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5845f757f3fSDimitry Andric     __lsx_vslt_b(__m128i _1, __m128i _2) {
5855f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_b((v16i8)_1, (v16i8)_2);
5865f757f3fSDimitry Andric }
5875f757f3fSDimitry Andric 
5885f757f3fSDimitry Andric extern __inline
5895f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5905f757f3fSDimitry Andric     __lsx_vslt_h(__m128i _1, __m128i _2) {
5915f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_h((v8i16)_1, (v8i16)_2);
5925f757f3fSDimitry Andric }
5935f757f3fSDimitry Andric 
5945f757f3fSDimitry Andric extern __inline
5955f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
5965f757f3fSDimitry Andric     __lsx_vslt_w(__m128i _1, __m128i _2) {
5975f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_w((v4i32)_1, (v4i32)_2);
5985f757f3fSDimitry Andric }
5995f757f3fSDimitry Andric 
6005f757f3fSDimitry Andric extern __inline
6015f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6025f757f3fSDimitry Andric     __lsx_vslt_d(__m128i _1, __m128i _2) {
6035f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_d((v2i64)_1, (v2i64)_2);
6045f757f3fSDimitry Andric }
6055f757f3fSDimitry Andric 
6065f757f3fSDimitry Andric #define __lsx_vslti_h(/*__m128i*/ _1, /*si5*/ _2)                              \
6075f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_h((v8i16)(_1), (_2)))
6085f757f3fSDimitry Andric 
6095f757f3fSDimitry Andric #define __lsx_vslti_w(/*__m128i*/ _1, /*si5*/ _2)                              \
6105f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_w((v4i32)(_1), (_2)))
6115f757f3fSDimitry Andric 
6125f757f3fSDimitry Andric #define __lsx_vslti_d(/*__m128i*/ _1, /*si5*/ _2)                              \
6135f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_d((v2i64)(_1), (_2)))
6145f757f3fSDimitry Andric 
6155f757f3fSDimitry Andric extern __inline
6165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6175f757f3fSDimitry Andric     __lsx_vslt_bu(__m128i _1, __m128i _2) {
6185f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_bu((v16u8)_1, (v16u8)_2);
6195f757f3fSDimitry Andric }
6205f757f3fSDimitry Andric 
6215f757f3fSDimitry Andric extern __inline
6225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6235f757f3fSDimitry Andric     __lsx_vslt_hu(__m128i _1, __m128i _2) {
6245f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_hu((v8u16)_1, (v8u16)_2);
6255f757f3fSDimitry Andric }
6265f757f3fSDimitry Andric 
6275f757f3fSDimitry Andric extern __inline
6285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6295f757f3fSDimitry Andric     __lsx_vslt_wu(__m128i _1, __m128i _2) {
6305f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_wu((v4u32)_1, (v4u32)_2);
6315f757f3fSDimitry Andric }
6325f757f3fSDimitry Andric 
6335f757f3fSDimitry Andric extern __inline
6345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6355f757f3fSDimitry Andric     __lsx_vslt_du(__m128i _1, __m128i _2) {
6365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vslt_du((v2u64)_1, (v2u64)_2);
6375f757f3fSDimitry Andric }
6385f757f3fSDimitry Andric 
6395f757f3fSDimitry Andric #define __lsx_vslti_bu(/*__m128i*/ _1, /*ui5*/ _2)                             \
6405f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_bu((v16u8)(_1), (_2)))
6415f757f3fSDimitry Andric 
6425f757f3fSDimitry Andric #define __lsx_vslti_hu(/*__m128i*/ _1, /*ui5*/ _2)                             \
6435f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_hu((v8u16)(_1), (_2)))
6445f757f3fSDimitry Andric 
6455f757f3fSDimitry Andric #define __lsx_vslti_wu(/*__m128i*/ _1, /*ui5*/ _2)                             \
6465f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_wu((v4u32)(_1), (_2)))
6475f757f3fSDimitry Andric 
6485f757f3fSDimitry Andric #define __lsx_vslti_du(/*__m128i*/ _1, /*ui5*/ _2)                             \
6495f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslti_du((v2u64)(_1), (_2)))
6505f757f3fSDimitry Andric 
6515f757f3fSDimitry Andric extern __inline
6525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6535f757f3fSDimitry Andric     __lsx_vsle_b(__m128i _1, __m128i _2) {
6545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_b((v16i8)_1, (v16i8)_2);
6555f757f3fSDimitry Andric }
6565f757f3fSDimitry Andric 
6575f757f3fSDimitry Andric extern __inline
6585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6595f757f3fSDimitry Andric     __lsx_vsle_h(__m128i _1, __m128i _2) {
6605f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_h((v8i16)_1, (v8i16)_2);
6615f757f3fSDimitry Andric }
6625f757f3fSDimitry Andric 
6635f757f3fSDimitry Andric extern __inline
6645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6655f757f3fSDimitry Andric     __lsx_vsle_w(__m128i _1, __m128i _2) {
6665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_w((v4i32)_1, (v4i32)_2);
6675f757f3fSDimitry Andric }
6685f757f3fSDimitry Andric 
6695f757f3fSDimitry Andric extern __inline
6705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6715f757f3fSDimitry Andric     __lsx_vsle_d(__m128i _1, __m128i _2) {
6725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_d((v2i64)_1, (v2i64)_2);
6735f757f3fSDimitry Andric }
6745f757f3fSDimitry Andric 
6755f757f3fSDimitry Andric #define __lsx_vslei_b(/*__m128i*/ _1, /*si5*/ _2)                              \
6765f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_b((v16i8)(_1), (_2)))
6775f757f3fSDimitry Andric 
6785f757f3fSDimitry Andric #define __lsx_vslei_h(/*__m128i*/ _1, /*si5*/ _2)                              \
6795f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_h((v8i16)(_1), (_2)))
6805f757f3fSDimitry Andric 
6815f757f3fSDimitry Andric #define __lsx_vslei_w(/*__m128i*/ _1, /*si5*/ _2)                              \
6825f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_w((v4i32)(_1), (_2)))
6835f757f3fSDimitry Andric 
6845f757f3fSDimitry Andric #define __lsx_vslei_d(/*__m128i*/ _1, /*si5*/ _2)                              \
6855f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_d((v2i64)(_1), (_2)))
6865f757f3fSDimitry Andric 
6875f757f3fSDimitry Andric extern __inline
6885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6895f757f3fSDimitry Andric     __lsx_vsle_bu(__m128i _1, __m128i _2) {
6905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_bu((v16u8)_1, (v16u8)_2);
6915f757f3fSDimitry Andric }
6925f757f3fSDimitry Andric 
6935f757f3fSDimitry Andric extern __inline
6945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
6955f757f3fSDimitry Andric     __lsx_vsle_hu(__m128i _1, __m128i _2) {
6965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_hu((v8u16)_1, (v8u16)_2);
6975f757f3fSDimitry Andric }
6985f757f3fSDimitry Andric 
6995f757f3fSDimitry Andric extern __inline
7005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7015f757f3fSDimitry Andric     __lsx_vsle_wu(__m128i _1, __m128i _2) {
7025f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_wu((v4u32)_1, (v4u32)_2);
7035f757f3fSDimitry Andric }
7045f757f3fSDimitry Andric 
7055f757f3fSDimitry Andric extern __inline
7065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7075f757f3fSDimitry Andric     __lsx_vsle_du(__m128i _1, __m128i _2) {
7085f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsle_du((v2u64)_1, (v2u64)_2);
7095f757f3fSDimitry Andric }
7105f757f3fSDimitry Andric 
7115f757f3fSDimitry Andric #define __lsx_vslei_bu(/*__m128i*/ _1, /*ui5*/ _2)                             \
7125f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_bu((v16u8)(_1), (_2)))
7135f757f3fSDimitry Andric 
7145f757f3fSDimitry Andric #define __lsx_vslei_hu(/*__m128i*/ _1, /*ui5*/ _2)                             \
7155f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_hu((v8u16)(_1), (_2)))
7165f757f3fSDimitry Andric 
7175f757f3fSDimitry Andric #define __lsx_vslei_wu(/*__m128i*/ _1, /*ui5*/ _2)                             \
7185f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_wu((v4u32)(_1), (_2)))
7195f757f3fSDimitry Andric 
7205f757f3fSDimitry Andric #define __lsx_vslei_du(/*__m128i*/ _1, /*ui5*/ _2)                             \
7215f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vslei_du((v2u64)(_1), (_2)))
7225f757f3fSDimitry Andric 
7235f757f3fSDimitry Andric #define __lsx_vsat_b(/*__m128i*/ _1, /*ui3*/ _2)                               \
7245f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_b((v16i8)(_1), (_2)))
7255f757f3fSDimitry Andric 
7265f757f3fSDimitry Andric #define __lsx_vsat_h(/*__m128i*/ _1, /*ui4*/ _2)                               \
7275f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_h((v8i16)(_1), (_2)))
7285f757f3fSDimitry Andric 
7295f757f3fSDimitry Andric #define __lsx_vsat_w(/*__m128i*/ _1, /*ui5*/ _2)                               \
7305f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_w((v4i32)(_1), (_2)))
7315f757f3fSDimitry Andric 
7325f757f3fSDimitry Andric #define __lsx_vsat_d(/*__m128i*/ _1, /*ui6*/ _2)                               \
7335f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_d((v2i64)(_1), (_2)))
7345f757f3fSDimitry Andric 
7355f757f3fSDimitry Andric #define __lsx_vsat_bu(/*__m128i*/ _1, /*ui3*/ _2)                              \
7365f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_bu((v16u8)(_1), (_2)))
7375f757f3fSDimitry Andric 
7385f757f3fSDimitry Andric #define __lsx_vsat_hu(/*__m128i*/ _1, /*ui4*/ _2)                              \
7395f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_hu((v8u16)(_1), (_2)))
7405f757f3fSDimitry Andric 
7415f757f3fSDimitry Andric #define __lsx_vsat_wu(/*__m128i*/ _1, /*ui5*/ _2)                              \
7425f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_wu((v4u32)(_1), (_2)))
7435f757f3fSDimitry Andric 
7445f757f3fSDimitry Andric #define __lsx_vsat_du(/*__m128i*/ _1, /*ui6*/ _2)                              \
7455f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsat_du((v2u64)(_1), (_2)))
7465f757f3fSDimitry Andric 
7475f757f3fSDimitry Andric extern __inline
7485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7495f757f3fSDimitry Andric     __lsx_vadda_b(__m128i _1, __m128i _2) {
7505f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadda_b((v16i8)_1, (v16i8)_2);
7515f757f3fSDimitry Andric }
7525f757f3fSDimitry Andric 
7535f757f3fSDimitry Andric extern __inline
7545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7555f757f3fSDimitry Andric     __lsx_vadda_h(__m128i _1, __m128i _2) {
7565f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadda_h((v8i16)_1, (v8i16)_2);
7575f757f3fSDimitry Andric }
7585f757f3fSDimitry Andric 
7595f757f3fSDimitry Andric extern __inline
7605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7615f757f3fSDimitry Andric     __lsx_vadda_w(__m128i _1, __m128i _2) {
7625f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadda_w((v4i32)_1, (v4i32)_2);
7635f757f3fSDimitry Andric }
7645f757f3fSDimitry Andric 
7655f757f3fSDimitry Andric extern __inline
7665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7675f757f3fSDimitry Andric     __lsx_vadda_d(__m128i _1, __m128i _2) {
7685f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadda_d((v2i64)_1, (v2i64)_2);
7695f757f3fSDimitry Andric }
7705f757f3fSDimitry Andric 
7715f757f3fSDimitry Andric extern __inline
7725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7735f757f3fSDimitry Andric     __lsx_vsadd_b(__m128i _1, __m128i _2) {
7745f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_b((v16i8)_1, (v16i8)_2);
7755f757f3fSDimitry Andric }
7765f757f3fSDimitry Andric 
7775f757f3fSDimitry Andric extern __inline
7785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7795f757f3fSDimitry Andric     __lsx_vsadd_h(__m128i _1, __m128i _2) {
7805f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_h((v8i16)_1, (v8i16)_2);
7815f757f3fSDimitry Andric }
7825f757f3fSDimitry Andric 
7835f757f3fSDimitry Andric extern __inline
7845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7855f757f3fSDimitry Andric     __lsx_vsadd_w(__m128i _1, __m128i _2) {
7865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_w((v4i32)_1, (v4i32)_2);
7875f757f3fSDimitry Andric }
7885f757f3fSDimitry Andric 
7895f757f3fSDimitry Andric extern __inline
7905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7915f757f3fSDimitry Andric     __lsx_vsadd_d(__m128i _1, __m128i _2) {
7925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_d((v2i64)_1, (v2i64)_2);
7935f757f3fSDimitry Andric }
7945f757f3fSDimitry Andric 
7955f757f3fSDimitry Andric extern __inline
7965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
7975f757f3fSDimitry Andric     __lsx_vsadd_bu(__m128i _1, __m128i _2) {
7985f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_bu((v16u8)_1, (v16u8)_2);
7995f757f3fSDimitry Andric }
8005f757f3fSDimitry Andric 
8015f757f3fSDimitry Andric extern __inline
8025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8035f757f3fSDimitry Andric     __lsx_vsadd_hu(__m128i _1, __m128i _2) {
8045f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_hu((v8u16)_1, (v8u16)_2);
8055f757f3fSDimitry Andric }
8065f757f3fSDimitry Andric 
8075f757f3fSDimitry Andric extern __inline
8085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8095f757f3fSDimitry Andric     __lsx_vsadd_wu(__m128i _1, __m128i _2) {
8105f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_wu((v4u32)_1, (v4u32)_2);
8115f757f3fSDimitry Andric }
8125f757f3fSDimitry Andric 
8135f757f3fSDimitry Andric extern __inline
8145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8155f757f3fSDimitry Andric     __lsx_vsadd_du(__m128i _1, __m128i _2) {
8165f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsadd_du((v2u64)_1, (v2u64)_2);
8175f757f3fSDimitry Andric }
8185f757f3fSDimitry Andric 
8195f757f3fSDimitry Andric extern __inline
8205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8215f757f3fSDimitry Andric     __lsx_vavg_b(__m128i _1, __m128i _2) {
8225f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_b((v16i8)_1, (v16i8)_2);
8235f757f3fSDimitry Andric }
8245f757f3fSDimitry Andric 
8255f757f3fSDimitry Andric extern __inline
8265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8275f757f3fSDimitry Andric     __lsx_vavg_h(__m128i _1, __m128i _2) {
8285f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_h((v8i16)_1, (v8i16)_2);
8295f757f3fSDimitry Andric }
8305f757f3fSDimitry Andric 
8315f757f3fSDimitry Andric extern __inline
8325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8335f757f3fSDimitry Andric     __lsx_vavg_w(__m128i _1, __m128i _2) {
8345f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_w((v4i32)_1, (v4i32)_2);
8355f757f3fSDimitry Andric }
8365f757f3fSDimitry Andric 
8375f757f3fSDimitry Andric extern __inline
8385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8395f757f3fSDimitry Andric     __lsx_vavg_d(__m128i _1, __m128i _2) {
8405f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_d((v2i64)_1, (v2i64)_2);
8415f757f3fSDimitry Andric }
8425f757f3fSDimitry Andric 
8435f757f3fSDimitry Andric extern __inline
8445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8455f757f3fSDimitry Andric     __lsx_vavg_bu(__m128i _1, __m128i _2) {
8465f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_bu((v16u8)_1, (v16u8)_2);
8475f757f3fSDimitry Andric }
8485f757f3fSDimitry Andric 
8495f757f3fSDimitry Andric extern __inline
8505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8515f757f3fSDimitry Andric     __lsx_vavg_hu(__m128i _1, __m128i _2) {
8525f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_hu((v8u16)_1, (v8u16)_2);
8535f757f3fSDimitry Andric }
8545f757f3fSDimitry Andric 
8555f757f3fSDimitry Andric extern __inline
8565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8575f757f3fSDimitry Andric     __lsx_vavg_wu(__m128i _1, __m128i _2) {
8585f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_wu((v4u32)_1, (v4u32)_2);
8595f757f3fSDimitry Andric }
8605f757f3fSDimitry Andric 
8615f757f3fSDimitry Andric extern __inline
8625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8635f757f3fSDimitry Andric     __lsx_vavg_du(__m128i _1, __m128i _2) {
8645f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavg_du((v2u64)_1, (v2u64)_2);
8655f757f3fSDimitry Andric }
8665f757f3fSDimitry Andric 
8675f757f3fSDimitry Andric extern __inline
8685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8695f757f3fSDimitry Andric     __lsx_vavgr_b(__m128i _1, __m128i _2) {
8705f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_b((v16i8)_1, (v16i8)_2);
8715f757f3fSDimitry Andric }
8725f757f3fSDimitry Andric 
8735f757f3fSDimitry Andric extern __inline
8745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8755f757f3fSDimitry Andric     __lsx_vavgr_h(__m128i _1, __m128i _2) {
8765f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_h((v8i16)_1, (v8i16)_2);
8775f757f3fSDimitry Andric }
8785f757f3fSDimitry Andric 
8795f757f3fSDimitry Andric extern __inline
8805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8815f757f3fSDimitry Andric     __lsx_vavgr_w(__m128i _1, __m128i _2) {
8825f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_w((v4i32)_1, (v4i32)_2);
8835f757f3fSDimitry Andric }
8845f757f3fSDimitry Andric 
8855f757f3fSDimitry Andric extern __inline
8865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8875f757f3fSDimitry Andric     __lsx_vavgr_d(__m128i _1, __m128i _2) {
8885f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_d((v2i64)_1, (v2i64)_2);
8895f757f3fSDimitry Andric }
8905f757f3fSDimitry Andric 
8915f757f3fSDimitry Andric extern __inline
8925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8935f757f3fSDimitry Andric     __lsx_vavgr_bu(__m128i _1, __m128i _2) {
8945f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_bu((v16u8)_1, (v16u8)_2);
8955f757f3fSDimitry Andric }
8965f757f3fSDimitry Andric 
8975f757f3fSDimitry Andric extern __inline
8985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
8995f757f3fSDimitry Andric     __lsx_vavgr_hu(__m128i _1, __m128i _2) {
9005f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_hu((v8u16)_1, (v8u16)_2);
9015f757f3fSDimitry Andric }
9025f757f3fSDimitry Andric 
9035f757f3fSDimitry Andric extern __inline
9045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9055f757f3fSDimitry Andric     __lsx_vavgr_wu(__m128i _1, __m128i _2) {
9065f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_wu((v4u32)_1, (v4u32)_2);
9075f757f3fSDimitry Andric }
9085f757f3fSDimitry Andric 
9095f757f3fSDimitry Andric extern __inline
9105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9115f757f3fSDimitry Andric     __lsx_vavgr_du(__m128i _1, __m128i _2) {
9125f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vavgr_du((v2u64)_1, (v2u64)_2);
9135f757f3fSDimitry Andric }
9145f757f3fSDimitry Andric 
9155f757f3fSDimitry Andric extern __inline
9165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9175f757f3fSDimitry Andric     __lsx_vssub_b(__m128i _1, __m128i _2) {
9185f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_b((v16i8)_1, (v16i8)_2);
9195f757f3fSDimitry Andric }
9205f757f3fSDimitry Andric 
9215f757f3fSDimitry Andric extern __inline
9225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9235f757f3fSDimitry Andric     __lsx_vssub_h(__m128i _1, __m128i _2) {
9245f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_h((v8i16)_1, (v8i16)_2);
9255f757f3fSDimitry Andric }
9265f757f3fSDimitry Andric 
9275f757f3fSDimitry Andric extern __inline
9285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9295f757f3fSDimitry Andric     __lsx_vssub_w(__m128i _1, __m128i _2) {
9305f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_w((v4i32)_1, (v4i32)_2);
9315f757f3fSDimitry Andric }
9325f757f3fSDimitry Andric 
9335f757f3fSDimitry Andric extern __inline
9345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9355f757f3fSDimitry Andric     __lsx_vssub_d(__m128i _1, __m128i _2) {
9365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_d((v2i64)_1, (v2i64)_2);
9375f757f3fSDimitry Andric }
9385f757f3fSDimitry Andric 
9395f757f3fSDimitry Andric extern __inline
9405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9415f757f3fSDimitry Andric     __lsx_vssub_bu(__m128i _1, __m128i _2) {
9425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_bu((v16u8)_1, (v16u8)_2);
9435f757f3fSDimitry Andric }
9445f757f3fSDimitry Andric 
9455f757f3fSDimitry Andric extern __inline
9465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9475f757f3fSDimitry Andric     __lsx_vssub_hu(__m128i _1, __m128i _2) {
9485f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_hu((v8u16)_1, (v8u16)_2);
9495f757f3fSDimitry Andric }
9505f757f3fSDimitry Andric 
9515f757f3fSDimitry Andric extern __inline
9525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9535f757f3fSDimitry Andric     __lsx_vssub_wu(__m128i _1, __m128i _2) {
9545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_wu((v4u32)_1, (v4u32)_2);
9555f757f3fSDimitry Andric }
9565f757f3fSDimitry Andric 
9575f757f3fSDimitry Andric extern __inline
9585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9595f757f3fSDimitry Andric     __lsx_vssub_du(__m128i _1, __m128i _2) {
9605f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssub_du((v2u64)_1, (v2u64)_2);
9615f757f3fSDimitry Andric }
9625f757f3fSDimitry Andric 
9635f757f3fSDimitry Andric extern __inline
9645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9655f757f3fSDimitry Andric     __lsx_vabsd_b(__m128i _1, __m128i _2) {
9665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_b((v16i8)_1, (v16i8)_2);
9675f757f3fSDimitry Andric }
9685f757f3fSDimitry Andric 
9695f757f3fSDimitry Andric extern __inline
9705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9715f757f3fSDimitry Andric     __lsx_vabsd_h(__m128i _1, __m128i _2) {
9725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_h((v8i16)_1, (v8i16)_2);
9735f757f3fSDimitry Andric }
9745f757f3fSDimitry Andric 
9755f757f3fSDimitry Andric extern __inline
9765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9775f757f3fSDimitry Andric     __lsx_vabsd_w(__m128i _1, __m128i _2) {
9785f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_w((v4i32)_1, (v4i32)_2);
9795f757f3fSDimitry Andric }
9805f757f3fSDimitry Andric 
9815f757f3fSDimitry Andric extern __inline
9825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9835f757f3fSDimitry Andric     __lsx_vabsd_d(__m128i _1, __m128i _2) {
9845f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_d((v2i64)_1, (v2i64)_2);
9855f757f3fSDimitry Andric }
9865f757f3fSDimitry Andric 
9875f757f3fSDimitry Andric extern __inline
9885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9895f757f3fSDimitry Andric     __lsx_vabsd_bu(__m128i _1, __m128i _2) {
9905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_bu((v16u8)_1, (v16u8)_2);
9915f757f3fSDimitry Andric }
9925f757f3fSDimitry Andric 
9935f757f3fSDimitry Andric extern __inline
9945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
9955f757f3fSDimitry Andric     __lsx_vabsd_hu(__m128i _1, __m128i _2) {
9965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_hu((v8u16)_1, (v8u16)_2);
9975f757f3fSDimitry Andric }
9985f757f3fSDimitry Andric 
9995f757f3fSDimitry Andric extern __inline
10005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10015f757f3fSDimitry Andric     __lsx_vabsd_wu(__m128i _1, __m128i _2) {
10025f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_wu((v4u32)_1, (v4u32)_2);
10035f757f3fSDimitry Andric }
10045f757f3fSDimitry Andric 
10055f757f3fSDimitry Andric extern __inline
10065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10075f757f3fSDimitry Andric     __lsx_vabsd_du(__m128i _1, __m128i _2) {
10085f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vabsd_du((v2u64)_1, (v2u64)_2);
10095f757f3fSDimitry Andric }
10105f757f3fSDimitry Andric 
10115f757f3fSDimitry Andric extern __inline
10125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10135f757f3fSDimitry Andric     __lsx_vmul_b(__m128i _1, __m128i _2) {
10145f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmul_b((v16i8)_1, (v16i8)_2);
10155f757f3fSDimitry Andric }
10165f757f3fSDimitry Andric 
10175f757f3fSDimitry Andric extern __inline
10185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10195f757f3fSDimitry Andric     __lsx_vmul_h(__m128i _1, __m128i _2) {
10205f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmul_h((v8i16)_1, (v8i16)_2);
10215f757f3fSDimitry Andric }
10225f757f3fSDimitry Andric 
10235f757f3fSDimitry Andric extern __inline
10245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10255f757f3fSDimitry Andric     __lsx_vmul_w(__m128i _1, __m128i _2) {
10265f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmul_w((v4i32)_1, (v4i32)_2);
10275f757f3fSDimitry Andric }
10285f757f3fSDimitry Andric 
10295f757f3fSDimitry Andric extern __inline
10305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10315f757f3fSDimitry Andric     __lsx_vmul_d(__m128i _1, __m128i _2) {
10325f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmul_d((v2i64)_1, (v2i64)_2);
10335f757f3fSDimitry Andric }
10345f757f3fSDimitry Andric 
10355f757f3fSDimitry Andric extern __inline
10365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10375f757f3fSDimitry Andric     __lsx_vmadd_b(__m128i _1, __m128i _2, __m128i _3) {
10385f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmadd_b((v16i8)_1, (v16i8)_2, (v16i8)_3);
10395f757f3fSDimitry Andric }
10405f757f3fSDimitry Andric 
10415f757f3fSDimitry Andric extern __inline
10425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10435f757f3fSDimitry Andric     __lsx_vmadd_h(__m128i _1, __m128i _2, __m128i _3) {
10445f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmadd_h((v8i16)_1, (v8i16)_2, (v8i16)_3);
10455f757f3fSDimitry Andric }
10465f757f3fSDimitry Andric 
10475f757f3fSDimitry Andric extern __inline
10485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10495f757f3fSDimitry Andric     __lsx_vmadd_w(__m128i _1, __m128i _2, __m128i _3) {
10505f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmadd_w((v4i32)_1, (v4i32)_2, (v4i32)_3);
10515f757f3fSDimitry Andric }
10525f757f3fSDimitry Andric 
10535f757f3fSDimitry Andric extern __inline
10545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10555f757f3fSDimitry Andric     __lsx_vmadd_d(__m128i _1, __m128i _2, __m128i _3) {
10565f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmadd_d((v2i64)_1, (v2i64)_2, (v2i64)_3);
10575f757f3fSDimitry Andric }
10585f757f3fSDimitry Andric 
10595f757f3fSDimitry Andric extern __inline
10605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10615f757f3fSDimitry Andric     __lsx_vmsub_b(__m128i _1, __m128i _2, __m128i _3) {
10625f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmsub_b((v16i8)_1, (v16i8)_2, (v16i8)_3);
10635f757f3fSDimitry Andric }
10645f757f3fSDimitry Andric 
10655f757f3fSDimitry Andric extern __inline
10665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10675f757f3fSDimitry Andric     __lsx_vmsub_h(__m128i _1, __m128i _2, __m128i _3) {
10685f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmsub_h((v8i16)_1, (v8i16)_2, (v8i16)_3);
10695f757f3fSDimitry Andric }
10705f757f3fSDimitry Andric 
10715f757f3fSDimitry Andric extern __inline
10725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10735f757f3fSDimitry Andric     __lsx_vmsub_w(__m128i _1, __m128i _2, __m128i _3) {
10745f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmsub_w((v4i32)_1, (v4i32)_2, (v4i32)_3);
10755f757f3fSDimitry Andric }
10765f757f3fSDimitry Andric 
10775f757f3fSDimitry Andric extern __inline
10785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10795f757f3fSDimitry Andric     __lsx_vmsub_d(__m128i _1, __m128i _2, __m128i _3) {
10805f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmsub_d((v2i64)_1, (v2i64)_2, (v2i64)_3);
10815f757f3fSDimitry Andric }
10825f757f3fSDimitry Andric 
10835f757f3fSDimitry Andric extern __inline
10845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10855f757f3fSDimitry Andric     __lsx_vdiv_b(__m128i _1, __m128i _2) {
10865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_b((v16i8)_1, (v16i8)_2);
10875f757f3fSDimitry Andric }
10885f757f3fSDimitry Andric 
10895f757f3fSDimitry Andric extern __inline
10905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10915f757f3fSDimitry Andric     __lsx_vdiv_h(__m128i _1, __m128i _2) {
10925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_h((v8i16)_1, (v8i16)_2);
10935f757f3fSDimitry Andric }
10945f757f3fSDimitry Andric 
10955f757f3fSDimitry Andric extern __inline
10965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
10975f757f3fSDimitry Andric     __lsx_vdiv_w(__m128i _1, __m128i _2) {
10985f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_w((v4i32)_1, (v4i32)_2);
10995f757f3fSDimitry Andric }
11005f757f3fSDimitry Andric 
11015f757f3fSDimitry Andric extern __inline
11025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11035f757f3fSDimitry Andric     __lsx_vdiv_d(__m128i _1, __m128i _2) {
11045f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_d((v2i64)_1, (v2i64)_2);
11055f757f3fSDimitry Andric }
11065f757f3fSDimitry Andric 
11075f757f3fSDimitry Andric extern __inline
11085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11095f757f3fSDimitry Andric     __lsx_vdiv_bu(__m128i _1, __m128i _2) {
11105f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_bu((v16u8)_1, (v16u8)_2);
11115f757f3fSDimitry Andric }
11125f757f3fSDimitry Andric 
11135f757f3fSDimitry Andric extern __inline
11145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11155f757f3fSDimitry Andric     __lsx_vdiv_hu(__m128i _1, __m128i _2) {
11165f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_hu((v8u16)_1, (v8u16)_2);
11175f757f3fSDimitry Andric }
11185f757f3fSDimitry Andric 
11195f757f3fSDimitry Andric extern __inline
11205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11215f757f3fSDimitry Andric     __lsx_vdiv_wu(__m128i _1, __m128i _2) {
11225f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_wu((v4u32)_1, (v4u32)_2);
11235f757f3fSDimitry Andric }
11245f757f3fSDimitry Andric 
11255f757f3fSDimitry Andric extern __inline
11265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11275f757f3fSDimitry Andric     __lsx_vdiv_du(__m128i _1, __m128i _2) {
11285f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vdiv_du((v2u64)_1, (v2u64)_2);
11295f757f3fSDimitry Andric }
11305f757f3fSDimitry Andric 
11315f757f3fSDimitry Andric extern __inline
11325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11335f757f3fSDimitry Andric     __lsx_vhaddw_h_b(__m128i _1, __m128i _2) {
11345f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_h_b((v16i8)_1, (v16i8)_2);
11355f757f3fSDimitry Andric }
11365f757f3fSDimitry Andric 
11375f757f3fSDimitry Andric extern __inline
11385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11395f757f3fSDimitry Andric     __lsx_vhaddw_w_h(__m128i _1, __m128i _2) {
11405f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_w_h((v8i16)_1, (v8i16)_2);
11415f757f3fSDimitry Andric }
11425f757f3fSDimitry Andric 
11435f757f3fSDimitry Andric extern __inline
11445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11455f757f3fSDimitry Andric     __lsx_vhaddw_d_w(__m128i _1, __m128i _2) {
11465f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_d_w((v4i32)_1, (v4i32)_2);
11475f757f3fSDimitry Andric }
11485f757f3fSDimitry Andric 
11495f757f3fSDimitry Andric extern __inline
11505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11515f757f3fSDimitry Andric     __lsx_vhaddw_hu_bu(__m128i _1, __m128i _2) {
11525f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_hu_bu((v16u8)_1, (v16u8)_2);
11535f757f3fSDimitry Andric }
11545f757f3fSDimitry Andric 
11555f757f3fSDimitry Andric extern __inline
11565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11575f757f3fSDimitry Andric     __lsx_vhaddw_wu_hu(__m128i _1, __m128i _2) {
11585f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_wu_hu((v8u16)_1, (v8u16)_2);
11595f757f3fSDimitry Andric }
11605f757f3fSDimitry Andric 
11615f757f3fSDimitry Andric extern __inline
11625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11635f757f3fSDimitry Andric     __lsx_vhaddw_du_wu(__m128i _1, __m128i _2) {
11645f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_du_wu((v4u32)_1, (v4u32)_2);
11655f757f3fSDimitry Andric }
11665f757f3fSDimitry Andric 
11675f757f3fSDimitry Andric extern __inline
11685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11695f757f3fSDimitry Andric     __lsx_vhsubw_h_b(__m128i _1, __m128i _2) {
11705f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_h_b((v16i8)_1, (v16i8)_2);
11715f757f3fSDimitry Andric }
11725f757f3fSDimitry Andric 
11735f757f3fSDimitry Andric extern __inline
11745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11755f757f3fSDimitry Andric     __lsx_vhsubw_w_h(__m128i _1, __m128i _2) {
11765f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_w_h((v8i16)_1, (v8i16)_2);
11775f757f3fSDimitry Andric }
11785f757f3fSDimitry Andric 
11795f757f3fSDimitry Andric extern __inline
11805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11815f757f3fSDimitry Andric     __lsx_vhsubw_d_w(__m128i _1, __m128i _2) {
11825f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_d_w((v4i32)_1, (v4i32)_2);
11835f757f3fSDimitry Andric }
11845f757f3fSDimitry Andric 
11855f757f3fSDimitry Andric extern __inline
11865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11875f757f3fSDimitry Andric     __lsx_vhsubw_hu_bu(__m128i _1, __m128i _2) {
11885f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_hu_bu((v16u8)_1, (v16u8)_2);
11895f757f3fSDimitry Andric }
11905f757f3fSDimitry Andric 
11915f757f3fSDimitry Andric extern __inline
11925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11935f757f3fSDimitry Andric     __lsx_vhsubw_wu_hu(__m128i _1, __m128i _2) {
11945f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_wu_hu((v8u16)_1, (v8u16)_2);
11955f757f3fSDimitry Andric }
11965f757f3fSDimitry Andric 
11975f757f3fSDimitry Andric extern __inline
11985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
11995f757f3fSDimitry Andric     __lsx_vhsubw_du_wu(__m128i _1, __m128i _2) {
12005f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_du_wu((v4u32)_1, (v4u32)_2);
12015f757f3fSDimitry Andric }
12025f757f3fSDimitry Andric 
12035f757f3fSDimitry Andric extern __inline
12045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12055f757f3fSDimitry Andric     __lsx_vmod_b(__m128i _1, __m128i _2) {
12065f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_b((v16i8)_1, (v16i8)_2);
12075f757f3fSDimitry Andric }
12085f757f3fSDimitry Andric 
12095f757f3fSDimitry Andric extern __inline
12105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12115f757f3fSDimitry Andric     __lsx_vmod_h(__m128i _1, __m128i _2) {
12125f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_h((v8i16)_1, (v8i16)_2);
12135f757f3fSDimitry Andric }
12145f757f3fSDimitry Andric 
12155f757f3fSDimitry Andric extern __inline
12165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12175f757f3fSDimitry Andric     __lsx_vmod_w(__m128i _1, __m128i _2) {
12185f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_w((v4i32)_1, (v4i32)_2);
12195f757f3fSDimitry Andric }
12205f757f3fSDimitry Andric 
12215f757f3fSDimitry Andric extern __inline
12225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12235f757f3fSDimitry Andric     __lsx_vmod_d(__m128i _1, __m128i _2) {
12245f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_d((v2i64)_1, (v2i64)_2);
12255f757f3fSDimitry Andric }
12265f757f3fSDimitry Andric 
12275f757f3fSDimitry Andric extern __inline
12285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12295f757f3fSDimitry Andric     __lsx_vmod_bu(__m128i _1, __m128i _2) {
12305f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_bu((v16u8)_1, (v16u8)_2);
12315f757f3fSDimitry Andric }
12325f757f3fSDimitry Andric 
12335f757f3fSDimitry Andric extern __inline
12345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12355f757f3fSDimitry Andric     __lsx_vmod_hu(__m128i _1, __m128i _2) {
12365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_hu((v8u16)_1, (v8u16)_2);
12375f757f3fSDimitry Andric }
12385f757f3fSDimitry Andric 
12395f757f3fSDimitry Andric extern __inline
12405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12415f757f3fSDimitry Andric     __lsx_vmod_wu(__m128i _1, __m128i _2) {
12425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_wu((v4u32)_1, (v4u32)_2);
12435f757f3fSDimitry Andric }
12445f757f3fSDimitry Andric 
12455f757f3fSDimitry Andric extern __inline
12465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12475f757f3fSDimitry Andric     __lsx_vmod_du(__m128i _1, __m128i _2) {
12485f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmod_du((v2u64)_1, (v2u64)_2);
12495f757f3fSDimitry Andric }
12505f757f3fSDimitry Andric 
12515f757f3fSDimitry Andric extern __inline
12525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12535f757f3fSDimitry Andric     __lsx_vreplve_b(__m128i _1, int _2) {
12545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplve_b((v16i8)_1, (int)_2);
12555f757f3fSDimitry Andric }
12565f757f3fSDimitry Andric 
12575f757f3fSDimitry Andric extern __inline
12585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12595f757f3fSDimitry Andric     __lsx_vreplve_h(__m128i _1, int _2) {
12605f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplve_h((v8i16)_1, (int)_2);
12615f757f3fSDimitry Andric }
12625f757f3fSDimitry Andric 
12635f757f3fSDimitry Andric extern __inline
12645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12655f757f3fSDimitry Andric     __lsx_vreplve_w(__m128i _1, int _2) {
12665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplve_w((v4i32)_1, (int)_2);
12675f757f3fSDimitry Andric }
12685f757f3fSDimitry Andric 
12695f757f3fSDimitry Andric extern __inline
12705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12715f757f3fSDimitry Andric     __lsx_vreplve_d(__m128i _1, int _2) {
12725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplve_d((v2i64)_1, (int)_2);
12735f757f3fSDimitry Andric }
12745f757f3fSDimitry Andric 
12755f757f3fSDimitry Andric #define __lsx_vreplvei_b(/*__m128i*/ _1, /*ui4*/ _2)                           \
12765f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vreplvei_b((v16i8)(_1), (_2)))
12775f757f3fSDimitry Andric 
12785f757f3fSDimitry Andric #define __lsx_vreplvei_h(/*__m128i*/ _1, /*ui3*/ _2)                           \
12795f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vreplvei_h((v8i16)(_1), (_2)))
12805f757f3fSDimitry Andric 
12815f757f3fSDimitry Andric #define __lsx_vreplvei_w(/*__m128i*/ _1, /*ui2*/ _2)                           \
12825f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vreplvei_w((v4i32)(_1), (_2)))
12835f757f3fSDimitry Andric 
12845f757f3fSDimitry Andric #define __lsx_vreplvei_d(/*__m128i*/ _1, /*ui1*/ _2)                           \
12855f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vreplvei_d((v2i64)(_1), (_2)))
12865f757f3fSDimitry Andric 
12875f757f3fSDimitry Andric extern __inline
12885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12895f757f3fSDimitry Andric     __lsx_vpickev_b(__m128i _1, __m128i _2) {
12905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickev_b((v16i8)_1, (v16i8)_2);
12915f757f3fSDimitry Andric }
12925f757f3fSDimitry Andric 
12935f757f3fSDimitry Andric extern __inline
12945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
12955f757f3fSDimitry Andric     __lsx_vpickev_h(__m128i _1, __m128i _2) {
12965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickev_h((v8i16)_1, (v8i16)_2);
12975f757f3fSDimitry Andric }
12985f757f3fSDimitry Andric 
12995f757f3fSDimitry Andric extern __inline
13005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13015f757f3fSDimitry Andric     __lsx_vpickev_w(__m128i _1, __m128i _2) {
13025f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickev_w((v4i32)_1, (v4i32)_2);
13035f757f3fSDimitry Andric }
13045f757f3fSDimitry Andric 
13055f757f3fSDimitry Andric extern __inline
13065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13075f757f3fSDimitry Andric     __lsx_vpickev_d(__m128i _1, __m128i _2) {
13085f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickev_d((v2i64)_1, (v2i64)_2);
13095f757f3fSDimitry Andric }
13105f757f3fSDimitry Andric 
13115f757f3fSDimitry Andric extern __inline
13125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13135f757f3fSDimitry Andric     __lsx_vpickod_b(__m128i _1, __m128i _2) {
13145f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickod_b((v16i8)_1, (v16i8)_2);
13155f757f3fSDimitry Andric }
13165f757f3fSDimitry Andric 
13175f757f3fSDimitry Andric extern __inline
13185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13195f757f3fSDimitry Andric     __lsx_vpickod_h(__m128i _1, __m128i _2) {
13205f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickod_h((v8i16)_1, (v8i16)_2);
13215f757f3fSDimitry Andric }
13225f757f3fSDimitry Andric 
13235f757f3fSDimitry Andric extern __inline
13245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13255f757f3fSDimitry Andric     __lsx_vpickod_w(__m128i _1, __m128i _2) {
13265f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickod_w((v4i32)_1, (v4i32)_2);
13275f757f3fSDimitry Andric }
13285f757f3fSDimitry Andric 
13295f757f3fSDimitry Andric extern __inline
13305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13315f757f3fSDimitry Andric     __lsx_vpickod_d(__m128i _1, __m128i _2) {
13325f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpickod_d((v2i64)_1, (v2i64)_2);
13335f757f3fSDimitry Andric }
13345f757f3fSDimitry Andric 
13355f757f3fSDimitry Andric extern __inline
13365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13375f757f3fSDimitry Andric     __lsx_vilvh_b(__m128i _1, __m128i _2) {
13385f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvh_b((v16i8)_1, (v16i8)_2);
13395f757f3fSDimitry Andric }
13405f757f3fSDimitry Andric 
13415f757f3fSDimitry Andric extern __inline
13425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13435f757f3fSDimitry Andric     __lsx_vilvh_h(__m128i _1, __m128i _2) {
13445f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvh_h((v8i16)_1, (v8i16)_2);
13455f757f3fSDimitry Andric }
13465f757f3fSDimitry Andric 
13475f757f3fSDimitry Andric extern __inline
13485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13495f757f3fSDimitry Andric     __lsx_vilvh_w(__m128i _1, __m128i _2) {
13505f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvh_w((v4i32)_1, (v4i32)_2);
13515f757f3fSDimitry Andric }
13525f757f3fSDimitry Andric 
13535f757f3fSDimitry Andric extern __inline
13545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13555f757f3fSDimitry Andric     __lsx_vilvh_d(__m128i _1, __m128i _2) {
13565f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvh_d((v2i64)_1, (v2i64)_2);
13575f757f3fSDimitry Andric }
13585f757f3fSDimitry Andric 
13595f757f3fSDimitry Andric extern __inline
13605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13615f757f3fSDimitry Andric     __lsx_vilvl_b(__m128i _1, __m128i _2) {
13625f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvl_b((v16i8)_1, (v16i8)_2);
13635f757f3fSDimitry Andric }
13645f757f3fSDimitry Andric 
13655f757f3fSDimitry Andric extern __inline
13665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13675f757f3fSDimitry Andric     __lsx_vilvl_h(__m128i _1, __m128i _2) {
13685f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvl_h((v8i16)_1, (v8i16)_2);
13695f757f3fSDimitry Andric }
13705f757f3fSDimitry Andric 
13715f757f3fSDimitry Andric extern __inline
13725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13735f757f3fSDimitry Andric     __lsx_vilvl_w(__m128i _1, __m128i _2) {
13745f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvl_w((v4i32)_1, (v4i32)_2);
13755f757f3fSDimitry Andric }
13765f757f3fSDimitry Andric 
13775f757f3fSDimitry Andric extern __inline
13785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13795f757f3fSDimitry Andric     __lsx_vilvl_d(__m128i _1, __m128i _2) {
13805f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vilvl_d((v2i64)_1, (v2i64)_2);
13815f757f3fSDimitry Andric }
13825f757f3fSDimitry Andric 
13835f757f3fSDimitry Andric extern __inline
13845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13855f757f3fSDimitry Andric     __lsx_vpackev_b(__m128i _1, __m128i _2) {
13865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackev_b((v16i8)_1, (v16i8)_2);
13875f757f3fSDimitry Andric }
13885f757f3fSDimitry Andric 
13895f757f3fSDimitry Andric extern __inline
13905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13915f757f3fSDimitry Andric     __lsx_vpackev_h(__m128i _1, __m128i _2) {
13925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackev_h((v8i16)_1, (v8i16)_2);
13935f757f3fSDimitry Andric }
13945f757f3fSDimitry Andric 
13955f757f3fSDimitry Andric extern __inline
13965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
13975f757f3fSDimitry Andric     __lsx_vpackev_w(__m128i _1, __m128i _2) {
13985f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackev_w((v4i32)_1, (v4i32)_2);
13995f757f3fSDimitry Andric }
14005f757f3fSDimitry Andric 
14015f757f3fSDimitry Andric extern __inline
14025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14035f757f3fSDimitry Andric     __lsx_vpackev_d(__m128i _1, __m128i _2) {
14045f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackev_d((v2i64)_1, (v2i64)_2);
14055f757f3fSDimitry Andric }
14065f757f3fSDimitry Andric 
14075f757f3fSDimitry Andric extern __inline
14085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14095f757f3fSDimitry Andric     __lsx_vpackod_b(__m128i _1, __m128i _2) {
14105f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackod_b((v16i8)_1, (v16i8)_2);
14115f757f3fSDimitry Andric }
14125f757f3fSDimitry Andric 
14135f757f3fSDimitry Andric extern __inline
14145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14155f757f3fSDimitry Andric     __lsx_vpackod_h(__m128i _1, __m128i _2) {
14165f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackod_h((v8i16)_1, (v8i16)_2);
14175f757f3fSDimitry Andric }
14185f757f3fSDimitry Andric 
14195f757f3fSDimitry Andric extern __inline
14205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14215f757f3fSDimitry Andric     __lsx_vpackod_w(__m128i _1, __m128i _2) {
14225f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackod_w((v4i32)_1, (v4i32)_2);
14235f757f3fSDimitry Andric }
14245f757f3fSDimitry Andric 
14255f757f3fSDimitry Andric extern __inline
14265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14275f757f3fSDimitry Andric     __lsx_vpackod_d(__m128i _1, __m128i _2) {
14285f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpackod_d((v2i64)_1, (v2i64)_2);
14295f757f3fSDimitry Andric }
14305f757f3fSDimitry Andric 
14315f757f3fSDimitry Andric extern __inline
14325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14335f757f3fSDimitry Andric     __lsx_vshuf_h(__m128i _1, __m128i _2, __m128i _3) {
14345f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vshuf_h((v8i16)_1, (v8i16)_2, (v8i16)_3);
14355f757f3fSDimitry Andric }
14365f757f3fSDimitry Andric 
14375f757f3fSDimitry Andric extern __inline
14385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14395f757f3fSDimitry Andric     __lsx_vshuf_w(__m128i _1, __m128i _2, __m128i _3) {
14405f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vshuf_w((v4i32)_1, (v4i32)_2, (v4i32)_3);
14415f757f3fSDimitry Andric }
14425f757f3fSDimitry Andric 
14435f757f3fSDimitry Andric extern __inline
14445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14455f757f3fSDimitry Andric     __lsx_vshuf_d(__m128i _1, __m128i _2, __m128i _3) {
14465f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vshuf_d((v2i64)_1, (v2i64)_2, (v2i64)_3);
14475f757f3fSDimitry Andric }
14485f757f3fSDimitry Andric 
14495f757f3fSDimitry Andric extern __inline
14505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14515f757f3fSDimitry Andric     __lsx_vand_v(__m128i _1, __m128i _2) {
14525f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vand_v((v16u8)_1, (v16u8)_2);
14535f757f3fSDimitry Andric }
14545f757f3fSDimitry Andric 
14555f757f3fSDimitry Andric #define __lsx_vandi_b(/*__m128i*/ _1, /*ui8*/ _2)                              \
14565f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vandi_b((v16u8)(_1), (_2)))
14575f757f3fSDimitry Andric 
14585f757f3fSDimitry Andric extern __inline
14595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14605f757f3fSDimitry Andric     __lsx_vor_v(__m128i _1, __m128i _2) {
14615f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vor_v((v16u8)_1, (v16u8)_2);
14625f757f3fSDimitry Andric }
14635f757f3fSDimitry Andric 
14645f757f3fSDimitry Andric #define __lsx_vori_b(/*__m128i*/ _1, /*ui8*/ _2)                               \
14655f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vori_b((v16u8)(_1), (_2)))
14665f757f3fSDimitry Andric 
14675f757f3fSDimitry Andric extern __inline
14685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14695f757f3fSDimitry Andric     __lsx_vnor_v(__m128i _1, __m128i _2) {
14705f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vnor_v((v16u8)_1, (v16u8)_2);
14715f757f3fSDimitry Andric }
14725f757f3fSDimitry Andric 
14735f757f3fSDimitry Andric #define __lsx_vnori_b(/*__m128i*/ _1, /*ui8*/ _2)                              \
14745f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vnori_b((v16u8)(_1), (_2)))
14755f757f3fSDimitry Andric 
14765f757f3fSDimitry Andric extern __inline
14775f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14785f757f3fSDimitry Andric     __lsx_vxor_v(__m128i _1, __m128i _2) {
14795f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vxor_v((v16u8)_1, (v16u8)_2);
14805f757f3fSDimitry Andric }
14815f757f3fSDimitry Andric 
14825f757f3fSDimitry Andric #define __lsx_vxori_b(/*__m128i*/ _1, /*ui8*/ _2)                              \
14835f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vxori_b((v16u8)(_1), (_2)))
14845f757f3fSDimitry Andric 
14855f757f3fSDimitry Andric extern __inline
14865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
14875f757f3fSDimitry Andric     __lsx_vbitsel_v(__m128i _1, __m128i _2, __m128i _3) {
14885f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vbitsel_v((v16u8)_1, (v16u8)_2, (v16u8)_3);
14895f757f3fSDimitry Andric }
14905f757f3fSDimitry Andric 
14915f757f3fSDimitry Andric #define __lsx_vbitseli_b(/*__m128i*/ _1, /*__m128i*/ _2, /*ui8*/ _3)           \
14925f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbitseli_b((v16u8)(_1), (v16u8)(_2), (_3)))
14935f757f3fSDimitry Andric 
14945f757f3fSDimitry Andric #define __lsx_vshuf4i_b(/*__m128i*/ _1, /*ui8*/ _2)                            \
14955f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vshuf4i_b((v16i8)(_1), (_2)))
14965f757f3fSDimitry Andric 
14975f757f3fSDimitry Andric #define __lsx_vshuf4i_h(/*__m128i*/ _1, /*ui8*/ _2)                            \
14985f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vshuf4i_h((v8i16)(_1), (_2)))
14995f757f3fSDimitry Andric 
15005f757f3fSDimitry Andric #define __lsx_vshuf4i_w(/*__m128i*/ _1, /*ui8*/ _2)                            \
15015f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vshuf4i_w((v4i32)(_1), (_2)))
15025f757f3fSDimitry Andric 
15035f757f3fSDimitry Andric extern __inline
15045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15055f757f3fSDimitry Andric     __lsx_vreplgr2vr_b(int _1) {
15065f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplgr2vr_b((int)_1);
15075f757f3fSDimitry Andric }
15085f757f3fSDimitry Andric 
15095f757f3fSDimitry Andric extern __inline
15105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15115f757f3fSDimitry Andric     __lsx_vreplgr2vr_h(int _1) {
15125f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplgr2vr_h((int)_1);
15135f757f3fSDimitry Andric }
15145f757f3fSDimitry Andric 
15155f757f3fSDimitry Andric extern __inline
15165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15175f757f3fSDimitry Andric     __lsx_vreplgr2vr_w(int _1) {
15185f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplgr2vr_w((int)_1);
15195f757f3fSDimitry Andric }
15205f757f3fSDimitry Andric 
15215f757f3fSDimitry Andric extern __inline
15225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15235f757f3fSDimitry Andric     __lsx_vreplgr2vr_d(long int _1) {
15245f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vreplgr2vr_d((long int)_1);
15255f757f3fSDimitry Andric }
15265f757f3fSDimitry Andric 
15275f757f3fSDimitry Andric extern __inline
15285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15295f757f3fSDimitry Andric     __lsx_vpcnt_b(__m128i _1) {
15305f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpcnt_b((v16i8)_1);
15315f757f3fSDimitry Andric }
15325f757f3fSDimitry Andric 
15335f757f3fSDimitry Andric extern __inline
15345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15355f757f3fSDimitry Andric     __lsx_vpcnt_h(__m128i _1) {
15365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpcnt_h((v8i16)_1);
15375f757f3fSDimitry Andric }
15385f757f3fSDimitry Andric 
15395f757f3fSDimitry Andric extern __inline
15405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15415f757f3fSDimitry Andric     __lsx_vpcnt_w(__m128i _1) {
15425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpcnt_w((v4i32)_1);
15435f757f3fSDimitry Andric }
15445f757f3fSDimitry Andric 
15455f757f3fSDimitry Andric extern __inline
15465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15475f757f3fSDimitry Andric     __lsx_vpcnt_d(__m128i _1) {
15485f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vpcnt_d((v2i64)_1);
15495f757f3fSDimitry Andric }
15505f757f3fSDimitry Andric 
15515f757f3fSDimitry Andric extern __inline
15525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15535f757f3fSDimitry Andric     __lsx_vclo_b(__m128i _1) {
15545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclo_b((v16i8)_1);
15555f757f3fSDimitry Andric }
15565f757f3fSDimitry Andric 
15575f757f3fSDimitry Andric extern __inline
15585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15595f757f3fSDimitry Andric     __lsx_vclo_h(__m128i _1) {
15605f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclo_h((v8i16)_1);
15615f757f3fSDimitry Andric }
15625f757f3fSDimitry Andric 
15635f757f3fSDimitry Andric extern __inline
15645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15655f757f3fSDimitry Andric     __lsx_vclo_w(__m128i _1) {
15665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclo_w((v4i32)_1);
15675f757f3fSDimitry Andric }
15685f757f3fSDimitry Andric 
15695f757f3fSDimitry Andric extern __inline
15705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15715f757f3fSDimitry Andric     __lsx_vclo_d(__m128i _1) {
15725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclo_d((v2i64)_1);
15735f757f3fSDimitry Andric }
15745f757f3fSDimitry Andric 
15755f757f3fSDimitry Andric extern __inline
15765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15775f757f3fSDimitry Andric     __lsx_vclz_b(__m128i _1) {
15785f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclz_b((v16i8)_1);
15795f757f3fSDimitry Andric }
15805f757f3fSDimitry Andric 
15815f757f3fSDimitry Andric extern __inline
15825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15835f757f3fSDimitry Andric     __lsx_vclz_h(__m128i _1) {
15845f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclz_h((v8i16)_1);
15855f757f3fSDimitry Andric }
15865f757f3fSDimitry Andric 
15875f757f3fSDimitry Andric extern __inline
15885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15895f757f3fSDimitry Andric     __lsx_vclz_w(__m128i _1) {
15905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclz_w((v4i32)_1);
15915f757f3fSDimitry Andric }
15925f757f3fSDimitry Andric 
15935f757f3fSDimitry Andric extern __inline
15945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
15955f757f3fSDimitry Andric     __lsx_vclz_d(__m128i _1) {
15965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vclz_d((v2i64)_1);
15975f757f3fSDimitry Andric }
15985f757f3fSDimitry Andric 
15995f757f3fSDimitry Andric #define __lsx_vpickve2gr_b(/*__m128i*/ _1, /*ui4*/ _2)                         \
16005f757f3fSDimitry Andric   ((int)__builtin_lsx_vpickve2gr_b((v16i8)(_1), (_2)))
16015f757f3fSDimitry Andric 
16025f757f3fSDimitry Andric #define __lsx_vpickve2gr_h(/*__m128i*/ _1, /*ui3*/ _2)                         \
16035f757f3fSDimitry Andric   ((int)__builtin_lsx_vpickve2gr_h((v8i16)(_1), (_2)))
16045f757f3fSDimitry Andric 
16055f757f3fSDimitry Andric #define __lsx_vpickve2gr_w(/*__m128i*/ _1, /*ui2*/ _2)                         \
16065f757f3fSDimitry Andric   ((int)__builtin_lsx_vpickve2gr_w((v4i32)(_1), (_2)))
16075f757f3fSDimitry Andric 
16085f757f3fSDimitry Andric #define __lsx_vpickve2gr_d(/*__m128i*/ _1, /*ui1*/ _2)                         \
16095f757f3fSDimitry Andric   ((long int)__builtin_lsx_vpickve2gr_d((v2i64)(_1), (_2)))
16105f757f3fSDimitry Andric 
16115f757f3fSDimitry Andric #define __lsx_vpickve2gr_bu(/*__m128i*/ _1, /*ui4*/ _2)                        \
16125f757f3fSDimitry Andric   ((unsigned int)__builtin_lsx_vpickve2gr_bu((v16i8)(_1), (_2)))
16135f757f3fSDimitry Andric 
16145f757f3fSDimitry Andric #define __lsx_vpickve2gr_hu(/*__m128i*/ _1, /*ui3*/ _2)                        \
16155f757f3fSDimitry Andric   ((unsigned int)__builtin_lsx_vpickve2gr_hu((v8i16)(_1), (_2)))
16165f757f3fSDimitry Andric 
16175f757f3fSDimitry Andric #define __lsx_vpickve2gr_wu(/*__m128i*/ _1, /*ui2*/ _2)                        \
16185f757f3fSDimitry Andric   ((unsigned int)__builtin_lsx_vpickve2gr_wu((v4i32)(_1), (_2)))
16195f757f3fSDimitry Andric 
16205f757f3fSDimitry Andric #define __lsx_vpickve2gr_du(/*__m128i*/ _1, /*ui1*/ _2)                        \
16215f757f3fSDimitry Andric   ((unsigned long int)__builtin_lsx_vpickve2gr_du((v2i64)(_1), (_2)))
16225f757f3fSDimitry Andric 
16235f757f3fSDimitry Andric #define __lsx_vinsgr2vr_b(/*__m128i*/ _1, /*int*/ _2, /*ui4*/ _3)              \
16245f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vinsgr2vr_b((v16i8)(_1), (int)(_2), (_3)))
16255f757f3fSDimitry Andric 
16265f757f3fSDimitry Andric #define __lsx_vinsgr2vr_h(/*__m128i*/ _1, /*int*/ _2, /*ui3*/ _3)              \
16275f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vinsgr2vr_h((v8i16)(_1), (int)(_2), (_3)))
16285f757f3fSDimitry Andric 
16295f757f3fSDimitry Andric #define __lsx_vinsgr2vr_w(/*__m128i*/ _1, /*int*/ _2, /*ui2*/ _3)              \
16305f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vinsgr2vr_w((v4i32)(_1), (int)(_2), (_3)))
16315f757f3fSDimitry Andric 
16325f757f3fSDimitry Andric #define __lsx_vinsgr2vr_d(/*__m128i*/ _1, /*long int*/ _2, /*ui1*/ _3)         \
16335f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vinsgr2vr_d((v2i64)(_1), (long int)(_2), (_3)))
16345f757f3fSDimitry Andric 
16355f757f3fSDimitry Andric extern __inline
16365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
16375f757f3fSDimitry Andric     __lsx_vfadd_s(__m128 _1, __m128 _2) {
16385f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfadd_s((v4f32)_1, (v4f32)_2);
16395f757f3fSDimitry Andric }
16405f757f3fSDimitry Andric 
16415f757f3fSDimitry Andric extern __inline
16425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
16435f757f3fSDimitry Andric     __lsx_vfadd_d(__m128d _1, __m128d _2) {
16445f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfadd_d((v2f64)_1, (v2f64)_2);
16455f757f3fSDimitry Andric }
16465f757f3fSDimitry Andric 
16475f757f3fSDimitry Andric extern __inline
16485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
16495f757f3fSDimitry Andric     __lsx_vfsub_s(__m128 _1, __m128 _2) {
16505f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfsub_s((v4f32)_1, (v4f32)_2);
16515f757f3fSDimitry Andric }
16525f757f3fSDimitry Andric 
16535f757f3fSDimitry Andric extern __inline
16545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
16555f757f3fSDimitry Andric     __lsx_vfsub_d(__m128d _1, __m128d _2) {
16565f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfsub_d((v2f64)_1, (v2f64)_2);
16575f757f3fSDimitry Andric }
16585f757f3fSDimitry Andric 
16595f757f3fSDimitry Andric extern __inline
16605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
16615f757f3fSDimitry Andric     __lsx_vfmul_s(__m128 _1, __m128 _2) {
16625f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfmul_s((v4f32)_1, (v4f32)_2);
16635f757f3fSDimitry Andric }
16645f757f3fSDimitry Andric 
16655f757f3fSDimitry Andric extern __inline
16665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
16675f757f3fSDimitry Andric     __lsx_vfmul_d(__m128d _1, __m128d _2) {
16685f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfmul_d((v2f64)_1, (v2f64)_2);
16695f757f3fSDimitry Andric }
16705f757f3fSDimitry Andric 
16715f757f3fSDimitry Andric extern __inline
16725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
16735f757f3fSDimitry Andric     __lsx_vfdiv_s(__m128 _1, __m128 _2) {
16745f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfdiv_s((v4f32)_1, (v4f32)_2);
16755f757f3fSDimitry Andric }
16765f757f3fSDimitry Andric 
16775f757f3fSDimitry Andric extern __inline
16785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
16795f757f3fSDimitry Andric     __lsx_vfdiv_d(__m128d _1, __m128d _2) {
16805f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfdiv_d((v2f64)_1, (v2f64)_2);
16815f757f3fSDimitry Andric }
16825f757f3fSDimitry Andric 
16835f757f3fSDimitry Andric extern __inline
16845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
16855f757f3fSDimitry Andric     __lsx_vfcvt_h_s(__m128 _1, __m128 _2) {
16865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcvt_h_s((v4f32)_1, (v4f32)_2);
16875f757f3fSDimitry Andric }
16885f757f3fSDimitry Andric 
16895f757f3fSDimitry Andric extern __inline
16905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
16915f757f3fSDimitry Andric     __lsx_vfcvt_s_d(__m128d _1, __m128d _2) {
16925f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfcvt_s_d((v2f64)_1, (v2f64)_2);
16935f757f3fSDimitry Andric }
16945f757f3fSDimitry Andric 
16955f757f3fSDimitry Andric extern __inline
16965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
16975f757f3fSDimitry Andric     __lsx_vfmin_s(__m128 _1, __m128 _2) {
16985f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfmin_s((v4f32)_1, (v4f32)_2);
16995f757f3fSDimitry Andric }
17005f757f3fSDimitry Andric 
17015f757f3fSDimitry Andric extern __inline
17025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
17035f757f3fSDimitry Andric     __lsx_vfmin_d(__m128d _1, __m128d _2) {
17045f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfmin_d((v2f64)_1, (v2f64)_2);
17055f757f3fSDimitry Andric }
17065f757f3fSDimitry Andric 
17075f757f3fSDimitry Andric extern __inline
17085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
17095f757f3fSDimitry Andric     __lsx_vfmina_s(__m128 _1, __m128 _2) {
17105f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfmina_s((v4f32)_1, (v4f32)_2);
17115f757f3fSDimitry Andric }
17125f757f3fSDimitry Andric 
17135f757f3fSDimitry Andric extern __inline
17145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
17155f757f3fSDimitry Andric     __lsx_vfmina_d(__m128d _1, __m128d _2) {
17165f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfmina_d((v2f64)_1, (v2f64)_2);
17175f757f3fSDimitry Andric }
17185f757f3fSDimitry Andric 
17195f757f3fSDimitry Andric extern __inline
17205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
17215f757f3fSDimitry Andric     __lsx_vfmax_s(__m128 _1, __m128 _2) {
17225f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfmax_s((v4f32)_1, (v4f32)_2);
17235f757f3fSDimitry Andric }
17245f757f3fSDimitry Andric 
17255f757f3fSDimitry Andric extern __inline
17265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
17275f757f3fSDimitry Andric     __lsx_vfmax_d(__m128d _1, __m128d _2) {
17285f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfmax_d((v2f64)_1, (v2f64)_2);
17295f757f3fSDimitry Andric }
17305f757f3fSDimitry Andric 
17315f757f3fSDimitry Andric extern __inline
17325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
17335f757f3fSDimitry Andric     __lsx_vfmaxa_s(__m128 _1, __m128 _2) {
17345f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfmaxa_s((v4f32)_1, (v4f32)_2);
17355f757f3fSDimitry Andric }
17365f757f3fSDimitry Andric 
17375f757f3fSDimitry Andric extern __inline
17385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
17395f757f3fSDimitry Andric     __lsx_vfmaxa_d(__m128d _1, __m128d _2) {
17405f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfmaxa_d((v2f64)_1, (v2f64)_2);
17415f757f3fSDimitry Andric }
17425f757f3fSDimitry Andric 
17435f757f3fSDimitry Andric extern __inline
17445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
17455f757f3fSDimitry Andric     __lsx_vfclass_s(__m128 _1) {
17465f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfclass_s((v4f32)_1);
17475f757f3fSDimitry Andric }
17485f757f3fSDimitry Andric 
17495f757f3fSDimitry Andric extern __inline
17505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
17515f757f3fSDimitry Andric     __lsx_vfclass_d(__m128d _1) {
17525f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfclass_d((v2f64)_1);
17535f757f3fSDimitry Andric }
17545f757f3fSDimitry Andric 
17555f757f3fSDimitry Andric extern __inline
17565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
17575f757f3fSDimitry Andric     __lsx_vfsqrt_s(__m128 _1) {
17585f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfsqrt_s((v4f32)_1);
17595f757f3fSDimitry Andric }
17605f757f3fSDimitry Andric 
17615f757f3fSDimitry Andric extern __inline
17625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
17635f757f3fSDimitry Andric     __lsx_vfsqrt_d(__m128d _1) {
17645f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfsqrt_d((v2f64)_1);
17655f757f3fSDimitry Andric }
17665f757f3fSDimitry Andric 
17675f757f3fSDimitry Andric extern __inline
17685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
17695f757f3fSDimitry Andric     __lsx_vfrecip_s(__m128 _1) {
17705f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfrecip_s((v4f32)_1);
17715f757f3fSDimitry Andric }
17725f757f3fSDimitry Andric 
17735f757f3fSDimitry Andric extern __inline
17745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
17755f757f3fSDimitry Andric     __lsx_vfrecip_d(__m128d _1) {
17765f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfrecip_d((v2f64)_1);
17775f757f3fSDimitry Andric }
17785f757f3fSDimitry Andric 
17795f757f3fSDimitry Andric extern __inline
17805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
1781*7a6dacacSDimitry Andric     __lsx_vfrecipe_s(__m128 _1) {
1782*7a6dacacSDimitry Andric   return (__m128)__builtin_lsx_vfrecipe_s((v4f32)_1);
1783*7a6dacacSDimitry Andric }
1784*7a6dacacSDimitry Andric 
1785*7a6dacacSDimitry Andric extern __inline
1786*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
1787*7a6dacacSDimitry Andric     __lsx_vfrecipe_d(__m128d _1) {
1788*7a6dacacSDimitry Andric   return (__m128d)__builtin_lsx_vfrecipe_d((v2f64)_1);
1789*7a6dacacSDimitry Andric }
1790*7a6dacacSDimitry Andric 
1791*7a6dacacSDimitry Andric extern __inline
1792*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
17935f757f3fSDimitry Andric     __lsx_vfrint_s(__m128 _1) {
17945f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfrint_s((v4f32)_1);
17955f757f3fSDimitry Andric }
17965f757f3fSDimitry Andric 
17975f757f3fSDimitry Andric extern __inline
17985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
17995f757f3fSDimitry Andric     __lsx_vfrint_d(__m128d _1) {
18005f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfrint_d((v2f64)_1);
18015f757f3fSDimitry Andric }
18025f757f3fSDimitry Andric 
18035f757f3fSDimitry Andric extern __inline
18045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
18055f757f3fSDimitry Andric     __lsx_vfrsqrt_s(__m128 _1) {
18065f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfrsqrt_s((v4f32)_1);
18075f757f3fSDimitry Andric }
18085f757f3fSDimitry Andric 
18095f757f3fSDimitry Andric extern __inline
18105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
18115f757f3fSDimitry Andric     __lsx_vfrsqrt_d(__m128d _1) {
18125f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfrsqrt_d((v2f64)_1);
18135f757f3fSDimitry Andric }
18145f757f3fSDimitry Andric 
18155f757f3fSDimitry Andric extern __inline
18165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
1817*7a6dacacSDimitry Andric     __lsx_vfrsqrte_s(__m128 _1) {
1818*7a6dacacSDimitry Andric   return (__m128)__builtin_lsx_vfrsqrte_s((v4f32)_1);
1819*7a6dacacSDimitry Andric }
1820*7a6dacacSDimitry Andric 
1821*7a6dacacSDimitry Andric extern __inline
1822*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
1823*7a6dacacSDimitry Andric     __lsx_vfrsqrte_d(__m128d _1) {
1824*7a6dacacSDimitry Andric   return (__m128d)__builtin_lsx_vfrsqrte_d((v2f64)_1);
1825*7a6dacacSDimitry Andric }
1826*7a6dacacSDimitry Andric 
1827*7a6dacacSDimitry Andric extern __inline
1828*7a6dacacSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
18295f757f3fSDimitry Andric     __lsx_vflogb_s(__m128 _1) {
18305f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vflogb_s((v4f32)_1);
18315f757f3fSDimitry Andric }
18325f757f3fSDimitry Andric 
18335f757f3fSDimitry Andric extern __inline
18345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
18355f757f3fSDimitry Andric     __lsx_vflogb_d(__m128d _1) {
18365f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vflogb_d((v2f64)_1);
18375f757f3fSDimitry Andric }
18385f757f3fSDimitry Andric 
18395f757f3fSDimitry Andric extern __inline
18405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
18415f757f3fSDimitry Andric     __lsx_vfcvth_s_h(__m128i _1) {
18425f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfcvth_s_h((v8i16)_1);
18435f757f3fSDimitry Andric }
18445f757f3fSDimitry Andric 
18455f757f3fSDimitry Andric extern __inline
18465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
18475f757f3fSDimitry Andric     __lsx_vfcvth_d_s(__m128 _1) {
18485f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfcvth_d_s((v4f32)_1);
18495f757f3fSDimitry Andric }
18505f757f3fSDimitry Andric 
18515f757f3fSDimitry Andric extern __inline
18525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
18535f757f3fSDimitry Andric     __lsx_vfcvtl_s_h(__m128i _1) {
18545f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfcvtl_s_h((v8i16)_1);
18555f757f3fSDimitry Andric }
18565f757f3fSDimitry Andric 
18575f757f3fSDimitry Andric extern __inline
18585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
18595f757f3fSDimitry Andric     __lsx_vfcvtl_d_s(__m128 _1) {
18605f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfcvtl_d_s((v4f32)_1);
18615f757f3fSDimitry Andric }
18625f757f3fSDimitry Andric 
18635f757f3fSDimitry Andric extern __inline
18645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
18655f757f3fSDimitry Andric     __lsx_vftint_w_s(__m128 _1) {
18665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftint_w_s((v4f32)_1);
18675f757f3fSDimitry Andric }
18685f757f3fSDimitry Andric 
18695f757f3fSDimitry Andric extern __inline
18705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
18715f757f3fSDimitry Andric     __lsx_vftint_l_d(__m128d _1) {
18725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftint_l_d((v2f64)_1);
18735f757f3fSDimitry Andric }
18745f757f3fSDimitry Andric 
18755f757f3fSDimitry Andric extern __inline
18765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
18775f757f3fSDimitry Andric     __lsx_vftint_wu_s(__m128 _1) {
18785f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftint_wu_s((v4f32)_1);
18795f757f3fSDimitry Andric }
18805f757f3fSDimitry Andric 
18815f757f3fSDimitry Andric extern __inline
18825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
18835f757f3fSDimitry Andric     __lsx_vftint_lu_d(__m128d _1) {
18845f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftint_lu_d((v2f64)_1);
18855f757f3fSDimitry Andric }
18865f757f3fSDimitry Andric 
18875f757f3fSDimitry Andric extern __inline
18885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
18895f757f3fSDimitry Andric     __lsx_vftintrz_w_s(__m128 _1) {
18905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrz_w_s((v4f32)_1);
18915f757f3fSDimitry Andric }
18925f757f3fSDimitry Andric 
18935f757f3fSDimitry Andric extern __inline
18945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
18955f757f3fSDimitry Andric     __lsx_vftintrz_l_d(__m128d _1) {
18965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrz_l_d((v2f64)_1);
18975f757f3fSDimitry Andric }
18985f757f3fSDimitry Andric 
18995f757f3fSDimitry Andric extern __inline
19005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19015f757f3fSDimitry Andric     __lsx_vftintrz_wu_s(__m128 _1) {
19025f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrz_wu_s((v4f32)_1);
19035f757f3fSDimitry Andric }
19045f757f3fSDimitry Andric 
19055f757f3fSDimitry Andric extern __inline
19065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19075f757f3fSDimitry Andric     __lsx_vftintrz_lu_d(__m128d _1) {
19085f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrz_lu_d((v2f64)_1);
19095f757f3fSDimitry Andric }
19105f757f3fSDimitry Andric 
19115f757f3fSDimitry Andric extern __inline
19125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
19135f757f3fSDimitry Andric     __lsx_vffint_s_w(__m128i _1) {
19145f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vffint_s_w((v4i32)_1);
19155f757f3fSDimitry Andric }
19165f757f3fSDimitry Andric 
19175f757f3fSDimitry Andric extern __inline
19185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
19195f757f3fSDimitry Andric     __lsx_vffint_d_l(__m128i _1) {
19205f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vffint_d_l((v2i64)_1);
19215f757f3fSDimitry Andric }
19225f757f3fSDimitry Andric 
19235f757f3fSDimitry Andric extern __inline
19245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
19255f757f3fSDimitry Andric     __lsx_vffint_s_wu(__m128i _1) {
19265f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vffint_s_wu((v4u32)_1);
19275f757f3fSDimitry Andric }
19285f757f3fSDimitry Andric 
19295f757f3fSDimitry Andric extern __inline
19305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
19315f757f3fSDimitry Andric     __lsx_vffint_d_lu(__m128i _1) {
19325f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vffint_d_lu((v2u64)_1);
19335f757f3fSDimitry Andric }
19345f757f3fSDimitry Andric 
19355f757f3fSDimitry Andric extern __inline
19365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19375f757f3fSDimitry Andric     __lsx_vandn_v(__m128i _1, __m128i _2) {
19385f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vandn_v((v16u8)_1, (v16u8)_2);
19395f757f3fSDimitry Andric }
19405f757f3fSDimitry Andric 
19415f757f3fSDimitry Andric extern __inline
19425f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19435f757f3fSDimitry Andric     __lsx_vneg_b(__m128i _1) {
19445f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vneg_b((v16i8)_1);
19455f757f3fSDimitry Andric }
19465f757f3fSDimitry Andric 
19475f757f3fSDimitry Andric extern __inline
19485f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19495f757f3fSDimitry Andric     __lsx_vneg_h(__m128i _1) {
19505f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vneg_h((v8i16)_1);
19515f757f3fSDimitry Andric }
19525f757f3fSDimitry Andric 
19535f757f3fSDimitry Andric extern __inline
19545f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19555f757f3fSDimitry Andric     __lsx_vneg_w(__m128i _1) {
19565f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vneg_w((v4i32)_1);
19575f757f3fSDimitry Andric }
19585f757f3fSDimitry Andric 
19595f757f3fSDimitry Andric extern __inline
19605f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19615f757f3fSDimitry Andric     __lsx_vneg_d(__m128i _1) {
19625f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vneg_d((v2i64)_1);
19635f757f3fSDimitry Andric }
19645f757f3fSDimitry Andric 
19655f757f3fSDimitry Andric extern __inline
19665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19675f757f3fSDimitry Andric     __lsx_vmuh_b(__m128i _1, __m128i _2) {
19685f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_b((v16i8)_1, (v16i8)_2);
19695f757f3fSDimitry Andric }
19705f757f3fSDimitry Andric 
19715f757f3fSDimitry Andric extern __inline
19725f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19735f757f3fSDimitry Andric     __lsx_vmuh_h(__m128i _1, __m128i _2) {
19745f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_h((v8i16)_1, (v8i16)_2);
19755f757f3fSDimitry Andric }
19765f757f3fSDimitry Andric 
19775f757f3fSDimitry Andric extern __inline
19785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19795f757f3fSDimitry Andric     __lsx_vmuh_w(__m128i _1, __m128i _2) {
19805f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_w((v4i32)_1, (v4i32)_2);
19815f757f3fSDimitry Andric }
19825f757f3fSDimitry Andric 
19835f757f3fSDimitry Andric extern __inline
19845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19855f757f3fSDimitry Andric     __lsx_vmuh_d(__m128i _1, __m128i _2) {
19865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_d((v2i64)_1, (v2i64)_2);
19875f757f3fSDimitry Andric }
19885f757f3fSDimitry Andric 
19895f757f3fSDimitry Andric extern __inline
19905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19915f757f3fSDimitry Andric     __lsx_vmuh_bu(__m128i _1, __m128i _2) {
19925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_bu((v16u8)_1, (v16u8)_2);
19935f757f3fSDimitry Andric }
19945f757f3fSDimitry Andric 
19955f757f3fSDimitry Andric extern __inline
19965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
19975f757f3fSDimitry Andric     __lsx_vmuh_hu(__m128i _1, __m128i _2) {
19985f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_hu((v8u16)_1, (v8u16)_2);
19995f757f3fSDimitry Andric }
20005f757f3fSDimitry Andric 
20015f757f3fSDimitry Andric extern __inline
20025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20035f757f3fSDimitry Andric     __lsx_vmuh_wu(__m128i _1, __m128i _2) {
20045f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_wu((v4u32)_1, (v4u32)_2);
20055f757f3fSDimitry Andric }
20065f757f3fSDimitry Andric 
20075f757f3fSDimitry Andric extern __inline
20085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20095f757f3fSDimitry Andric     __lsx_vmuh_du(__m128i _1, __m128i _2) {
20105f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmuh_du((v2u64)_1, (v2u64)_2);
20115f757f3fSDimitry Andric }
20125f757f3fSDimitry Andric 
20135f757f3fSDimitry Andric #define __lsx_vsllwil_h_b(/*__m128i*/ _1, /*ui3*/ _2)                          \
20145f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsllwil_h_b((v16i8)(_1), (_2)))
20155f757f3fSDimitry Andric 
20165f757f3fSDimitry Andric #define __lsx_vsllwil_w_h(/*__m128i*/ _1, /*ui4*/ _2)                          \
20175f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsllwil_w_h((v8i16)(_1), (_2)))
20185f757f3fSDimitry Andric 
20195f757f3fSDimitry Andric #define __lsx_vsllwil_d_w(/*__m128i*/ _1, /*ui5*/ _2)                          \
20205f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsllwil_d_w((v4i32)(_1), (_2)))
20215f757f3fSDimitry Andric 
20225f757f3fSDimitry Andric #define __lsx_vsllwil_hu_bu(/*__m128i*/ _1, /*ui3*/ _2)                        \
20235f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsllwil_hu_bu((v16u8)(_1), (_2)))
20245f757f3fSDimitry Andric 
20255f757f3fSDimitry Andric #define __lsx_vsllwil_wu_hu(/*__m128i*/ _1, /*ui4*/ _2)                        \
20265f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsllwil_wu_hu((v8u16)(_1), (_2)))
20275f757f3fSDimitry Andric 
20285f757f3fSDimitry Andric #define __lsx_vsllwil_du_wu(/*__m128i*/ _1, /*ui5*/ _2)                        \
20295f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsllwil_du_wu((v4u32)(_1), (_2)))
20305f757f3fSDimitry Andric 
20315f757f3fSDimitry Andric extern __inline
20325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20335f757f3fSDimitry Andric     __lsx_vsran_b_h(__m128i _1, __m128i _2) {
20345f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsran_b_h((v8i16)_1, (v8i16)_2);
20355f757f3fSDimitry Andric }
20365f757f3fSDimitry Andric 
20375f757f3fSDimitry Andric extern __inline
20385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20395f757f3fSDimitry Andric     __lsx_vsran_h_w(__m128i _1, __m128i _2) {
20405f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsran_h_w((v4i32)_1, (v4i32)_2);
20415f757f3fSDimitry Andric }
20425f757f3fSDimitry Andric 
20435f757f3fSDimitry Andric extern __inline
20445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20455f757f3fSDimitry Andric     __lsx_vsran_w_d(__m128i _1, __m128i _2) {
20465f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsran_w_d((v2i64)_1, (v2i64)_2);
20475f757f3fSDimitry Andric }
20485f757f3fSDimitry Andric 
20495f757f3fSDimitry Andric extern __inline
20505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20515f757f3fSDimitry Andric     __lsx_vssran_b_h(__m128i _1, __m128i _2) {
20525f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssran_b_h((v8i16)_1, (v8i16)_2);
20535f757f3fSDimitry Andric }
20545f757f3fSDimitry Andric 
20555f757f3fSDimitry Andric extern __inline
20565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20575f757f3fSDimitry Andric     __lsx_vssran_h_w(__m128i _1, __m128i _2) {
20585f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssran_h_w((v4i32)_1, (v4i32)_2);
20595f757f3fSDimitry Andric }
20605f757f3fSDimitry Andric 
20615f757f3fSDimitry Andric extern __inline
20625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20635f757f3fSDimitry Andric     __lsx_vssran_w_d(__m128i _1, __m128i _2) {
20645f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssran_w_d((v2i64)_1, (v2i64)_2);
20655f757f3fSDimitry Andric }
20665f757f3fSDimitry Andric 
20675f757f3fSDimitry Andric extern __inline
20685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20695f757f3fSDimitry Andric     __lsx_vssran_bu_h(__m128i _1, __m128i _2) {
20705f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssran_bu_h((v8u16)_1, (v8u16)_2);
20715f757f3fSDimitry Andric }
20725f757f3fSDimitry Andric 
20735f757f3fSDimitry Andric extern __inline
20745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20755f757f3fSDimitry Andric     __lsx_vssran_hu_w(__m128i _1, __m128i _2) {
20765f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssran_hu_w((v4u32)_1, (v4u32)_2);
20775f757f3fSDimitry Andric }
20785f757f3fSDimitry Andric 
20795f757f3fSDimitry Andric extern __inline
20805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20815f757f3fSDimitry Andric     __lsx_vssran_wu_d(__m128i _1, __m128i _2) {
20825f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssran_wu_d((v2u64)_1, (v2u64)_2);
20835f757f3fSDimitry Andric }
20845f757f3fSDimitry Andric 
20855f757f3fSDimitry Andric extern __inline
20865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20875f757f3fSDimitry Andric     __lsx_vsrarn_b_h(__m128i _1, __m128i _2) {
20885f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrarn_b_h((v8i16)_1, (v8i16)_2);
20895f757f3fSDimitry Andric }
20905f757f3fSDimitry Andric 
20915f757f3fSDimitry Andric extern __inline
20925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20935f757f3fSDimitry Andric     __lsx_vsrarn_h_w(__m128i _1, __m128i _2) {
20945f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrarn_h_w((v4i32)_1, (v4i32)_2);
20955f757f3fSDimitry Andric }
20965f757f3fSDimitry Andric 
20975f757f3fSDimitry Andric extern __inline
20985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
20995f757f3fSDimitry Andric     __lsx_vsrarn_w_d(__m128i _1, __m128i _2) {
21005f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrarn_w_d((v2i64)_1, (v2i64)_2);
21015f757f3fSDimitry Andric }
21025f757f3fSDimitry Andric 
21035f757f3fSDimitry Andric extern __inline
21045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21055f757f3fSDimitry Andric     __lsx_vssrarn_b_h(__m128i _1, __m128i _2) {
21065f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrarn_b_h((v8i16)_1, (v8i16)_2);
21075f757f3fSDimitry Andric }
21085f757f3fSDimitry Andric 
21095f757f3fSDimitry Andric extern __inline
21105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21115f757f3fSDimitry Andric     __lsx_vssrarn_h_w(__m128i _1, __m128i _2) {
21125f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrarn_h_w((v4i32)_1, (v4i32)_2);
21135f757f3fSDimitry Andric }
21145f757f3fSDimitry Andric 
21155f757f3fSDimitry Andric extern __inline
21165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21175f757f3fSDimitry Andric     __lsx_vssrarn_w_d(__m128i _1, __m128i _2) {
21185f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrarn_w_d((v2i64)_1, (v2i64)_2);
21195f757f3fSDimitry Andric }
21205f757f3fSDimitry Andric 
21215f757f3fSDimitry Andric extern __inline
21225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21235f757f3fSDimitry Andric     __lsx_vssrarn_bu_h(__m128i _1, __m128i _2) {
21245f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrarn_bu_h((v8u16)_1, (v8u16)_2);
21255f757f3fSDimitry Andric }
21265f757f3fSDimitry Andric 
21275f757f3fSDimitry Andric extern __inline
21285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21295f757f3fSDimitry Andric     __lsx_vssrarn_hu_w(__m128i _1, __m128i _2) {
21305f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrarn_hu_w((v4u32)_1, (v4u32)_2);
21315f757f3fSDimitry Andric }
21325f757f3fSDimitry Andric 
21335f757f3fSDimitry Andric extern __inline
21345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21355f757f3fSDimitry Andric     __lsx_vssrarn_wu_d(__m128i _1, __m128i _2) {
21365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrarn_wu_d((v2u64)_1, (v2u64)_2);
21375f757f3fSDimitry Andric }
21385f757f3fSDimitry Andric 
21395f757f3fSDimitry Andric extern __inline
21405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21415f757f3fSDimitry Andric     __lsx_vsrln_b_h(__m128i _1, __m128i _2) {
21425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrln_b_h((v8i16)_1, (v8i16)_2);
21435f757f3fSDimitry Andric }
21445f757f3fSDimitry Andric 
21455f757f3fSDimitry Andric extern __inline
21465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21475f757f3fSDimitry Andric     __lsx_vsrln_h_w(__m128i _1, __m128i _2) {
21485f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrln_h_w((v4i32)_1, (v4i32)_2);
21495f757f3fSDimitry Andric }
21505f757f3fSDimitry Andric 
21515f757f3fSDimitry Andric extern __inline
21525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21535f757f3fSDimitry Andric     __lsx_vsrln_w_d(__m128i _1, __m128i _2) {
21545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrln_w_d((v2i64)_1, (v2i64)_2);
21555f757f3fSDimitry Andric }
21565f757f3fSDimitry Andric 
21575f757f3fSDimitry Andric extern __inline
21585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21595f757f3fSDimitry Andric     __lsx_vssrln_bu_h(__m128i _1, __m128i _2) {
21605f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrln_bu_h((v8u16)_1, (v8u16)_2);
21615f757f3fSDimitry Andric }
21625f757f3fSDimitry Andric 
21635f757f3fSDimitry Andric extern __inline
21645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21655f757f3fSDimitry Andric     __lsx_vssrln_hu_w(__m128i _1, __m128i _2) {
21665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrln_hu_w((v4u32)_1, (v4u32)_2);
21675f757f3fSDimitry Andric }
21685f757f3fSDimitry Andric 
21695f757f3fSDimitry Andric extern __inline
21705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21715f757f3fSDimitry Andric     __lsx_vssrln_wu_d(__m128i _1, __m128i _2) {
21725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrln_wu_d((v2u64)_1, (v2u64)_2);
21735f757f3fSDimitry Andric }
21745f757f3fSDimitry Andric 
21755f757f3fSDimitry Andric extern __inline
21765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21775f757f3fSDimitry Andric     __lsx_vsrlrn_b_h(__m128i _1, __m128i _2) {
21785f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrlrn_b_h((v8i16)_1, (v8i16)_2);
21795f757f3fSDimitry Andric }
21805f757f3fSDimitry Andric 
21815f757f3fSDimitry Andric extern __inline
21825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21835f757f3fSDimitry Andric     __lsx_vsrlrn_h_w(__m128i _1, __m128i _2) {
21845f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrlrn_h_w((v4i32)_1, (v4i32)_2);
21855f757f3fSDimitry Andric }
21865f757f3fSDimitry Andric 
21875f757f3fSDimitry Andric extern __inline
21885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21895f757f3fSDimitry Andric     __lsx_vsrlrn_w_d(__m128i _1, __m128i _2) {
21905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsrlrn_w_d((v2i64)_1, (v2i64)_2);
21915f757f3fSDimitry Andric }
21925f757f3fSDimitry Andric 
21935f757f3fSDimitry Andric extern __inline
21945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
21955f757f3fSDimitry Andric     __lsx_vssrlrn_bu_h(__m128i _1, __m128i _2) {
21965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrlrn_bu_h((v8u16)_1, (v8u16)_2);
21975f757f3fSDimitry Andric }
21985f757f3fSDimitry Andric 
21995f757f3fSDimitry Andric extern __inline
22005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22015f757f3fSDimitry Andric     __lsx_vssrlrn_hu_w(__m128i _1, __m128i _2) {
22025f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrlrn_hu_w((v4u32)_1, (v4u32)_2);
22035f757f3fSDimitry Andric }
22045f757f3fSDimitry Andric 
22055f757f3fSDimitry Andric extern __inline
22065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22075f757f3fSDimitry Andric     __lsx_vssrlrn_wu_d(__m128i _1, __m128i _2) {
22085f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrlrn_wu_d((v2u64)_1, (v2u64)_2);
22095f757f3fSDimitry Andric }
22105f757f3fSDimitry Andric 
22115f757f3fSDimitry Andric #define __lsx_vfrstpi_b(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)            \
22125f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vfrstpi_b((v16i8)(_1), (v16i8)(_2), (_3)))
22135f757f3fSDimitry Andric 
22145f757f3fSDimitry Andric #define __lsx_vfrstpi_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)            \
22155f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vfrstpi_h((v8i16)(_1), (v8i16)(_2), (_3)))
22165f757f3fSDimitry Andric 
22175f757f3fSDimitry Andric extern __inline
22185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22195f757f3fSDimitry Andric     __lsx_vfrstp_b(__m128i _1, __m128i _2, __m128i _3) {
22205f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfrstp_b((v16i8)_1, (v16i8)_2, (v16i8)_3);
22215f757f3fSDimitry Andric }
22225f757f3fSDimitry Andric 
22235f757f3fSDimitry Andric extern __inline
22245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22255f757f3fSDimitry Andric     __lsx_vfrstp_h(__m128i _1, __m128i _2, __m128i _3) {
22265f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfrstp_h((v8i16)_1, (v8i16)_2, (v8i16)_3);
22275f757f3fSDimitry Andric }
22285f757f3fSDimitry Andric 
22295f757f3fSDimitry Andric #define __lsx_vshuf4i_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui8*/ _3)            \
22305f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vshuf4i_d((v2i64)(_1), (v2i64)(_2), (_3)))
22315f757f3fSDimitry Andric 
22325f757f3fSDimitry Andric #define __lsx_vbsrl_v(/*__m128i*/ _1, /*ui5*/ _2)                              \
22335f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbsrl_v((v16i8)(_1), (_2)))
22345f757f3fSDimitry Andric 
22355f757f3fSDimitry Andric #define __lsx_vbsll_v(/*__m128i*/ _1, /*ui5*/ _2)                              \
22365f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vbsll_v((v16i8)(_1), (_2)))
22375f757f3fSDimitry Andric 
22385f757f3fSDimitry Andric #define __lsx_vextrins_b(/*__m128i*/ _1, /*__m128i*/ _2, /*ui8*/ _3)           \
22395f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vextrins_b((v16i8)(_1), (v16i8)(_2), (_3)))
22405f757f3fSDimitry Andric 
22415f757f3fSDimitry Andric #define __lsx_vextrins_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui8*/ _3)           \
22425f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vextrins_h((v8i16)(_1), (v8i16)(_2), (_3)))
22435f757f3fSDimitry Andric 
22445f757f3fSDimitry Andric #define __lsx_vextrins_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui8*/ _3)           \
22455f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vextrins_w((v4i32)(_1), (v4i32)(_2), (_3)))
22465f757f3fSDimitry Andric 
22475f757f3fSDimitry Andric #define __lsx_vextrins_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui8*/ _3)           \
22485f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vextrins_d((v2i64)(_1), (v2i64)(_2), (_3)))
22495f757f3fSDimitry Andric 
22505f757f3fSDimitry Andric extern __inline
22515f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22525f757f3fSDimitry Andric     __lsx_vmskltz_b(__m128i _1) {
22535f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmskltz_b((v16i8)_1);
22545f757f3fSDimitry Andric }
22555f757f3fSDimitry Andric 
22565f757f3fSDimitry Andric extern __inline
22575f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22585f757f3fSDimitry Andric     __lsx_vmskltz_h(__m128i _1) {
22595f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmskltz_h((v8i16)_1);
22605f757f3fSDimitry Andric }
22615f757f3fSDimitry Andric 
22625f757f3fSDimitry Andric extern __inline
22635f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22645f757f3fSDimitry Andric     __lsx_vmskltz_w(__m128i _1) {
22655f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmskltz_w((v4i32)_1);
22665f757f3fSDimitry Andric }
22675f757f3fSDimitry Andric 
22685f757f3fSDimitry Andric extern __inline
22695f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22705f757f3fSDimitry Andric     __lsx_vmskltz_d(__m128i _1) {
22715f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmskltz_d((v2i64)_1);
22725f757f3fSDimitry Andric }
22735f757f3fSDimitry Andric 
22745f757f3fSDimitry Andric extern __inline
22755f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22765f757f3fSDimitry Andric     __lsx_vsigncov_b(__m128i _1, __m128i _2) {
22775f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsigncov_b((v16i8)_1, (v16i8)_2);
22785f757f3fSDimitry Andric }
22795f757f3fSDimitry Andric 
22805f757f3fSDimitry Andric extern __inline
22815f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22825f757f3fSDimitry Andric     __lsx_vsigncov_h(__m128i _1, __m128i _2) {
22835f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsigncov_h((v8i16)_1, (v8i16)_2);
22845f757f3fSDimitry Andric }
22855f757f3fSDimitry Andric 
22865f757f3fSDimitry Andric extern __inline
22875f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22885f757f3fSDimitry Andric     __lsx_vsigncov_w(__m128i _1, __m128i _2) {
22895f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsigncov_w((v4i32)_1, (v4i32)_2);
22905f757f3fSDimitry Andric }
22915f757f3fSDimitry Andric 
22925f757f3fSDimitry Andric extern __inline
22935f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
22945f757f3fSDimitry Andric     __lsx_vsigncov_d(__m128i _1, __m128i _2) {
22955f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsigncov_d((v2i64)_1, (v2i64)_2);
22965f757f3fSDimitry Andric }
22975f757f3fSDimitry Andric 
22985f757f3fSDimitry Andric extern __inline
22995f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
23005f757f3fSDimitry Andric     __lsx_vfmadd_s(__m128 _1, __m128 _2, __m128 _3) {
23015f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfmadd_s((v4f32)_1, (v4f32)_2, (v4f32)_3);
23025f757f3fSDimitry Andric }
23035f757f3fSDimitry Andric 
23045f757f3fSDimitry Andric extern __inline
23055f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
23065f757f3fSDimitry Andric     __lsx_vfmadd_d(__m128d _1, __m128d _2, __m128d _3) {
23075f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfmadd_d((v2f64)_1, (v2f64)_2, (v2f64)_3);
23085f757f3fSDimitry Andric }
23095f757f3fSDimitry Andric 
23105f757f3fSDimitry Andric extern __inline
23115f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
23125f757f3fSDimitry Andric     __lsx_vfmsub_s(__m128 _1, __m128 _2, __m128 _3) {
23135f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfmsub_s((v4f32)_1, (v4f32)_2, (v4f32)_3);
23145f757f3fSDimitry Andric }
23155f757f3fSDimitry Andric 
23165f757f3fSDimitry Andric extern __inline
23175f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
23185f757f3fSDimitry Andric     __lsx_vfmsub_d(__m128d _1, __m128d _2, __m128d _3) {
23195f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfmsub_d((v2f64)_1, (v2f64)_2, (v2f64)_3);
23205f757f3fSDimitry Andric }
23215f757f3fSDimitry Andric 
23225f757f3fSDimitry Andric extern __inline
23235f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
23245f757f3fSDimitry Andric     __lsx_vfnmadd_s(__m128 _1, __m128 _2, __m128 _3) {
23255f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfnmadd_s((v4f32)_1, (v4f32)_2, (v4f32)_3);
23265f757f3fSDimitry Andric }
23275f757f3fSDimitry Andric 
23285f757f3fSDimitry Andric extern __inline
23295f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
23305f757f3fSDimitry Andric     __lsx_vfnmadd_d(__m128d _1, __m128d _2, __m128d _3) {
23315f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfnmadd_d((v2f64)_1, (v2f64)_2, (v2f64)_3);
23325f757f3fSDimitry Andric }
23335f757f3fSDimitry Andric 
23345f757f3fSDimitry Andric extern __inline
23355f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
23365f757f3fSDimitry Andric     __lsx_vfnmsub_s(__m128 _1, __m128 _2, __m128 _3) {
23375f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfnmsub_s((v4f32)_1, (v4f32)_2, (v4f32)_3);
23385f757f3fSDimitry Andric }
23395f757f3fSDimitry Andric 
23405f757f3fSDimitry Andric extern __inline
23415f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
23425f757f3fSDimitry Andric     __lsx_vfnmsub_d(__m128d _1, __m128d _2, __m128d _3) {
23435f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfnmsub_d((v2f64)_1, (v2f64)_2, (v2f64)_3);
23445f757f3fSDimitry Andric }
23455f757f3fSDimitry Andric 
23465f757f3fSDimitry Andric extern __inline
23475f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23485f757f3fSDimitry Andric     __lsx_vftintrne_w_s(__m128 _1) {
23495f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrne_w_s((v4f32)_1);
23505f757f3fSDimitry Andric }
23515f757f3fSDimitry Andric 
23525f757f3fSDimitry Andric extern __inline
23535f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23545f757f3fSDimitry Andric     __lsx_vftintrne_l_d(__m128d _1) {
23555f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrne_l_d((v2f64)_1);
23565f757f3fSDimitry Andric }
23575f757f3fSDimitry Andric 
23585f757f3fSDimitry Andric extern __inline
23595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23605f757f3fSDimitry Andric     __lsx_vftintrp_w_s(__m128 _1) {
23615f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrp_w_s((v4f32)_1);
23625f757f3fSDimitry Andric }
23635f757f3fSDimitry Andric 
23645f757f3fSDimitry Andric extern __inline
23655f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23665f757f3fSDimitry Andric     __lsx_vftintrp_l_d(__m128d _1) {
23675f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrp_l_d((v2f64)_1);
23685f757f3fSDimitry Andric }
23695f757f3fSDimitry Andric 
23705f757f3fSDimitry Andric extern __inline
23715f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23725f757f3fSDimitry Andric     __lsx_vftintrm_w_s(__m128 _1) {
23735f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrm_w_s((v4f32)_1);
23745f757f3fSDimitry Andric }
23755f757f3fSDimitry Andric 
23765f757f3fSDimitry Andric extern __inline
23775f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23785f757f3fSDimitry Andric     __lsx_vftintrm_l_d(__m128d _1) {
23795f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrm_l_d((v2f64)_1);
23805f757f3fSDimitry Andric }
23815f757f3fSDimitry Andric 
23825f757f3fSDimitry Andric extern __inline
23835f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23845f757f3fSDimitry Andric     __lsx_vftint_w_d(__m128d _1, __m128d _2) {
23855f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftint_w_d((v2f64)_1, (v2f64)_2);
23865f757f3fSDimitry Andric }
23875f757f3fSDimitry Andric 
23885f757f3fSDimitry Andric extern __inline
23895f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
23905f757f3fSDimitry Andric     __lsx_vffint_s_l(__m128i _1, __m128i _2) {
23915f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vffint_s_l((v2i64)_1, (v2i64)_2);
23925f757f3fSDimitry Andric }
23935f757f3fSDimitry Andric 
23945f757f3fSDimitry Andric extern __inline
23955f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
23965f757f3fSDimitry Andric     __lsx_vftintrz_w_d(__m128d _1, __m128d _2) {
23975f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrz_w_d((v2f64)_1, (v2f64)_2);
23985f757f3fSDimitry Andric }
23995f757f3fSDimitry Andric 
24005f757f3fSDimitry Andric extern __inline
24015f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24025f757f3fSDimitry Andric     __lsx_vftintrp_w_d(__m128d _1, __m128d _2) {
24035f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrp_w_d((v2f64)_1, (v2f64)_2);
24045f757f3fSDimitry Andric }
24055f757f3fSDimitry Andric 
24065f757f3fSDimitry Andric extern __inline
24075f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24085f757f3fSDimitry Andric     __lsx_vftintrm_w_d(__m128d _1, __m128d _2) {
24095f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrm_w_d((v2f64)_1, (v2f64)_2);
24105f757f3fSDimitry Andric }
24115f757f3fSDimitry Andric 
24125f757f3fSDimitry Andric extern __inline
24135f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24145f757f3fSDimitry Andric     __lsx_vftintrne_w_d(__m128d _1, __m128d _2) {
24155f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrne_w_d((v2f64)_1, (v2f64)_2);
24165f757f3fSDimitry Andric }
24175f757f3fSDimitry Andric 
24185f757f3fSDimitry Andric extern __inline
24195f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24205f757f3fSDimitry Andric     __lsx_vftintl_l_s(__m128 _1) {
24215f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintl_l_s((v4f32)_1);
24225f757f3fSDimitry Andric }
24235f757f3fSDimitry Andric 
24245f757f3fSDimitry Andric extern __inline
24255f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24265f757f3fSDimitry Andric     __lsx_vftinth_l_s(__m128 _1) {
24275f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftinth_l_s((v4f32)_1);
24285f757f3fSDimitry Andric }
24295f757f3fSDimitry Andric 
24305f757f3fSDimitry Andric extern __inline
24315f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
24325f757f3fSDimitry Andric     __lsx_vffinth_d_w(__m128i _1) {
24335f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vffinth_d_w((v4i32)_1);
24345f757f3fSDimitry Andric }
24355f757f3fSDimitry Andric 
24365f757f3fSDimitry Andric extern __inline
24375f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
24385f757f3fSDimitry Andric     __lsx_vffintl_d_w(__m128i _1) {
24395f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vffintl_d_w((v4i32)_1);
24405f757f3fSDimitry Andric }
24415f757f3fSDimitry Andric 
24425f757f3fSDimitry Andric extern __inline
24435f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24445f757f3fSDimitry Andric     __lsx_vftintrzl_l_s(__m128 _1) {
24455f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrzl_l_s((v4f32)_1);
24465f757f3fSDimitry Andric }
24475f757f3fSDimitry Andric 
24485f757f3fSDimitry Andric extern __inline
24495f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24505f757f3fSDimitry Andric     __lsx_vftintrzh_l_s(__m128 _1) {
24515f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrzh_l_s((v4f32)_1);
24525f757f3fSDimitry Andric }
24535f757f3fSDimitry Andric 
24545f757f3fSDimitry Andric extern __inline
24555f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24565f757f3fSDimitry Andric     __lsx_vftintrpl_l_s(__m128 _1) {
24575f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrpl_l_s((v4f32)_1);
24585f757f3fSDimitry Andric }
24595f757f3fSDimitry Andric 
24605f757f3fSDimitry Andric extern __inline
24615f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24625f757f3fSDimitry Andric     __lsx_vftintrph_l_s(__m128 _1) {
24635f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrph_l_s((v4f32)_1);
24645f757f3fSDimitry Andric }
24655f757f3fSDimitry Andric 
24665f757f3fSDimitry Andric extern __inline
24675f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24685f757f3fSDimitry Andric     __lsx_vftintrml_l_s(__m128 _1) {
24695f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrml_l_s((v4f32)_1);
24705f757f3fSDimitry Andric }
24715f757f3fSDimitry Andric 
24725f757f3fSDimitry Andric extern __inline
24735f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24745f757f3fSDimitry Andric     __lsx_vftintrmh_l_s(__m128 _1) {
24755f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrmh_l_s((v4f32)_1);
24765f757f3fSDimitry Andric }
24775f757f3fSDimitry Andric 
24785f757f3fSDimitry Andric extern __inline
24795f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24805f757f3fSDimitry Andric     __lsx_vftintrnel_l_s(__m128 _1) {
24815f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrnel_l_s((v4f32)_1);
24825f757f3fSDimitry Andric }
24835f757f3fSDimitry Andric 
24845f757f3fSDimitry Andric extern __inline
24855f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
24865f757f3fSDimitry Andric     __lsx_vftintrneh_l_s(__m128 _1) {
24875f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vftintrneh_l_s((v4f32)_1);
24885f757f3fSDimitry Andric }
24895f757f3fSDimitry Andric 
24905f757f3fSDimitry Andric extern __inline
24915f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
24925f757f3fSDimitry Andric     __lsx_vfrintrne_s(__m128 _1) {
24935f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfrintrne_s((v4f32)_1);
24945f757f3fSDimitry Andric }
24955f757f3fSDimitry Andric 
24965f757f3fSDimitry Andric extern __inline
24975f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
24985f757f3fSDimitry Andric     __lsx_vfrintrne_d(__m128d _1) {
24995f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfrintrne_d((v2f64)_1);
25005f757f3fSDimitry Andric }
25015f757f3fSDimitry Andric 
25025f757f3fSDimitry Andric extern __inline
25035f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
25045f757f3fSDimitry Andric     __lsx_vfrintrz_s(__m128 _1) {
25055f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfrintrz_s((v4f32)_1);
25065f757f3fSDimitry Andric }
25075f757f3fSDimitry Andric 
25085f757f3fSDimitry Andric extern __inline
25095f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
25105f757f3fSDimitry Andric     __lsx_vfrintrz_d(__m128d _1) {
25115f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfrintrz_d((v2f64)_1);
25125f757f3fSDimitry Andric }
25135f757f3fSDimitry Andric 
25145f757f3fSDimitry Andric extern __inline
25155f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
25165f757f3fSDimitry Andric     __lsx_vfrintrp_s(__m128 _1) {
25175f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfrintrp_s((v4f32)_1);
25185f757f3fSDimitry Andric }
25195f757f3fSDimitry Andric 
25205f757f3fSDimitry Andric extern __inline
25215f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
25225f757f3fSDimitry Andric     __lsx_vfrintrp_d(__m128d _1) {
25235f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfrintrp_d((v2f64)_1);
25245f757f3fSDimitry Andric }
25255f757f3fSDimitry Andric 
25265f757f3fSDimitry Andric extern __inline
25275f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128
25285f757f3fSDimitry Andric     __lsx_vfrintrm_s(__m128 _1) {
25295f757f3fSDimitry Andric   return (__m128)__builtin_lsx_vfrintrm_s((v4f32)_1);
25305f757f3fSDimitry Andric }
25315f757f3fSDimitry Andric 
25325f757f3fSDimitry Andric extern __inline
25335f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128d
25345f757f3fSDimitry Andric     __lsx_vfrintrm_d(__m128d _1) {
25355f757f3fSDimitry Andric   return (__m128d)__builtin_lsx_vfrintrm_d((v2f64)_1);
25365f757f3fSDimitry Andric }
25375f757f3fSDimitry Andric 
25385f757f3fSDimitry Andric #define __lsx_vstelm_b(/*__m128i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4)  \
25395f757f3fSDimitry Andric   ((void)__builtin_lsx_vstelm_b((v16i8)(_1), (void *)(_2), (_3), (_4)))
25405f757f3fSDimitry Andric 
25415f757f3fSDimitry Andric #define __lsx_vstelm_h(/*__m128i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4)  \
25425f757f3fSDimitry Andric   ((void)__builtin_lsx_vstelm_h((v8i16)(_1), (void *)(_2), (_3), (_4)))
25435f757f3fSDimitry Andric 
25445f757f3fSDimitry Andric #define __lsx_vstelm_w(/*__m128i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4)  \
25455f757f3fSDimitry Andric   ((void)__builtin_lsx_vstelm_w((v4i32)(_1), (void *)(_2), (_3), (_4)))
25465f757f3fSDimitry Andric 
25475f757f3fSDimitry Andric #define __lsx_vstelm_d(/*__m128i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4)  \
25485f757f3fSDimitry Andric   ((void)__builtin_lsx_vstelm_d((v2i64)(_1), (void *)(_2), (_3), (_4)))
25495f757f3fSDimitry Andric 
25505f757f3fSDimitry Andric extern __inline
25515f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25525f757f3fSDimitry Andric     __lsx_vaddwev_d_w(__m128i _1, __m128i _2) {
25535f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_d_w((v4i32)_1, (v4i32)_2);
25545f757f3fSDimitry Andric }
25555f757f3fSDimitry Andric 
25565f757f3fSDimitry Andric extern __inline
25575f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25585f757f3fSDimitry Andric     __lsx_vaddwev_w_h(__m128i _1, __m128i _2) {
25595f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_w_h((v8i16)_1, (v8i16)_2);
25605f757f3fSDimitry Andric }
25615f757f3fSDimitry Andric 
25625f757f3fSDimitry Andric extern __inline
25635f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25645f757f3fSDimitry Andric     __lsx_vaddwev_h_b(__m128i _1, __m128i _2) {
25655f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_h_b((v16i8)_1, (v16i8)_2);
25665f757f3fSDimitry Andric }
25675f757f3fSDimitry Andric 
25685f757f3fSDimitry Andric extern __inline
25695f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25705f757f3fSDimitry Andric     __lsx_vaddwod_d_w(__m128i _1, __m128i _2) {
25715f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_d_w((v4i32)_1, (v4i32)_2);
25725f757f3fSDimitry Andric }
25735f757f3fSDimitry Andric 
25745f757f3fSDimitry Andric extern __inline
25755f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25765f757f3fSDimitry Andric     __lsx_vaddwod_w_h(__m128i _1, __m128i _2) {
25775f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_w_h((v8i16)_1, (v8i16)_2);
25785f757f3fSDimitry Andric }
25795f757f3fSDimitry Andric 
25805f757f3fSDimitry Andric extern __inline
25815f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25825f757f3fSDimitry Andric     __lsx_vaddwod_h_b(__m128i _1, __m128i _2) {
25835f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_h_b((v16i8)_1, (v16i8)_2);
25845f757f3fSDimitry Andric }
25855f757f3fSDimitry Andric 
25865f757f3fSDimitry Andric extern __inline
25875f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25885f757f3fSDimitry Andric     __lsx_vaddwev_d_wu(__m128i _1, __m128i _2) {
25895f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_d_wu((v4u32)_1, (v4u32)_2);
25905f757f3fSDimitry Andric }
25915f757f3fSDimitry Andric 
25925f757f3fSDimitry Andric extern __inline
25935f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
25945f757f3fSDimitry Andric     __lsx_vaddwev_w_hu(__m128i _1, __m128i _2) {
25955f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_w_hu((v8u16)_1, (v8u16)_2);
25965f757f3fSDimitry Andric }
25975f757f3fSDimitry Andric 
25985f757f3fSDimitry Andric extern __inline
25995f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26005f757f3fSDimitry Andric     __lsx_vaddwev_h_bu(__m128i _1, __m128i _2) {
26015f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_h_bu((v16u8)_1, (v16u8)_2);
26025f757f3fSDimitry Andric }
26035f757f3fSDimitry Andric 
26045f757f3fSDimitry Andric extern __inline
26055f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26065f757f3fSDimitry Andric     __lsx_vaddwod_d_wu(__m128i _1, __m128i _2) {
26075f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_d_wu((v4u32)_1, (v4u32)_2);
26085f757f3fSDimitry Andric }
26095f757f3fSDimitry Andric 
26105f757f3fSDimitry Andric extern __inline
26115f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26125f757f3fSDimitry Andric     __lsx_vaddwod_w_hu(__m128i _1, __m128i _2) {
26135f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_w_hu((v8u16)_1, (v8u16)_2);
26145f757f3fSDimitry Andric }
26155f757f3fSDimitry Andric 
26165f757f3fSDimitry Andric extern __inline
26175f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26185f757f3fSDimitry Andric     __lsx_vaddwod_h_bu(__m128i _1, __m128i _2) {
26195f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_h_bu((v16u8)_1, (v16u8)_2);
26205f757f3fSDimitry Andric }
26215f757f3fSDimitry Andric 
26225f757f3fSDimitry Andric extern __inline
26235f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26245f757f3fSDimitry Andric     __lsx_vaddwev_d_wu_w(__m128i _1, __m128i _2) {
26255f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_d_wu_w((v4u32)_1, (v4i32)_2);
26265f757f3fSDimitry Andric }
26275f757f3fSDimitry Andric 
26285f757f3fSDimitry Andric extern __inline
26295f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26305f757f3fSDimitry Andric     __lsx_vaddwev_w_hu_h(__m128i _1, __m128i _2) {
26315f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_w_hu_h((v8u16)_1, (v8i16)_2);
26325f757f3fSDimitry Andric }
26335f757f3fSDimitry Andric 
26345f757f3fSDimitry Andric extern __inline
26355f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26365f757f3fSDimitry Andric     __lsx_vaddwev_h_bu_b(__m128i _1, __m128i _2) {
26375f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_h_bu_b((v16u8)_1, (v16i8)_2);
26385f757f3fSDimitry Andric }
26395f757f3fSDimitry Andric 
26405f757f3fSDimitry Andric extern __inline
26415f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26425f757f3fSDimitry Andric     __lsx_vaddwod_d_wu_w(__m128i _1, __m128i _2) {
26435f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_d_wu_w((v4u32)_1, (v4i32)_2);
26445f757f3fSDimitry Andric }
26455f757f3fSDimitry Andric 
26465f757f3fSDimitry Andric extern __inline
26475f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26485f757f3fSDimitry Andric     __lsx_vaddwod_w_hu_h(__m128i _1, __m128i _2) {
26495f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_w_hu_h((v8u16)_1, (v8i16)_2);
26505f757f3fSDimitry Andric }
26515f757f3fSDimitry Andric 
26525f757f3fSDimitry Andric extern __inline
26535f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26545f757f3fSDimitry Andric     __lsx_vaddwod_h_bu_b(__m128i _1, __m128i _2) {
26555f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_h_bu_b((v16u8)_1, (v16i8)_2);
26565f757f3fSDimitry Andric }
26575f757f3fSDimitry Andric 
26585f757f3fSDimitry Andric extern __inline
26595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26605f757f3fSDimitry Andric     __lsx_vsubwev_d_w(__m128i _1, __m128i _2) {
26615f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_d_w((v4i32)_1, (v4i32)_2);
26625f757f3fSDimitry Andric }
26635f757f3fSDimitry Andric 
26645f757f3fSDimitry Andric extern __inline
26655f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26665f757f3fSDimitry Andric     __lsx_vsubwev_w_h(__m128i _1, __m128i _2) {
26675f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_w_h((v8i16)_1, (v8i16)_2);
26685f757f3fSDimitry Andric }
26695f757f3fSDimitry Andric 
26705f757f3fSDimitry Andric extern __inline
26715f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26725f757f3fSDimitry Andric     __lsx_vsubwev_h_b(__m128i _1, __m128i _2) {
26735f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_h_b((v16i8)_1, (v16i8)_2);
26745f757f3fSDimitry Andric }
26755f757f3fSDimitry Andric 
26765f757f3fSDimitry Andric extern __inline
26775f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26785f757f3fSDimitry Andric     __lsx_vsubwod_d_w(__m128i _1, __m128i _2) {
26795f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_d_w((v4i32)_1, (v4i32)_2);
26805f757f3fSDimitry Andric }
26815f757f3fSDimitry Andric 
26825f757f3fSDimitry Andric extern __inline
26835f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26845f757f3fSDimitry Andric     __lsx_vsubwod_w_h(__m128i _1, __m128i _2) {
26855f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_w_h((v8i16)_1, (v8i16)_2);
26865f757f3fSDimitry Andric }
26875f757f3fSDimitry Andric 
26885f757f3fSDimitry Andric extern __inline
26895f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26905f757f3fSDimitry Andric     __lsx_vsubwod_h_b(__m128i _1, __m128i _2) {
26915f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_h_b((v16i8)_1, (v16i8)_2);
26925f757f3fSDimitry Andric }
26935f757f3fSDimitry Andric 
26945f757f3fSDimitry Andric extern __inline
26955f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
26965f757f3fSDimitry Andric     __lsx_vsubwev_d_wu(__m128i _1, __m128i _2) {
26975f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_d_wu((v4u32)_1, (v4u32)_2);
26985f757f3fSDimitry Andric }
26995f757f3fSDimitry Andric 
27005f757f3fSDimitry Andric extern __inline
27015f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27025f757f3fSDimitry Andric     __lsx_vsubwev_w_hu(__m128i _1, __m128i _2) {
27035f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_w_hu((v8u16)_1, (v8u16)_2);
27045f757f3fSDimitry Andric }
27055f757f3fSDimitry Andric 
27065f757f3fSDimitry Andric extern __inline
27075f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27085f757f3fSDimitry Andric     __lsx_vsubwev_h_bu(__m128i _1, __m128i _2) {
27095f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_h_bu((v16u8)_1, (v16u8)_2);
27105f757f3fSDimitry Andric }
27115f757f3fSDimitry Andric 
27125f757f3fSDimitry Andric extern __inline
27135f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27145f757f3fSDimitry Andric     __lsx_vsubwod_d_wu(__m128i _1, __m128i _2) {
27155f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_d_wu((v4u32)_1, (v4u32)_2);
27165f757f3fSDimitry Andric }
27175f757f3fSDimitry Andric 
27185f757f3fSDimitry Andric extern __inline
27195f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27205f757f3fSDimitry Andric     __lsx_vsubwod_w_hu(__m128i _1, __m128i _2) {
27215f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_w_hu((v8u16)_1, (v8u16)_2);
27225f757f3fSDimitry Andric }
27235f757f3fSDimitry Andric 
27245f757f3fSDimitry Andric extern __inline
27255f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27265f757f3fSDimitry Andric     __lsx_vsubwod_h_bu(__m128i _1, __m128i _2) {
27275f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_h_bu((v16u8)_1, (v16u8)_2);
27285f757f3fSDimitry Andric }
27295f757f3fSDimitry Andric 
27305f757f3fSDimitry Andric extern __inline
27315f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27325f757f3fSDimitry Andric     __lsx_vaddwev_q_d(__m128i _1, __m128i _2) {
27335f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_q_d((v2i64)_1, (v2i64)_2);
27345f757f3fSDimitry Andric }
27355f757f3fSDimitry Andric 
27365f757f3fSDimitry Andric extern __inline
27375f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27385f757f3fSDimitry Andric     __lsx_vaddwod_q_d(__m128i _1, __m128i _2) {
27395f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_q_d((v2i64)_1, (v2i64)_2);
27405f757f3fSDimitry Andric }
27415f757f3fSDimitry Andric 
27425f757f3fSDimitry Andric extern __inline
27435f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27445f757f3fSDimitry Andric     __lsx_vaddwev_q_du(__m128i _1, __m128i _2) {
27455f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_q_du((v2u64)_1, (v2u64)_2);
27465f757f3fSDimitry Andric }
27475f757f3fSDimitry Andric 
27485f757f3fSDimitry Andric extern __inline
27495f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27505f757f3fSDimitry Andric     __lsx_vaddwod_q_du(__m128i _1, __m128i _2) {
27515f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_q_du((v2u64)_1, (v2u64)_2);
27525f757f3fSDimitry Andric }
27535f757f3fSDimitry Andric 
27545f757f3fSDimitry Andric extern __inline
27555f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27565f757f3fSDimitry Andric     __lsx_vsubwev_q_d(__m128i _1, __m128i _2) {
27575f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_q_d((v2i64)_1, (v2i64)_2);
27585f757f3fSDimitry Andric }
27595f757f3fSDimitry Andric 
27605f757f3fSDimitry Andric extern __inline
27615f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27625f757f3fSDimitry Andric     __lsx_vsubwod_q_d(__m128i _1, __m128i _2) {
27635f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_q_d((v2i64)_1, (v2i64)_2);
27645f757f3fSDimitry Andric }
27655f757f3fSDimitry Andric 
27665f757f3fSDimitry Andric extern __inline
27675f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27685f757f3fSDimitry Andric     __lsx_vsubwev_q_du(__m128i _1, __m128i _2) {
27695f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwev_q_du((v2u64)_1, (v2u64)_2);
27705f757f3fSDimitry Andric }
27715f757f3fSDimitry Andric 
27725f757f3fSDimitry Andric extern __inline
27735f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27745f757f3fSDimitry Andric     __lsx_vsubwod_q_du(__m128i _1, __m128i _2) {
27755f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsubwod_q_du((v2u64)_1, (v2u64)_2);
27765f757f3fSDimitry Andric }
27775f757f3fSDimitry Andric 
27785f757f3fSDimitry Andric extern __inline
27795f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27805f757f3fSDimitry Andric     __lsx_vaddwev_q_du_d(__m128i _1, __m128i _2) {
27815f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwev_q_du_d((v2u64)_1, (v2i64)_2);
27825f757f3fSDimitry Andric }
27835f757f3fSDimitry Andric 
27845f757f3fSDimitry Andric extern __inline
27855f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27865f757f3fSDimitry Andric     __lsx_vaddwod_q_du_d(__m128i _1, __m128i _2) {
27875f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vaddwod_q_du_d((v2u64)_1, (v2i64)_2);
27885f757f3fSDimitry Andric }
27895f757f3fSDimitry Andric 
27905f757f3fSDimitry Andric extern __inline
27915f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27925f757f3fSDimitry Andric     __lsx_vmulwev_d_w(__m128i _1, __m128i _2) {
27935f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_d_w((v4i32)_1, (v4i32)_2);
27945f757f3fSDimitry Andric }
27955f757f3fSDimitry Andric 
27965f757f3fSDimitry Andric extern __inline
27975f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
27985f757f3fSDimitry Andric     __lsx_vmulwev_w_h(__m128i _1, __m128i _2) {
27995f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_w_h((v8i16)_1, (v8i16)_2);
28005f757f3fSDimitry Andric }
28015f757f3fSDimitry Andric 
28025f757f3fSDimitry Andric extern __inline
28035f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28045f757f3fSDimitry Andric     __lsx_vmulwev_h_b(__m128i _1, __m128i _2) {
28055f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_h_b((v16i8)_1, (v16i8)_2);
28065f757f3fSDimitry Andric }
28075f757f3fSDimitry Andric 
28085f757f3fSDimitry Andric extern __inline
28095f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28105f757f3fSDimitry Andric     __lsx_vmulwod_d_w(__m128i _1, __m128i _2) {
28115f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_d_w((v4i32)_1, (v4i32)_2);
28125f757f3fSDimitry Andric }
28135f757f3fSDimitry Andric 
28145f757f3fSDimitry Andric extern __inline
28155f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28165f757f3fSDimitry Andric     __lsx_vmulwod_w_h(__m128i _1, __m128i _2) {
28175f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_w_h((v8i16)_1, (v8i16)_2);
28185f757f3fSDimitry Andric }
28195f757f3fSDimitry Andric 
28205f757f3fSDimitry Andric extern __inline
28215f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28225f757f3fSDimitry Andric     __lsx_vmulwod_h_b(__m128i _1, __m128i _2) {
28235f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_h_b((v16i8)_1, (v16i8)_2);
28245f757f3fSDimitry Andric }
28255f757f3fSDimitry Andric 
28265f757f3fSDimitry Andric extern __inline
28275f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28285f757f3fSDimitry Andric     __lsx_vmulwev_d_wu(__m128i _1, __m128i _2) {
28295f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_d_wu((v4u32)_1, (v4u32)_2);
28305f757f3fSDimitry Andric }
28315f757f3fSDimitry Andric 
28325f757f3fSDimitry Andric extern __inline
28335f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28345f757f3fSDimitry Andric     __lsx_vmulwev_w_hu(__m128i _1, __m128i _2) {
28355f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_w_hu((v8u16)_1, (v8u16)_2);
28365f757f3fSDimitry Andric }
28375f757f3fSDimitry Andric 
28385f757f3fSDimitry Andric extern __inline
28395f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28405f757f3fSDimitry Andric     __lsx_vmulwev_h_bu(__m128i _1, __m128i _2) {
28415f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_h_bu((v16u8)_1, (v16u8)_2);
28425f757f3fSDimitry Andric }
28435f757f3fSDimitry Andric 
28445f757f3fSDimitry Andric extern __inline
28455f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28465f757f3fSDimitry Andric     __lsx_vmulwod_d_wu(__m128i _1, __m128i _2) {
28475f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_d_wu((v4u32)_1, (v4u32)_2);
28485f757f3fSDimitry Andric }
28495f757f3fSDimitry Andric 
28505f757f3fSDimitry Andric extern __inline
28515f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28525f757f3fSDimitry Andric     __lsx_vmulwod_w_hu(__m128i _1, __m128i _2) {
28535f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_w_hu((v8u16)_1, (v8u16)_2);
28545f757f3fSDimitry Andric }
28555f757f3fSDimitry Andric 
28565f757f3fSDimitry Andric extern __inline
28575f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28585f757f3fSDimitry Andric     __lsx_vmulwod_h_bu(__m128i _1, __m128i _2) {
28595f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_h_bu((v16u8)_1, (v16u8)_2);
28605f757f3fSDimitry Andric }
28615f757f3fSDimitry Andric 
28625f757f3fSDimitry Andric extern __inline
28635f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28645f757f3fSDimitry Andric     __lsx_vmulwev_d_wu_w(__m128i _1, __m128i _2) {
28655f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_d_wu_w((v4u32)_1, (v4i32)_2);
28665f757f3fSDimitry Andric }
28675f757f3fSDimitry Andric 
28685f757f3fSDimitry Andric extern __inline
28695f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28705f757f3fSDimitry Andric     __lsx_vmulwev_w_hu_h(__m128i _1, __m128i _2) {
28715f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_w_hu_h((v8u16)_1, (v8i16)_2);
28725f757f3fSDimitry Andric }
28735f757f3fSDimitry Andric 
28745f757f3fSDimitry Andric extern __inline
28755f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28765f757f3fSDimitry Andric     __lsx_vmulwev_h_bu_b(__m128i _1, __m128i _2) {
28775f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_h_bu_b((v16u8)_1, (v16i8)_2);
28785f757f3fSDimitry Andric }
28795f757f3fSDimitry Andric 
28805f757f3fSDimitry Andric extern __inline
28815f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28825f757f3fSDimitry Andric     __lsx_vmulwod_d_wu_w(__m128i _1, __m128i _2) {
28835f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_d_wu_w((v4u32)_1, (v4i32)_2);
28845f757f3fSDimitry Andric }
28855f757f3fSDimitry Andric 
28865f757f3fSDimitry Andric extern __inline
28875f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28885f757f3fSDimitry Andric     __lsx_vmulwod_w_hu_h(__m128i _1, __m128i _2) {
28895f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_w_hu_h((v8u16)_1, (v8i16)_2);
28905f757f3fSDimitry Andric }
28915f757f3fSDimitry Andric 
28925f757f3fSDimitry Andric extern __inline
28935f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
28945f757f3fSDimitry Andric     __lsx_vmulwod_h_bu_b(__m128i _1, __m128i _2) {
28955f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_h_bu_b((v16u8)_1, (v16i8)_2);
28965f757f3fSDimitry Andric }
28975f757f3fSDimitry Andric 
28985f757f3fSDimitry Andric extern __inline
28995f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29005f757f3fSDimitry Andric     __lsx_vmulwev_q_d(__m128i _1, __m128i _2) {
29015f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_q_d((v2i64)_1, (v2i64)_2);
29025f757f3fSDimitry Andric }
29035f757f3fSDimitry Andric 
29045f757f3fSDimitry Andric extern __inline
29055f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29065f757f3fSDimitry Andric     __lsx_vmulwod_q_d(__m128i _1, __m128i _2) {
29075f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_q_d((v2i64)_1, (v2i64)_2);
29085f757f3fSDimitry Andric }
29095f757f3fSDimitry Andric 
29105f757f3fSDimitry Andric extern __inline
29115f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29125f757f3fSDimitry Andric     __lsx_vmulwev_q_du(__m128i _1, __m128i _2) {
29135f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_q_du((v2u64)_1, (v2u64)_2);
29145f757f3fSDimitry Andric }
29155f757f3fSDimitry Andric 
29165f757f3fSDimitry Andric extern __inline
29175f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29185f757f3fSDimitry Andric     __lsx_vmulwod_q_du(__m128i _1, __m128i _2) {
29195f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_q_du((v2u64)_1, (v2u64)_2);
29205f757f3fSDimitry Andric }
29215f757f3fSDimitry Andric 
29225f757f3fSDimitry Andric extern __inline
29235f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29245f757f3fSDimitry Andric     __lsx_vmulwev_q_du_d(__m128i _1, __m128i _2) {
29255f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwev_q_du_d((v2u64)_1, (v2i64)_2);
29265f757f3fSDimitry Andric }
29275f757f3fSDimitry Andric 
29285f757f3fSDimitry Andric extern __inline
29295f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29305f757f3fSDimitry Andric     __lsx_vmulwod_q_du_d(__m128i _1, __m128i _2) {
29315f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmulwod_q_du_d((v2u64)_1, (v2i64)_2);
29325f757f3fSDimitry Andric }
29335f757f3fSDimitry Andric 
29345f757f3fSDimitry Andric extern __inline
29355f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29365f757f3fSDimitry Andric     __lsx_vhaddw_q_d(__m128i _1, __m128i _2) {
29375f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_q_d((v2i64)_1, (v2i64)_2);
29385f757f3fSDimitry Andric }
29395f757f3fSDimitry Andric 
29405f757f3fSDimitry Andric extern __inline
29415f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29425f757f3fSDimitry Andric     __lsx_vhaddw_qu_du(__m128i _1, __m128i _2) {
29435f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhaddw_qu_du((v2u64)_1, (v2u64)_2);
29445f757f3fSDimitry Andric }
29455f757f3fSDimitry Andric 
29465f757f3fSDimitry Andric extern __inline
29475f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29485f757f3fSDimitry Andric     __lsx_vhsubw_q_d(__m128i _1, __m128i _2) {
29495f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_q_d((v2i64)_1, (v2i64)_2);
29505f757f3fSDimitry Andric }
29515f757f3fSDimitry Andric 
29525f757f3fSDimitry Andric extern __inline
29535f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29545f757f3fSDimitry Andric     __lsx_vhsubw_qu_du(__m128i _1, __m128i _2) {
29555f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vhsubw_qu_du((v2u64)_1, (v2u64)_2);
29565f757f3fSDimitry Andric }
29575f757f3fSDimitry Andric 
29585f757f3fSDimitry Andric extern __inline
29595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29605f757f3fSDimitry Andric     __lsx_vmaddwev_d_w(__m128i _1, __m128i _2, __m128i _3) {
29615f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_d_w((v2i64)_1, (v4i32)_2, (v4i32)_3);
29625f757f3fSDimitry Andric }
29635f757f3fSDimitry Andric 
29645f757f3fSDimitry Andric extern __inline
29655f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29665f757f3fSDimitry Andric     __lsx_vmaddwev_w_h(__m128i _1, __m128i _2, __m128i _3) {
29675f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_w_h((v4i32)_1, (v8i16)_2, (v8i16)_3);
29685f757f3fSDimitry Andric }
29695f757f3fSDimitry Andric 
29705f757f3fSDimitry Andric extern __inline
29715f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29725f757f3fSDimitry Andric     __lsx_vmaddwev_h_b(__m128i _1, __m128i _2, __m128i _3) {
29735f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_h_b((v8i16)_1, (v16i8)_2, (v16i8)_3);
29745f757f3fSDimitry Andric }
29755f757f3fSDimitry Andric 
29765f757f3fSDimitry Andric extern __inline
29775f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29785f757f3fSDimitry Andric     __lsx_vmaddwev_d_wu(__m128i _1, __m128i _2, __m128i _3) {
29795f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_d_wu((v2u64)_1, (v4u32)_2, (v4u32)_3);
29805f757f3fSDimitry Andric }
29815f757f3fSDimitry Andric 
29825f757f3fSDimitry Andric extern __inline
29835f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29845f757f3fSDimitry Andric     __lsx_vmaddwev_w_hu(__m128i _1, __m128i _2, __m128i _3) {
29855f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_w_hu((v4u32)_1, (v8u16)_2, (v8u16)_3);
29865f757f3fSDimitry Andric }
29875f757f3fSDimitry Andric 
29885f757f3fSDimitry Andric extern __inline
29895f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29905f757f3fSDimitry Andric     __lsx_vmaddwev_h_bu(__m128i _1, __m128i _2, __m128i _3) {
29915f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_h_bu((v8u16)_1, (v16u8)_2, (v16u8)_3);
29925f757f3fSDimitry Andric }
29935f757f3fSDimitry Andric 
29945f757f3fSDimitry Andric extern __inline
29955f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
29965f757f3fSDimitry Andric     __lsx_vmaddwod_d_w(__m128i _1, __m128i _2, __m128i _3) {
29975f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_d_w((v2i64)_1, (v4i32)_2, (v4i32)_3);
29985f757f3fSDimitry Andric }
29995f757f3fSDimitry Andric 
30005f757f3fSDimitry Andric extern __inline
30015f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30025f757f3fSDimitry Andric     __lsx_vmaddwod_w_h(__m128i _1, __m128i _2, __m128i _3) {
30035f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_w_h((v4i32)_1, (v8i16)_2, (v8i16)_3);
30045f757f3fSDimitry Andric }
30055f757f3fSDimitry Andric 
30065f757f3fSDimitry Andric extern __inline
30075f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30085f757f3fSDimitry Andric     __lsx_vmaddwod_h_b(__m128i _1, __m128i _2, __m128i _3) {
30095f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_h_b((v8i16)_1, (v16i8)_2, (v16i8)_3);
30105f757f3fSDimitry Andric }
30115f757f3fSDimitry Andric 
30125f757f3fSDimitry Andric extern __inline
30135f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30145f757f3fSDimitry Andric     __lsx_vmaddwod_d_wu(__m128i _1, __m128i _2, __m128i _3) {
30155f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_d_wu((v2u64)_1, (v4u32)_2, (v4u32)_3);
30165f757f3fSDimitry Andric }
30175f757f3fSDimitry Andric 
30185f757f3fSDimitry Andric extern __inline
30195f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30205f757f3fSDimitry Andric     __lsx_vmaddwod_w_hu(__m128i _1, __m128i _2, __m128i _3) {
30215f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_w_hu((v4u32)_1, (v8u16)_2, (v8u16)_3);
30225f757f3fSDimitry Andric }
30235f757f3fSDimitry Andric 
30245f757f3fSDimitry Andric extern __inline
30255f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30265f757f3fSDimitry Andric     __lsx_vmaddwod_h_bu(__m128i _1, __m128i _2, __m128i _3) {
30275f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_h_bu((v8u16)_1, (v16u8)_2, (v16u8)_3);
30285f757f3fSDimitry Andric }
30295f757f3fSDimitry Andric 
30305f757f3fSDimitry Andric extern __inline
30315f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30325f757f3fSDimitry Andric     __lsx_vmaddwev_d_wu_w(__m128i _1, __m128i _2, __m128i _3) {
30335f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_d_wu_w((v2i64)_1, (v4u32)_2,
30345f757f3fSDimitry Andric                                                 (v4i32)_3);
30355f757f3fSDimitry Andric }
30365f757f3fSDimitry Andric 
30375f757f3fSDimitry Andric extern __inline
30385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30395f757f3fSDimitry Andric     __lsx_vmaddwev_w_hu_h(__m128i _1, __m128i _2, __m128i _3) {
30405f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_w_hu_h((v4i32)_1, (v8u16)_2,
30415f757f3fSDimitry Andric                                                 (v8i16)_3);
30425f757f3fSDimitry Andric }
30435f757f3fSDimitry Andric 
30445f757f3fSDimitry Andric extern __inline
30455f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30465f757f3fSDimitry Andric     __lsx_vmaddwev_h_bu_b(__m128i _1, __m128i _2, __m128i _3) {
30475f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_h_bu_b((v8i16)_1, (v16u8)_2,
30485f757f3fSDimitry Andric                                                 (v16i8)_3);
30495f757f3fSDimitry Andric }
30505f757f3fSDimitry Andric 
30515f757f3fSDimitry Andric extern __inline
30525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30535f757f3fSDimitry Andric     __lsx_vmaddwod_d_wu_w(__m128i _1, __m128i _2, __m128i _3) {
30545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_d_wu_w((v2i64)_1, (v4u32)_2,
30555f757f3fSDimitry Andric                                                 (v4i32)_3);
30565f757f3fSDimitry Andric }
30575f757f3fSDimitry Andric 
30585f757f3fSDimitry Andric extern __inline
30595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30605f757f3fSDimitry Andric     __lsx_vmaddwod_w_hu_h(__m128i _1, __m128i _2, __m128i _3) {
30615f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_w_hu_h((v4i32)_1, (v8u16)_2,
30625f757f3fSDimitry Andric                                                 (v8i16)_3);
30635f757f3fSDimitry Andric }
30645f757f3fSDimitry Andric 
30655f757f3fSDimitry Andric extern __inline
30665f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30675f757f3fSDimitry Andric     __lsx_vmaddwod_h_bu_b(__m128i _1, __m128i _2, __m128i _3) {
30685f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_h_bu_b((v8i16)_1, (v16u8)_2,
30695f757f3fSDimitry Andric                                                 (v16i8)_3);
30705f757f3fSDimitry Andric }
30715f757f3fSDimitry Andric 
30725f757f3fSDimitry Andric extern __inline
30735f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30745f757f3fSDimitry Andric     __lsx_vmaddwev_q_d(__m128i _1, __m128i _2, __m128i _3) {
30755f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_q_d((v2i64)_1, (v2i64)_2, (v2i64)_3);
30765f757f3fSDimitry Andric }
30775f757f3fSDimitry Andric 
30785f757f3fSDimitry Andric extern __inline
30795f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30805f757f3fSDimitry Andric     __lsx_vmaddwod_q_d(__m128i _1, __m128i _2, __m128i _3) {
30815f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_q_d((v2i64)_1, (v2i64)_2, (v2i64)_3);
30825f757f3fSDimitry Andric }
30835f757f3fSDimitry Andric 
30845f757f3fSDimitry Andric extern __inline
30855f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30865f757f3fSDimitry Andric     __lsx_vmaddwev_q_du(__m128i _1, __m128i _2, __m128i _3) {
30875f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_q_du((v2u64)_1, (v2u64)_2, (v2u64)_3);
30885f757f3fSDimitry Andric }
30895f757f3fSDimitry Andric 
30905f757f3fSDimitry Andric extern __inline
30915f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30925f757f3fSDimitry Andric     __lsx_vmaddwod_q_du(__m128i _1, __m128i _2, __m128i _3) {
30935f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_q_du((v2u64)_1, (v2u64)_2, (v2u64)_3);
30945f757f3fSDimitry Andric }
30955f757f3fSDimitry Andric 
30965f757f3fSDimitry Andric extern __inline
30975f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
30985f757f3fSDimitry Andric     __lsx_vmaddwev_q_du_d(__m128i _1, __m128i _2, __m128i _3) {
30995f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwev_q_du_d((v2i64)_1, (v2u64)_2,
31005f757f3fSDimitry Andric                                                 (v2i64)_3);
31015f757f3fSDimitry Andric }
31025f757f3fSDimitry Andric 
31035f757f3fSDimitry Andric extern __inline
31045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31055f757f3fSDimitry Andric     __lsx_vmaddwod_q_du_d(__m128i _1, __m128i _2, __m128i _3) {
31065f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmaddwod_q_du_d((v2i64)_1, (v2u64)_2,
31075f757f3fSDimitry Andric                                                 (v2i64)_3);
31085f757f3fSDimitry Andric }
31095f757f3fSDimitry Andric 
31105f757f3fSDimitry Andric extern __inline
31115f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31125f757f3fSDimitry Andric     __lsx_vrotr_b(__m128i _1, __m128i _2) {
31135f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vrotr_b((v16i8)_1, (v16i8)_2);
31145f757f3fSDimitry Andric }
31155f757f3fSDimitry Andric 
31165f757f3fSDimitry Andric extern __inline
31175f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31185f757f3fSDimitry Andric     __lsx_vrotr_h(__m128i _1, __m128i _2) {
31195f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vrotr_h((v8i16)_1, (v8i16)_2);
31205f757f3fSDimitry Andric }
31215f757f3fSDimitry Andric 
31225f757f3fSDimitry Andric extern __inline
31235f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31245f757f3fSDimitry Andric     __lsx_vrotr_w(__m128i _1, __m128i _2) {
31255f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vrotr_w((v4i32)_1, (v4i32)_2);
31265f757f3fSDimitry Andric }
31275f757f3fSDimitry Andric 
31285f757f3fSDimitry Andric extern __inline
31295f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31305f757f3fSDimitry Andric     __lsx_vrotr_d(__m128i _1, __m128i _2) {
31315f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vrotr_d((v2i64)_1, (v2i64)_2);
31325f757f3fSDimitry Andric }
31335f757f3fSDimitry Andric 
31345f757f3fSDimitry Andric extern __inline
31355f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31365f757f3fSDimitry Andric     __lsx_vadd_q(__m128i _1, __m128i _2) {
31375f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vadd_q((v2i64)_1, (v2i64)_2);
31385f757f3fSDimitry Andric }
31395f757f3fSDimitry Andric 
31405f757f3fSDimitry Andric extern __inline
31415f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31425f757f3fSDimitry Andric     __lsx_vsub_q(__m128i _1, __m128i _2) {
31435f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vsub_q((v2i64)_1, (v2i64)_2);
31445f757f3fSDimitry Andric }
31455f757f3fSDimitry Andric 
31465f757f3fSDimitry Andric #define __lsx_vldrepl_b(/*void **/ _1, /*si12*/ _2)                            \
31475f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vldrepl_b((void const *)(_1), (_2)))
31485f757f3fSDimitry Andric 
31495f757f3fSDimitry Andric #define __lsx_vldrepl_h(/*void **/ _1, /*si11*/ _2)                            \
31505f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vldrepl_h((void const *)(_1), (_2)))
31515f757f3fSDimitry Andric 
31525f757f3fSDimitry Andric #define __lsx_vldrepl_w(/*void **/ _1, /*si10*/ _2)                            \
31535f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vldrepl_w((void const *)(_1), (_2)))
31545f757f3fSDimitry Andric 
31555f757f3fSDimitry Andric #define __lsx_vldrepl_d(/*void **/ _1, /*si9*/ _2)                             \
31565f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vldrepl_d((void const *)(_1), (_2)))
31575f757f3fSDimitry Andric 
31585f757f3fSDimitry Andric extern __inline
31595f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31605f757f3fSDimitry Andric     __lsx_vmskgez_b(__m128i _1) {
31615f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmskgez_b((v16i8)_1);
31625f757f3fSDimitry Andric }
31635f757f3fSDimitry Andric 
31645f757f3fSDimitry Andric extern __inline
31655f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31665f757f3fSDimitry Andric     __lsx_vmsknz_b(__m128i _1) {
31675f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vmsknz_b((v16i8)_1);
31685f757f3fSDimitry Andric }
31695f757f3fSDimitry Andric 
31705f757f3fSDimitry Andric extern __inline
31715f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31725f757f3fSDimitry Andric     __lsx_vexth_h_b(__m128i _1) {
31735f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_h_b((v16i8)_1);
31745f757f3fSDimitry Andric }
31755f757f3fSDimitry Andric 
31765f757f3fSDimitry Andric extern __inline
31775f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31785f757f3fSDimitry Andric     __lsx_vexth_w_h(__m128i _1) {
31795f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_w_h((v8i16)_1);
31805f757f3fSDimitry Andric }
31815f757f3fSDimitry Andric 
31825f757f3fSDimitry Andric extern __inline
31835f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31845f757f3fSDimitry Andric     __lsx_vexth_d_w(__m128i _1) {
31855f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_d_w((v4i32)_1);
31865f757f3fSDimitry Andric }
31875f757f3fSDimitry Andric 
31885f757f3fSDimitry Andric extern __inline
31895f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31905f757f3fSDimitry Andric     __lsx_vexth_q_d(__m128i _1) {
31915f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_q_d((v2i64)_1);
31925f757f3fSDimitry Andric }
31935f757f3fSDimitry Andric 
31945f757f3fSDimitry Andric extern __inline
31955f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
31965f757f3fSDimitry Andric     __lsx_vexth_hu_bu(__m128i _1) {
31975f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_hu_bu((v16u8)_1);
31985f757f3fSDimitry Andric }
31995f757f3fSDimitry Andric 
32005f757f3fSDimitry Andric extern __inline
32015f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
32025f757f3fSDimitry Andric     __lsx_vexth_wu_hu(__m128i _1) {
32035f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_wu_hu((v8u16)_1);
32045f757f3fSDimitry Andric }
32055f757f3fSDimitry Andric 
32065f757f3fSDimitry Andric extern __inline
32075f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
32085f757f3fSDimitry Andric     __lsx_vexth_du_wu(__m128i _1) {
32095f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_du_wu((v4u32)_1);
32105f757f3fSDimitry Andric }
32115f757f3fSDimitry Andric 
32125f757f3fSDimitry Andric extern __inline
32135f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
32145f757f3fSDimitry Andric     __lsx_vexth_qu_du(__m128i _1) {
32155f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vexth_qu_du((v2u64)_1);
32165f757f3fSDimitry Andric }
32175f757f3fSDimitry Andric 
32185f757f3fSDimitry Andric #define __lsx_vrotri_b(/*__m128i*/ _1, /*ui3*/ _2)                             \
32195f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vrotri_b((v16i8)(_1), (_2)))
32205f757f3fSDimitry Andric 
32215f757f3fSDimitry Andric #define __lsx_vrotri_h(/*__m128i*/ _1, /*ui4*/ _2)                             \
32225f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vrotri_h((v8i16)(_1), (_2)))
32235f757f3fSDimitry Andric 
32245f757f3fSDimitry Andric #define __lsx_vrotri_w(/*__m128i*/ _1, /*ui5*/ _2)                             \
32255f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vrotri_w((v4i32)(_1), (_2)))
32265f757f3fSDimitry Andric 
32275f757f3fSDimitry Andric #define __lsx_vrotri_d(/*__m128i*/ _1, /*ui6*/ _2)                             \
32285f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vrotri_d((v2i64)(_1), (_2)))
32295f757f3fSDimitry Andric 
32305f757f3fSDimitry Andric extern __inline
32315f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
32325f757f3fSDimitry Andric     __lsx_vextl_q_d(__m128i _1) {
32335f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vextl_q_d((v2i64)_1);
32345f757f3fSDimitry Andric }
32355f757f3fSDimitry Andric 
32365f757f3fSDimitry Andric #define __lsx_vsrlni_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)           \
32375f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlni_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
32385f757f3fSDimitry Andric 
32395f757f3fSDimitry Andric #define __lsx_vsrlni_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)           \
32405f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlni_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
32415f757f3fSDimitry Andric 
32425f757f3fSDimitry Andric #define __lsx_vsrlni_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)           \
32435f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlni_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
32445f757f3fSDimitry Andric 
32455f757f3fSDimitry Andric #define __lsx_vsrlni_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)           \
32465f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlni_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
32475f757f3fSDimitry Andric 
32485f757f3fSDimitry Andric #define __lsx_vsrlrni_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)          \
32495f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlrni_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
32505f757f3fSDimitry Andric 
32515f757f3fSDimitry Andric #define __lsx_vsrlrni_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)          \
32525f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlrni_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
32535f757f3fSDimitry Andric 
32545f757f3fSDimitry Andric #define __lsx_vsrlrni_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)          \
32555f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlrni_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
32565f757f3fSDimitry Andric 
32575f757f3fSDimitry Andric #define __lsx_vsrlrni_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)          \
32585f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrlrni_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
32595f757f3fSDimitry Andric 
32605f757f3fSDimitry Andric #define __lsx_vssrlni_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)          \
32615f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
32625f757f3fSDimitry Andric 
32635f757f3fSDimitry Andric #define __lsx_vssrlni_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)          \
32645f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
32655f757f3fSDimitry Andric 
32665f757f3fSDimitry Andric #define __lsx_vssrlni_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)          \
32675f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
32685f757f3fSDimitry Andric 
32695f757f3fSDimitry Andric #define __lsx_vssrlni_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)          \
32705f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
32715f757f3fSDimitry Andric 
32725f757f3fSDimitry Andric #define __lsx_vssrlni_bu_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)         \
32735f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_bu_h((v16u8)(_1), (v16i8)(_2), (_3)))
32745f757f3fSDimitry Andric 
32755f757f3fSDimitry Andric #define __lsx_vssrlni_hu_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)         \
32765f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_hu_w((v8u16)(_1), (v8i16)(_2), (_3)))
32775f757f3fSDimitry Andric 
32785f757f3fSDimitry Andric #define __lsx_vssrlni_wu_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)         \
32795f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_wu_d((v4u32)(_1), (v4i32)(_2), (_3)))
32805f757f3fSDimitry Andric 
32815f757f3fSDimitry Andric #define __lsx_vssrlni_du_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)         \
32825f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlni_du_q((v2u64)(_1), (v2i64)(_2), (_3)))
32835f757f3fSDimitry Andric 
32845f757f3fSDimitry Andric #define __lsx_vssrlrni_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)         \
32855f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
32865f757f3fSDimitry Andric 
32875f757f3fSDimitry Andric #define __lsx_vssrlrni_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)         \
32885f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
32895f757f3fSDimitry Andric 
32905f757f3fSDimitry Andric #define __lsx_vssrlrni_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)         \
32915f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
32925f757f3fSDimitry Andric 
32935f757f3fSDimitry Andric #define __lsx_vssrlrni_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)         \
32945f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
32955f757f3fSDimitry Andric 
32965f757f3fSDimitry Andric #define __lsx_vssrlrni_bu_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)        \
32975f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_bu_h((v16u8)(_1), (v16i8)(_2), (_3)))
32985f757f3fSDimitry Andric 
32995f757f3fSDimitry Andric #define __lsx_vssrlrni_hu_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)        \
33005f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_hu_w((v8u16)(_1), (v8i16)(_2), (_3)))
33015f757f3fSDimitry Andric 
33025f757f3fSDimitry Andric #define __lsx_vssrlrni_wu_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)        \
33035f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_wu_d((v4u32)(_1), (v4i32)(_2), (_3)))
33045f757f3fSDimitry Andric 
33055f757f3fSDimitry Andric #define __lsx_vssrlrni_du_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)        \
33065f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrlrni_du_q((v2u64)(_1), (v2i64)(_2), (_3)))
33075f757f3fSDimitry Andric 
33085f757f3fSDimitry Andric #define __lsx_vsrani_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)           \
33095f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrani_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
33105f757f3fSDimitry Andric 
33115f757f3fSDimitry Andric #define __lsx_vsrani_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)           \
33125f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrani_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
33135f757f3fSDimitry Andric 
33145f757f3fSDimitry Andric #define __lsx_vsrani_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)           \
33155f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrani_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
33165f757f3fSDimitry Andric 
33175f757f3fSDimitry Andric #define __lsx_vsrani_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)           \
33185f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrani_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
33195f757f3fSDimitry Andric 
33205f757f3fSDimitry Andric #define __lsx_vsrarni_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)          \
33215f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrarni_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
33225f757f3fSDimitry Andric 
33235f757f3fSDimitry Andric #define __lsx_vsrarni_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)          \
33245f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrarni_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
33255f757f3fSDimitry Andric 
33265f757f3fSDimitry Andric #define __lsx_vsrarni_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)          \
33275f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrarni_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
33285f757f3fSDimitry Andric 
33295f757f3fSDimitry Andric #define __lsx_vsrarni_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)          \
33305f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vsrarni_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
33315f757f3fSDimitry Andric 
33325f757f3fSDimitry Andric #define __lsx_vssrani_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)          \
33335f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
33345f757f3fSDimitry Andric 
33355f757f3fSDimitry Andric #define __lsx_vssrani_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)          \
33365f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
33375f757f3fSDimitry Andric 
33385f757f3fSDimitry Andric #define __lsx_vssrani_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)          \
33395f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
33405f757f3fSDimitry Andric 
33415f757f3fSDimitry Andric #define __lsx_vssrani_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)          \
33425f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
33435f757f3fSDimitry Andric 
33445f757f3fSDimitry Andric #define __lsx_vssrani_bu_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)         \
33455f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_bu_h((v16u8)(_1), (v16i8)(_2), (_3)))
33465f757f3fSDimitry Andric 
33475f757f3fSDimitry Andric #define __lsx_vssrani_hu_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)         \
33485f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_hu_w((v8u16)(_1), (v8i16)(_2), (_3)))
33495f757f3fSDimitry Andric 
33505f757f3fSDimitry Andric #define __lsx_vssrani_wu_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)         \
33515f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_wu_d((v4u32)(_1), (v4i32)(_2), (_3)))
33525f757f3fSDimitry Andric 
33535f757f3fSDimitry Andric #define __lsx_vssrani_du_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)         \
33545f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrani_du_q((v2u64)(_1), (v2i64)(_2), (_3)))
33555f757f3fSDimitry Andric 
33565f757f3fSDimitry Andric #define __lsx_vssrarni_b_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)         \
33575f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_b_h((v16i8)(_1), (v16i8)(_2), (_3)))
33585f757f3fSDimitry Andric 
33595f757f3fSDimitry Andric #define __lsx_vssrarni_h_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)         \
33605f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_h_w((v8i16)(_1), (v8i16)(_2), (_3)))
33615f757f3fSDimitry Andric 
33625f757f3fSDimitry Andric #define __lsx_vssrarni_w_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)         \
33635f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_w_d((v4i32)(_1), (v4i32)(_2), (_3)))
33645f757f3fSDimitry Andric 
33655f757f3fSDimitry Andric #define __lsx_vssrarni_d_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)         \
33665f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_d_q((v2i64)(_1), (v2i64)(_2), (_3)))
33675f757f3fSDimitry Andric 
33685f757f3fSDimitry Andric #define __lsx_vssrarni_bu_h(/*__m128i*/ _1, /*__m128i*/ _2, /*ui4*/ _3)        \
33695f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_bu_h((v16u8)(_1), (v16i8)(_2), (_3)))
33705f757f3fSDimitry Andric 
33715f757f3fSDimitry Andric #define __lsx_vssrarni_hu_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui5*/ _3)        \
33725f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_hu_w((v8u16)(_1), (v8i16)(_2), (_3)))
33735f757f3fSDimitry Andric 
33745f757f3fSDimitry Andric #define __lsx_vssrarni_wu_d(/*__m128i*/ _1, /*__m128i*/ _2, /*ui6*/ _3)        \
33755f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_wu_d((v4u32)(_1), (v4i32)(_2), (_3)))
33765f757f3fSDimitry Andric 
33775f757f3fSDimitry Andric #define __lsx_vssrarni_du_q(/*__m128i*/ _1, /*__m128i*/ _2, /*ui7*/ _3)        \
33785f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vssrarni_du_q((v2u64)(_1), (v2i64)(_2), (_3)))
33795f757f3fSDimitry Andric 
33805f757f3fSDimitry Andric #define __lsx_vpermi_w(/*__m128i*/ _1, /*__m128i*/ _2, /*ui8*/ _3)             \
33815f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vpermi_w((v4i32)(_1), (v4i32)(_2), (_3)))
33825f757f3fSDimitry Andric 
33835f757f3fSDimitry Andric #define __lsx_vld(/*void **/ _1, /*si12*/ _2)                                  \
33845f757f3fSDimitry Andric   ((__m128i)__builtin_lsx_vld((void const *)(_1), (_2)))
33855f757f3fSDimitry Andric 
33865f757f3fSDimitry Andric #define __lsx_vst(/*__m128i*/ _1, /*void **/ _2, /*si12*/ _3)                  \
33875f757f3fSDimitry Andric   ((void)__builtin_lsx_vst((v16i8)(_1), (void *)(_2), (_3)))
33885f757f3fSDimitry Andric 
33895f757f3fSDimitry Andric extern __inline
33905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
33915f757f3fSDimitry Andric     __lsx_vssrlrn_b_h(__m128i _1, __m128i _2) {
33925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrlrn_b_h((v8i16)_1, (v8i16)_2);
33935f757f3fSDimitry Andric }
33945f757f3fSDimitry Andric 
33955f757f3fSDimitry Andric extern __inline
33965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
33975f757f3fSDimitry Andric     __lsx_vssrlrn_h_w(__m128i _1, __m128i _2) {
33985f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrlrn_h_w((v4i32)_1, (v4i32)_2);
33995f757f3fSDimitry Andric }
34005f757f3fSDimitry Andric 
34015f757f3fSDimitry Andric extern __inline
34025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34035f757f3fSDimitry Andric     __lsx_vssrlrn_w_d(__m128i _1, __m128i _2) {
34045f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrlrn_w_d((v2i64)_1, (v2i64)_2);
34055f757f3fSDimitry Andric }
34065f757f3fSDimitry Andric 
34075f757f3fSDimitry Andric extern __inline
34085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34095f757f3fSDimitry Andric     __lsx_vssrln_b_h(__m128i _1, __m128i _2) {
34105f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrln_b_h((v8i16)_1, (v8i16)_2);
34115f757f3fSDimitry Andric }
34125f757f3fSDimitry Andric 
34135f757f3fSDimitry Andric extern __inline
34145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34155f757f3fSDimitry Andric     __lsx_vssrln_h_w(__m128i _1, __m128i _2) {
34165f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrln_h_w((v4i32)_1, (v4i32)_2);
34175f757f3fSDimitry Andric }
34185f757f3fSDimitry Andric 
34195f757f3fSDimitry Andric extern __inline
34205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34215f757f3fSDimitry Andric     __lsx_vssrln_w_d(__m128i _1, __m128i _2) {
34225f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vssrln_w_d((v2i64)_1, (v2i64)_2);
34235f757f3fSDimitry Andric }
34245f757f3fSDimitry Andric 
34255f757f3fSDimitry Andric extern __inline
34265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34275f757f3fSDimitry Andric     __lsx_vorn_v(__m128i _1, __m128i _2) {
34285f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vorn_v((v16i8)_1, (v16i8)_2);
34295f757f3fSDimitry Andric }
34305f757f3fSDimitry Andric 
34315f757f3fSDimitry Andric #define __lsx_vldi(/*i13*/ _1) ((__m128i)__builtin_lsx_vldi((_1)))
34325f757f3fSDimitry Andric 
34335f757f3fSDimitry Andric extern __inline
34345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34355f757f3fSDimitry Andric     __lsx_vshuf_b(__m128i _1, __m128i _2, __m128i _3) {
34365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vshuf_b((v16i8)_1, (v16i8)_2, (v16i8)_3);
34375f757f3fSDimitry Andric }
34385f757f3fSDimitry Andric 
34395f757f3fSDimitry Andric extern __inline
34405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34415f757f3fSDimitry Andric     __lsx_vldx(void const *_1, long int _2) {
34425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vldx((void const *)_1, (long int)_2);
34435f757f3fSDimitry Andric }
34445f757f3fSDimitry Andric 
34455f757f3fSDimitry Andric extern __inline
34465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) void
34475f757f3fSDimitry Andric     __lsx_vstx(__m128i _1, void *_2, long int _3) {
34485f757f3fSDimitry Andric   return (void)__builtin_lsx_vstx((v16i8)_1, (void *)_2, (long int)_3);
34495f757f3fSDimitry Andric }
34505f757f3fSDimitry Andric 
34515f757f3fSDimitry Andric extern __inline
34525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34535f757f3fSDimitry Andric     __lsx_vextl_qu_du(__m128i _1) {
34545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vextl_qu_du((v2u64)_1);
34555f757f3fSDimitry Andric }
34565f757f3fSDimitry Andric 
34575f757f3fSDimitry Andric #define __lsx_bnz_b(/*__m128i*/ _1) ((int)__builtin_lsx_bnz_b((v16u8)(_1)))
34585f757f3fSDimitry Andric 
34595f757f3fSDimitry Andric #define __lsx_bnz_d(/*__m128i*/ _1) ((int)__builtin_lsx_bnz_d((v2u64)(_1)))
34605f757f3fSDimitry Andric 
34615f757f3fSDimitry Andric #define __lsx_bnz_h(/*__m128i*/ _1) ((int)__builtin_lsx_bnz_h((v8u16)(_1)))
34625f757f3fSDimitry Andric 
34635f757f3fSDimitry Andric #define __lsx_bnz_v(/*__m128i*/ _1) ((int)__builtin_lsx_bnz_v((v16u8)(_1)))
34645f757f3fSDimitry Andric 
34655f757f3fSDimitry Andric #define __lsx_bnz_w(/*__m128i*/ _1) ((int)__builtin_lsx_bnz_w((v4u32)(_1)))
34665f757f3fSDimitry Andric 
34675f757f3fSDimitry Andric #define __lsx_bz_b(/*__m128i*/ _1) ((int)__builtin_lsx_bz_b((v16u8)(_1)))
34685f757f3fSDimitry Andric 
34695f757f3fSDimitry Andric #define __lsx_bz_d(/*__m128i*/ _1) ((int)__builtin_lsx_bz_d((v2u64)(_1)))
34705f757f3fSDimitry Andric 
34715f757f3fSDimitry Andric #define __lsx_bz_h(/*__m128i*/ _1) ((int)__builtin_lsx_bz_h((v8u16)(_1)))
34725f757f3fSDimitry Andric 
34735f757f3fSDimitry Andric #define __lsx_bz_v(/*__m128i*/ _1) ((int)__builtin_lsx_bz_v((v16u8)(_1)))
34745f757f3fSDimitry Andric 
34755f757f3fSDimitry Andric #define __lsx_bz_w(/*__m128i*/ _1) ((int)__builtin_lsx_bz_w((v4u32)(_1)))
34765f757f3fSDimitry Andric 
34775f757f3fSDimitry Andric extern __inline
34785f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34795f757f3fSDimitry Andric     __lsx_vfcmp_caf_d(__m128d _1, __m128d _2) {
34805f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_caf_d((v2f64)_1, (v2f64)_2);
34815f757f3fSDimitry Andric }
34825f757f3fSDimitry Andric 
34835f757f3fSDimitry Andric extern __inline
34845f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34855f757f3fSDimitry Andric     __lsx_vfcmp_caf_s(__m128 _1, __m128 _2) {
34865f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_caf_s((v4f32)_1, (v4f32)_2);
34875f757f3fSDimitry Andric }
34885f757f3fSDimitry Andric 
34895f757f3fSDimitry Andric extern __inline
34905f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34915f757f3fSDimitry Andric     __lsx_vfcmp_ceq_d(__m128d _1, __m128d _2) {
34925f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_ceq_d((v2f64)_1, (v2f64)_2);
34935f757f3fSDimitry Andric }
34945f757f3fSDimitry Andric 
34955f757f3fSDimitry Andric extern __inline
34965f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
34975f757f3fSDimitry Andric     __lsx_vfcmp_ceq_s(__m128 _1, __m128 _2) {
34985f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_ceq_s((v4f32)_1, (v4f32)_2);
34995f757f3fSDimitry Andric }
35005f757f3fSDimitry Andric 
35015f757f3fSDimitry Andric extern __inline
35025f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35035f757f3fSDimitry Andric     __lsx_vfcmp_cle_d(__m128d _1, __m128d _2) {
35045f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cle_d((v2f64)_1, (v2f64)_2);
35055f757f3fSDimitry Andric }
35065f757f3fSDimitry Andric 
35075f757f3fSDimitry Andric extern __inline
35085f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35095f757f3fSDimitry Andric     __lsx_vfcmp_cle_s(__m128 _1, __m128 _2) {
35105f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cle_s((v4f32)_1, (v4f32)_2);
35115f757f3fSDimitry Andric }
35125f757f3fSDimitry Andric 
35135f757f3fSDimitry Andric extern __inline
35145f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35155f757f3fSDimitry Andric     __lsx_vfcmp_clt_d(__m128d _1, __m128d _2) {
35165f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_clt_d((v2f64)_1, (v2f64)_2);
35175f757f3fSDimitry Andric }
35185f757f3fSDimitry Andric 
35195f757f3fSDimitry Andric extern __inline
35205f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35215f757f3fSDimitry Andric     __lsx_vfcmp_clt_s(__m128 _1, __m128 _2) {
35225f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_clt_s((v4f32)_1, (v4f32)_2);
35235f757f3fSDimitry Andric }
35245f757f3fSDimitry Andric 
35255f757f3fSDimitry Andric extern __inline
35265f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35275f757f3fSDimitry Andric     __lsx_vfcmp_cne_d(__m128d _1, __m128d _2) {
35285f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cne_d((v2f64)_1, (v2f64)_2);
35295f757f3fSDimitry Andric }
35305f757f3fSDimitry Andric 
35315f757f3fSDimitry Andric extern __inline
35325f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35335f757f3fSDimitry Andric     __lsx_vfcmp_cne_s(__m128 _1, __m128 _2) {
35345f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cne_s((v4f32)_1, (v4f32)_2);
35355f757f3fSDimitry Andric }
35365f757f3fSDimitry Andric 
35375f757f3fSDimitry Andric extern __inline
35385f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35395f757f3fSDimitry Andric     __lsx_vfcmp_cor_d(__m128d _1, __m128d _2) {
35405f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cor_d((v2f64)_1, (v2f64)_2);
35415f757f3fSDimitry Andric }
35425f757f3fSDimitry Andric 
35435f757f3fSDimitry Andric extern __inline
35445f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35455f757f3fSDimitry Andric     __lsx_vfcmp_cor_s(__m128 _1, __m128 _2) {
35465f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cor_s((v4f32)_1, (v4f32)_2);
35475f757f3fSDimitry Andric }
35485f757f3fSDimitry Andric 
35495f757f3fSDimitry Andric extern __inline
35505f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35515f757f3fSDimitry Andric     __lsx_vfcmp_cueq_d(__m128d _1, __m128d _2) {
35525f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cueq_d((v2f64)_1, (v2f64)_2);
35535f757f3fSDimitry Andric }
35545f757f3fSDimitry Andric 
35555f757f3fSDimitry Andric extern __inline
35565f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35575f757f3fSDimitry Andric     __lsx_vfcmp_cueq_s(__m128 _1, __m128 _2) {
35585f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cueq_s((v4f32)_1, (v4f32)_2);
35595f757f3fSDimitry Andric }
35605f757f3fSDimitry Andric 
35615f757f3fSDimitry Andric extern __inline
35625f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35635f757f3fSDimitry Andric     __lsx_vfcmp_cule_d(__m128d _1, __m128d _2) {
35645f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cule_d((v2f64)_1, (v2f64)_2);
35655f757f3fSDimitry Andric }
35665f757f3fSDimitry Andric 
35675f757f3fSDimitry Andric extern __inline
35685f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35695f757f3fSDimitry Andric     __lsx_vfcmp_cule_s(__m128 _1, __m128 _2) {
35705f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cule_s((v4f32)_1, (v4f32)_2);
35715f757f3fSDimitry Andric }
35725f757f3fSDimitry Andric 
35735f757f3fSDimitry Andric extern __inline
35745f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35755f757f3fSDimitry Andric     __lsx_vfcmp_cult_d(__m128d _1, __m128d _2) {
35765f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cult_d((v2f64)_1, (v2f64)_2);
35775f757f3fSDimitry Andric }
35785f757f3fSDimitry Andric 
35795f757f3fSDimitry Andric extern __inline
35805f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35815f757f3fSDimitry Andric     __lsx_vfcmp_cult_s(__m128 _1, __m128 _2) {
35825f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cult_s((v4f32)_1, (v4f32)_2);
35835f757f3fSDimitry Andric }
35845f757f3fSDimitry Andric 
35855f757f3fSDimitry Andric extern __inline
35865f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35875f757f3fSDimitry Andric     __lsx_vfcmp_cun_d(__m128d _1, __m128d _2) {
35885f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cun_d((v2f64)_1, (v2f64)_2);
35895f757f3fSDimitry Andric }
35905f757f3fSDimitry Andric 
35915f757f3fSDimitry Andric extern __inline
35925f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35935f757f3fSDimitry Andric     __lsx_vfcmp_cune_d(__m128d _1, __m128d _2) {
35945f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cune_d((v2f64)_1, (v2f64)_2);
35955f757f3fSDimitry Andric }
35965f757f3fSDimitry Andric 
35975f757f3fSDimitry Andric extern __inline
35985f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
35995f757f3fSDimitry Andric     __lsx_vfcmp_cune_s(__m128 _1, __m128 _2) {
36005f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cune_s((v4f32)_1, (v4f32)_2);
36015f757f3fSDimitry Andric }
36025f757f3fSDimitry Andric 
36035f757f3fSDimitry Andric extern __inline
36045f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36055f757f3fSDimitry Andric     __lsx_vfcmp_cun_s(__m128 _1, __m128 _2) {
36065f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_cun_s((v4f32)_1, (v4f32)_2);
36075f757f3fSDimitry Andric }
36085f757f3fSDimitry Andric 
36095f757f3fSDimitry Andric extern __inline
36105f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36115f757f3fSDimitry Andric     __lsx_vfcmp_saf_d(__m128d _1, __m128d _2) {
36125f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_saf_d((v2f64)_1, (v2f64)_2);
36135f757f3fSDimitry Andric }
36145f757f3fSDimitry Andric 
36155f757f3fSDimitry Andric extern __inline
36165f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36175f757f3fSDimitry Andric     __lsx_vfcmp_saf_s(__m128 _1, __m128 _2) {
36185f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_saf_s((v4f32)_1, (v4f32)_2);
36195f757f3fSDimitry Andric }
36205f757f3fSDimitry Andric 
36215f757f3fSDimitry Andric extern __inline
36225f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36235f757f3fSDimitry Andric     __lsx_vfcmp_seq_d(__m128d _1, __m128d _2) {
36245f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_seq_d((v2f64)_1, (v2f64)_2);
36255f757f3fSDimitry Andric }
36265f757f3fSDimitry Andric 
36275f757f3fSDimitry Andric extern __inline
36285f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36295f757f3fSDimitry Andric     __lsx_vfcmp_seq_s(__m128 _1, __m128 _2) {
36305f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_seq_s((v4f32)_1, (v4f32)_2);
36315f757f3fSDimitry Andric }
36325f757f3fSDimitry Andric 
36335f757f3fSDimitry Andric extern __inline
36345f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36355f757f3fSDimitry Andric     __lsx_vfcmp_sle_d(__m128d _1, __m128d _2) {
36365f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sle_d((v2f64)_1, (v2f64)_2);
36375f757f3fSDimitry Andric }
36385f757f3fSDimitry Andric 
36395f757f3fSDimitry Andric extern __inline
36405f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36415f757f3fSDimitry Andric     __lsx_vfcmp_sle_s(__m128 _1, __m128 _2) {
36425f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sle_s((v4f32)_1, (v4f32)_2);
36435f757f3fSDimitry Andric }
36445f757f3fSDimitry Andric 
36455f757f3fSDimitry Andric extern __inline
36465f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36475f757f3fSDimitry Andric     __lsx_vfcmp_slt_d(__m128d _1, __m128d _2) {
36485f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_slt_d((v2f64)_1, (v2f64)_2);
36495f757f3fSDimitry Andric }
36505f757f3fSDimitry Andric 
36515f757f3fSDimitry Andric extern __inline
36525f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36535f757f3fSDimitry Andric     __lsx_vfcmp_slt_s(__m128 _1, __m128 _2) {
36545f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_slt_s((v4f32)_1, (v4f32)_2);
36555f757f3fSDimitry Andric }
36565f757f3fSDimitry Andric 
36575f757f3fSDimitry Andric extern __inline
36585f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36595f757f3fSDimitry Andric     __lsx_vfcmp_sne_d(__m128d _1, __m128d _2) {
36605f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sne_d((v2f64)_1, (v2f64)_2);
36615f757f3fSDimitry Andric }
36625f757f3fSDimitry Andric 
36635f757f3fSDimitry Andric extern __inline
36645f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36655f757f3fSDimitry Andric     __lsx_vfcmp_sne_s(__m128 _1, __m128 _2) {
36665f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sne_s((v4f32)_1, (v4f32)_2);
36675f757f3fSDimitry Andric }
36685f757f3fSDimitry Andric 
36695f757f3fSDimitry Andric extern __inline
36705f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36715f757f3fSDimitry Andric     __lsx_vfcmp_sor_d(__m128d _1, __m128d _2) {
36725f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sor_d((v2f64)_1, (v2f64)_2);
36735f757f3fSDimitry Andric }
36745f757f3fSDimitry Andric 
36755f757f3fSDimitry Andric extern __inline
36765f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36775f757f3fSDimitry Andric     __lsx_vfcmp_sor_s(__m128 _1, __m128 _2) {
36785f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sor_s((v4f32)_1, (v4f32)_2);
36795f757f3fSDimitry Andric }
36805f757f3fSDimitry Andric 
36815f757f3fSDimitry Andric extern __inline
36825f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36835f757f3fSDimitry Andric     __lsx_vfcmp_sueq_d(__m128d _1, __m128d _2) {
36845f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sueq_d((v2f64)_1, (v2f64)_2);
36855f757f3fSDimitry Andric }
36865f757f3fSDimitry Andric 
36875f757f3fSDimitry Andric extern __inline
36885f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36895f757f3fSDimitry Andric     __lsx_vfcmp_sueq_s(__m128 _1, __m128 _2) {
36905f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sueq_s((v4f32)_1, (v4f32)_2);
36915f757f3fSDimitry Andric }
36925f757f3fSDimitry Andric 
36935f757f3fSDimitry Andric extern __inline
36945f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
36955f757f3fSDimitry Andric     __lsx_vfcmp_sule_d(__m128d _1, __m128d _2) {
36965f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sule_d((v2f64)_1, (v2f64)_2);
36975f757f3fSDimitry Andric }
36985f757f3fSDimitry Andric 
36995f757f3fSDimitry Andric extern __inline
37005f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
37015f757f3fSDimitry Andric     __lsx_vfcmp_sule_s(__m128 _1, __m128 _2) {
37025f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sule_s((v4f32)_1, (v4f32)_2);
37035f757f3fSDimitry Andric }
37045f757f3fSDimitry Andric 
37055f757f3fSDimitry Andric extern __inline
37065f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
37075f757f3fSDimitry Andric     __lsx_vfcmp_sult_d(__m128d _1, __m128d _2) {
37085f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sult_d((v2f64)_1, (v2f64)_2);
37095f757f3fSDimitry Andric }
37105f757f3fSDimitry Andric 
37115f757f3fSDimitry Andric extern __inline
37125f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
37135f757f3fSDimitry Andric     __lsx_vfcmp_sult_s(__m128 _1, __m128 _2) {
37145f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sult_s((v4f32)_1, (v4f32)_2);
37155f757f3fSDimitry Andric }
37165f757f3fSDimitry Andric 
37175f757f3fSDimitry Andric extern __inline
37185f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
37195f757f3fSDimitry Andric     __lsx_vfcmp_sun_d(__m128d _1, __m128d _2) {
37205f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sun_d((v2f64)_1, (v2f64)_2);
37215f757f3fSDimitry Andric }
37225f757f3fSDimitry Andric 
37235f757f3fSDimitry Andric extern __inline
37245f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
37255f757f3fSDimitry Andric     __lsx_vfcmp_sune_d(__m128d _1, __m128d _2) {
37265f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sune_d((v2f64)_1, (v2f64)_2);
37275f757f3fSDimitry Andric }
37285f757f3fSDimitry Andric 
37295f757f3fSDimitry Andric extern __inline
37305f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
37315f757f3fSDimitry Andric     __lsx_vfcmp_sune_s(__m128 _1, __m128 _2) {
37325f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sune_s((v4f32)_1, (v4f32)_2);
37335f757f3fSDimitry Andric }
37345f757f3fSDimitry Andric 
37355f757f3fSDimitry Andric extern __inline
37365f757f3fSDimitry Andric     __attribute__((__gnu_inline__, __always_inline__, __artificial__)) __m128i
37375f757f3fSDimitry Andric     __lsx_vfcmp_sun_s(__m128 _1, __m128 _2) {
37385f757f3fSDimitry Andric   return (__m128i)__builtin_lsx_vfcmp_sun_s((v4f32)_1, (v4f32)_2);
37395f757f3fSDimitry Andric }
37405f757f3fSDimitry Andric 
37415f757f3fSDimitry Andric #define __lsx_vrepli_b(/*si10*/ _1) ((__m128i)__builtin_lsx_vrepli_b((_1)))
37425f757f3fSDimitry Andric 
37435f757f3fSDimitry Andric #define __lsx_vrepli_d(/*si10*/ _1) ((__m128i)__builtin_lsx_vrepli_d((_1)))
37445f757f3fSDimitry Andric 
37455f757f3fSDimitry Andric #define __lsx_vrepli_h(/*si10*/ _1) ((__m128i)__builtin_lsx_vrepli_h((_1)))
37465f757f3fSDimitry Andric 
37475f757f3fSDimitry Andric #define __lsx_vrepli_w(/*si10*/ _1) ((__m128i)__builtin_lsx_vrepli_w((_1)))
37485f757f3fSDimitry Andric 
37495f757f3fSDimitry Andric #endif /* defined(__loongarch_sx) */
37505f757f3fSDimitry Andric #endif /* _LOONGSON_SXINTRIN_H */
3751