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