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