diff --git a/clang/include/clang/Basic/BuiltinsLoongArchLASX.def b/clang/include/clang/Basic/BuiltinsLoongArchLASX.def index a5eee613d5c9..bf6aceeb8a72 100644 --- a/clang/include/clang/Basic/BuiltinsLoongArchLASX.def +++ b/clang/include/clang/Basic/BuiltinsLoongArchLASX.def @@ -512,15 +512,15 @@ TARGET_BUILTIN(__builtin_lasx_xvssrani_h_w, "V16sV16sV16sIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvssrani_w_d, "V8iV8iV8iIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvssrani_d_q, "V4LLiV4LLiV4LLiIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlrni_bu_h, "V32ScV32ScV32ScIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlrni_hu_w, "V16sV16sV16sIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlrni_wu_d, "V8iV8iV8iIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlrni_du_q, "V4LLiV4LLiV4LLiIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlrni_bu_h, "V32ScV32UcV32ScIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlrni_hu_w, "V16sV16UsV16sIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlrni_wu_d, "V8iV8UiV8iIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlrni_du_q, "V4LLiV4ULLiV4LLiIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrani_bu_h, "V32ScV32ScV32ScIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrani_hu_w, "V16sV16sV16sIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrani_wu_d, "V8iV8iV8iIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrani_du_q, "V4LLiV4LLiV4LLiIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrani_bu_h, "V32ScV32UcV32ScIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrani_hu_w, "V16sV16UsV16sIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrani_wu_d, "V8iV8UiV8iIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrani_du_q, "V4LLiV4ULLiV4LLiIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvssrlrn_b_h, "V32ScV16sV16s", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvssrlrn_h_w, "V16sV8SiV8Si", "nc", "lasx") @@ -548,15 +548,15 @@ TARGET_BUILTIN(__builtin_lasx_xvssrarni_h_w, "V16sV16sV16sIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvssrarni_w_d, "V8iV8iV8iIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvssrarni_d_q, "V4LLiV4LLiV4LLiIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlni_bu_h, "V32ScV32ScV32ScIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlni_hu_w, "V16sV16sV16sIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlni_wu_d, "V8iV8iV8iIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrlni_du_q, "V4LLiV4LLiV4LLiIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlni_bu_h, "V32ScV32UcV32ScIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlni_hu_w, "V16sV16UsV16sIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlni_wu_d, "V8iV8UiV8iIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrlni_du_q, "V4LLiV4ULLiV4LLiIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrarni_bu_h, "V32ScV32ScV32ScIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrarni_hu_w, "V16sV16sV16sIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrarni_wu_d, "V8iV8iV8iIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvssrarni_du_q, "V4LLiV4LLiV4LLiIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrarni_bu_h, "V32UcV32UcV32ScIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrarni_hu_w, "V16sV16UsV16sIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrarni_wu_d, "V8iV8UiV8iIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvssrarni_du_q, "V4LLiV4ULLiV4LLiIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvclo_b, "V32ScV32Sc", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvclo_h, "V16SsV16Ss", "nc", "lasx") @@ -874,8 +874,8 @@ TARGET_BUILTIN(__builtin_lasx_xvinsgr2vr_d, "V4SLLiV4SLLiLLiIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvpickve2gr_w, "iV8SiIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvpickve2gr_d, "LLiV4SLLiIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvpickve2gr_wu, "iV8UiIUi", "nc", "lasx") -TARGET_BUILTIN(__builtin_lasx_xvpickve2gr_du, "LLiV4ULLiIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvpickve2gr_wu, "iV8iIUi", "nc", "lasx") +TARGET_BUILTIN(__builtin_lasx_xvpickve2gr_du, "LLiV4LLiIUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvreplve_b, "V32ScV32ScUi", "nc", "lasx") TARGET_BUILTIN(__builtin_lasx_xvreplve_h, "V16sV16sUi", "nc", "lasx") diff --git a/clang/include/clang/Basic/BuiltinsLoongArchLSX.def b/clang/include/clang/Basic/BuiltinsLoongArchLSX.def index a823783af88c..85c36617311e 100644 --- a/clang/include/clang/Basic/BuiltinsLoongArchLSX.def +++ b/clang/include/clang/Basic/BuiltinsLoongArchLSX.def @@ -496,15 +496,15 @@ TARGET_BUILTIN(__builtin_lsx_vssrani_h_w, "V8sV8sV8sIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vssrani_w_d, "V4iV4iV4iIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vssrani_d_q, "V2LLiV2LLiV2LLiIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlrni_bu_h, "V16ScV16ScV16ScIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlrni_hu_w, "V8sV8sV8sIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlrni_wu_d, "V4iV4iV4iIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlrni_du_q, "V2LLiV2LLiV2LLiIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlrni_bu_h, "V16ScV16UcV16ScIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlrni_hu_w, "V8sV8UsV8sIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlrni_wu_d, "V4iV4UiV4iIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlrni_du_q, "V2LLiV2ULLiV2LLiIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrani_bu_h, "V16ScV16ScV16ScIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrani_hu_w, "V8sV8sV8sIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrani_wu_d, "V4iV4iV4iIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrani_du_q, "V2LLiV2LLiV2LLiIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrani_bu_h, "V16ScV16UcV16ScIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrani_hu_w, "V8sV8UsV8sIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrani_wu_d, "V4iV4UiV4iIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrani_du_q, "V2LLiV2ULLiV2LLiIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vssrlrn_b_h, "V16ScV8sV8s", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vssrlrn_h_w, "V8sV4SiV4Si", "nc", "lsx") @@ -532,15 +532,15 @@ TARGET_BUILTIN(__builtin_lsx_vssrarni_h_w, "V8sV8sV8sIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vssrarni_w_d, "V4iV4iV4iIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vssrarni_d_q, "V2LLiV2LLiV2LLiIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlni_bu_h, "V16ScV16ScV16ScIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlni_hu_w, "V8sV8sV8sIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlni_wu_d, "V4iV4iV4iIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrlni_du_q, "V2LLiV2LLiV2LLiIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlni_bu_h, "V16ScV16UcV16ScIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlni_hu_w, "V8sV8UsV8sIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlni_wu_d, "V4iV4UiV4iIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrlni_du_q, "V2LLiV2ULLiV2LLiIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrarni_bu_h, "V16ScV16ScV16ScIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrarni_hu_w, "V8sV8sV8sIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrarni_wu_d, "V4iV4iV4iIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vssrarni_du_q, "V2LLiV2LLiV2LLiIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrarni_bu_h, "V16ScV16UcV16ScIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrarni_hu_w, "V8sV8UsV8sIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrarni_wu_d, "V4iV4UiV4iIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vssrarni_du_q, "V2LLiV2ULLiV2LLiIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vclo_b, "V16ScV16Sc", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vclo_h, "V8SsV8Ss", "nc", "lsx") @@ -862,10 +862,10 @@ TARGET_BUILTIN(__builtin_lsx_vpickve2gr_h, "iV8SsIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vpickve2gr_w, "iV4SiIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vpickve2gr_d, "LLiV2SLLiIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vpickve2gr_bu, "iV16UcIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vpickve2gr_hu, "iV8UsIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vpickve2gr_wu, "iV4UiIUi", "nc", "lsx") -TARGET_BUILTIN(__builtin_lsx_vpickve2gr_du, "LLiV2ULLiIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vpickve2gr_bu, "iV16ScIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vpickve2gr_hu, "iV8SsIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vpickve2gr_wu, "iV4SiIUi", "nc", "lsx") +TARGET_BUILTIN(__builtin_lsx_vpickve2gr_du, "LLiV2LLiIUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vreplve_b, "V16ScV16ScUi", "nc", "lsx") TARGET_BUILTIN(__builtin_lsx_vreplve_h, "V8sV8sUi", "nc", "lsx") diff --git a/clang/test/CodeGen/LoongArch/lasx/lasxintrin-lax-vector-conversions.c b/clang/test/CodeGen/LoongArch/lasx/lasxintrin-lax-vector-conversions.c new file mode 100644 index 000000000000..d0a753ed84af --- /dev/null +++ b/clang/test/CodeGen/LoongArch/lasx/lasxintrin-lax-vector-conversions.c @@ -0,0 +1,528 @@ +// RUN: %clang_cc1 %s -fsyntax-only -triple loongarch64 -target-feature +lasx +// RUN: %clang_cc1 %s -fsyntax-only -triple loongarch64 -target-feature +lasx -flax-vector-conversions=none +// RUN: %clang_cc1 %s -fsyntax-only -triple loongarch64 -target-feature +lasx -flax-vector-conversions=none -fno-signed-char + +// This test file verifies that the macro-defined LASX intrinsic interfaces +// do not require implicit vector type conversions, allowing them to be +// compiled successfully with -flax-vector-conversions=none. +// +// It ensures that the built-in signatures are strictly aligned with the +// types expected by the intrinsic headers. + +#include + +__m256i xvslli_b(v32i8 _1) { return __lasx_xvslli_b(_1, 1); } + +__m256i xvslli_h(v16i16 _1) { return __lasx_xvslli_h(_1, 1); } + +__m256i xvslli_w(v8i32 _1) { return __lasx_xvslli_w(_1, 1); } + +__m256i xvslli_d(v4i64 _1) { return __lasx_xvslli_d(_1, 1); } + +__m256i xvsrai_b(v32i8 _1) { return __lasx_xvsrai_b(_1, 1); } + +__m256i xvsrai_h(v16i16 _1) { return __lasx_xvsrai_h(_1, 1); } + +__m256i xvsrai_w(v8i32 _1) { return __lasx_xvsrai_w(_1, 1); } + +__m256i xvsrai_d(v4i64 _1) { return __lasx_xvsrai_d(_1, 1); } + +__m256i xvsrari_b(v32i8 _1) { return __lasx_xvsrari_b(_1, 1); } + +__m256i xvsrari_h(v16i16 _1) { return __lasx_xvsrari_h(_1, 1); } + +__m256i xvsrari_w(v8i32 _1) { return __lasx_xvsrari_w(_1, 1); } + +__m256i xvsrari_d(v4i64 _1) { return __lasx_xvsrari_d(_1, 1); } + +__m256i xvsrli_b(v32i8 _1) { return __lasx_xvsrli_b(_1, 1); } + +__m256i xvsrli_h(v16i16 _1) { return __lasx_xvsrli_h(_1, 1); } + +__m256i xvsrli_w(v8i32 _1) { return __lasx_xvsrli_w(_1, 1); } + +__m256i xvsrli_d(v4i64 _1) { return __lasx_xvsrli_d(_1, 1); } + +__m256i xvsrlri_b(v32i8 _1) { return __lasx_xvsrlri_b(_1, 1); } + +__m256i xvsrlri_h(v16i16 _1) { return __lasx_xvsrlri_h(_1, 1); } + +__m256i xvsrlri_w(v8i32 _1) { return __lasx_xvsrlri_w(_1, 1); } + +__m256i xvsrlri_d(v4i64 _1) { return __lasx_xvsrlri_d(_1, 1); } + +__m256i xvbitclri_b(v32u8 _1) { return __lasx_xvbitclri_b(_1, 1); } + +__m256i xvbitclri_h(v16u16 _1) { return __lasx_xvbitclri_h(_1, 1); } + +__m256i xvbitclri_w(v8u32 _1) { return __lasx_xvbitclri_w(_1, 1); } + +__m256i xvbitclri_d(v4u64 _1) { return __lasx_xvbitclri_d(_1, 1); } + +__m256i xvbitseti_b(v32u8 _1) { return __lasx_xvbitseti_b(_1, 1); } + +__m256i xvbitseti_h(v16u16 _1) { return __lasx_xvbitseti_h(_1, 1); } + +__m256i xvbitseti_w(v8u32 _1) { return __lasx_xvbitseti_w(_1, 1); } + +__m256i xvbitseti_d(v4u64 _1) { return __lasx_xvbitseti_d(_1, 1); } + +__m256i xvbitrevi_b(v32u8 _1) { return __lasx_xvbitrevi_b(_1, 1); } + +__m256i xvbitrevi_h(v16u16 _1) { return __lasx_xvbitrevi_h(_1, 1); } + +__m256i xvbitrevi_w(v8u32 _1) { return __lasx_xvbitrevi_w(_1, 1); } + +__m256i xvbitrevi_d(v4u64 _1) { return __lasx_xvbitrevi_d(_1, 1); } + +__m256i xvaddi_bu(v32i8 _1) { return __lasx_xvaddi_bu(_1, 1); } + +__m256i xvaddi_hu(v16i16 _1) { return __lasx_xvaddi_hu(_1, 1); } + +__m256i xvaddi_wu(v8i32 _1) { return __lasx_xvaddi_wu(_1, 1); } + +__m256i xvaddi_du(v4i64 _1) { return __lasx_xvaddi_du(_1, 1); } + +__m256i xvsubi_bu(v32i8 _1) { return __lasx_xvsubi_bu(_1, 1); } + +__m256i xvsubi_hu(v16i16 _1) { return __lasx_xvsubi_hu(_1, 1); } + +__m256i xvsubi_wu(v8i32 _1) { return __lasx_xvsubi_wu(_1, 1); } + +__m256i xvsubi_du(v4i64 _1) { return __lasx_xvsubi_du(_1, 1); } + +__m256i xvmaxi_b(v32i8 _1) { return __lasx_xvmaxi_b(_1, 1); } + +__m256i xvmaxi_h(v16i16 _1) { return __lasx_xvmaxi_h(_1, 1); } + +__m256i xvmaxi_w(v8i32 _1) { return __lasx_xvmaxi_w(_1, 1); } + +__m256i xvmaxi_d(v4i64 _1) { return __lasx_xvmaxi_d(_1, 1); } + +__m256i xvmaxi_bu(v32u8 _1) { return __lasx_xvmaxi_bu(_1, 1); } + +__m256i xvmaxi_hu(v16u16 _1) { return __lasx_xvmaxi_hu(_1, 1); } + +__m256i xvmaxi_wu(v8u32 _1) { return __lasx_xvmaxi_wu(_1, 1); } + +__m256i xvmaxi_du(v4u64 _1) { return __lasx_xvmaxi_du(_1, 1); } + +__m256i xvmini_b(v32i8 _1) { return __lasx_xvmini_b(_1, 1); } + +__m256i xvmini_h(v16i16 _1) { return __lasx_xvmini_h(_1, 1); } + +__m256i xvmini_w(v8i32 _1) { return __lasx_xvmini_w(_1, 1); } + +__m256i xvmini_d(v4i64 _1) { return __lasx_xvmini_d(_1, 1); } + +__m256i xvmini_bu(v32u8 _1) { return __lasx_xvmini_bu(_1, 1); } + +__m256i xvmini_hu(v16u16 _1) { return __lasx_xvmini_hu(_1, 1); } + +__m256i xvmini_wu(v8u32 _1) { return __lasx_xvmini_wu(_1, 1); } + +__m256i xvmini_du(v4u64 _1) { return __lasx_xvmini_du(_1, 1); } + +__m256i xvseqi_b(v32i8 _1) { return __lasx_xvseqi_b(_1, 1); } + +__m256i xvseqi_h(v16i16 _1) { return __lasx_xvseqi_h(_1, 1); } + +__m256i xvseqi_w(v8i32 _1) { return __lasx_xvseqi_w(_1, 1); } + +__m256i xvseqi_d(v4i64 _1) { return __lasx_xvseqi_d(_1, 1); } + +__m256i xvslti_b(v32i8 _1) { return __lasx_xvslti_b(_1, 1); } + +__m256i xvslti_h(v16i16 _1) { return __lasx_xvslti_h(_1, 1); } + +__m256i xvslti_w(v8i32 _1) { return __lasx_xvslti_w(_1, 1); } + +__m256i xvslti_d(v4i64 _1) { return __lasx_xvslti_d(_1, 1); } + +__m256i xvslti_bu(v32u8 _1) { return __lasx_xvslti_bu(_1, 1); } + +__m256i xvslti_hu(v16u16 _1) { return __lasx_xvslti_hu(_1, 1); } + +__m256i xvslti_wu(v8u32 _1) { return __lasx_xvslti_wu(_1, 1); } + +__m256i xvslti_du(v4u64 _1) { return __lasx_xvslti_du(_1, 1); } + +__m256i xvslei_b(v32i8 _1) { return __lasx_xvslei_b(_1, 1); } + +__m256i xvslei_h(v16i16 _1) { return __lasx_xvslei_h(_1, 1); } + +__m256i xvslei_w(v8i32 _1) { return __lasx_xvslei_w(_1, 1); } + +__m256i xvslei_d(v4i64 _1) { return __lasx_xvslei_d(_1, 1); } + +__m256i xvslei_bu(v32u8 _1) { return __lasx_xvslei_bu(_1, 1); } + +__m256i xvslei_hu(v16u16 _1) { return __lasx_xvslei_hu(_1, 1); } + +__m256i xvslei_wu(v8u32 _1) { return __lasx_xvslei_wu(_1, 1); } + +__m256i xvslei_du(v4u64 _1) { return __lasx_xvslei_du(_1, 1); } + +__m256i xvsat_b(v32i8 _1) { return __lasx_xvsat_b(_1, 1); } + +__m256i xvsat_h(v16i16 _1) { return __lasx_xvsat_h(_1, 1); } + +__m256i xvsat_w(v8i32 _1) { return __lasx_xvsat_w(_1, 1); } + +__m256i xvsat_d(v4i64 _1) { return __lasx_xvsat_d(_1, 1); } + +__m256i xvsat_bu(v32u8 _1) { return __lasx_xvsat_bu(_1, 1); } + +__m256i xvsat_hu(v16u16 _1) { return __lasx_xvsat_hu(_1, 1); } + +__m256i xvsat_wu(v8u32 _1) { return __lasx_xvsat_wu(_1, 1); } + +__m256i xvsat_du(v4u64 _1) { return __lasx_xvsat_du(_1, 1); } + +__m256i xvrepl128vei_b(v32i8 _1) { return __lasx_xvrepl128vei_b(_1, 1); } + +__m256i xvrepl128vei_h(v16i16 _1) { return __lasx_xvrepl128vei_h(_1, 1); } + +__m256i xvrepl128vei_w(v8i32 _1) { return __lasx_xvrepl128vei_w(_1, 1); } + +__m256i xvrepl128vei_d(v4i64 _1) { return __lasx_xvrepl128vei_d(_1, 1); } + +__m256i xvandi_b(v32u8 _1) { return __lasx_xvandi_b(_1, 1); } + +__m256i xvori_b(v32u8 _1) { return __lasx_xvori_b(_1, 1); } + +__m256i xvnori_b(v32u8 _1) { return __lasx_xvnori_b(_1, 1); } + +__m256i xvxori_b(v32u8 _1) { return __lasx_xvxori_b(_1, 1); } + +__m256i xvbitseli_b(v32u8 _1, v32u8 _2) { + return __lasx_xvbitseli_b(_1, _2, 1); +} + +__m256i xvshuf4i_b(v32i8 _1) { return __lasx_xvshuf4i_b(_1, 1); } + +__m256i xvshuf4i_h(v16i16 _1) { return __lasx_xvshuf4i_h(_1, 1); } + +__m256i xvshuf4i_w(v8i32 _1) { return __lasx_xvshuf4i_w(_1, 1); } + +__m256i xvpermi_w(v8i32 _1, v8i32 _2) { return __lasx_xvpermi_w(_1, _2, 1); } + +__m256i xvsllwil_h_b(v32i8 _1) { return __lasx_xvsllwil_h_b(_1, 1); } + +__m256i xvsllwil_w_h(v16i16 _1) { return __lasx_xvsllwil_w_h(_1, 1); } + +__m256i xvsllwil_d_w(v8i32 _1) { return __lasx_xvsllwil_d_w(_1, 1); } + +__m256i xvsllwil_hu_bu(v32u8 _1) { return __lasx_xvsllwil_hu_bu(_1, 1); } + +__m256i xvsllwil_wu_hu(v16u16 _1) { return __lasx_xvsllwil_wu_hu(_1, 1); } + +__m256i xvsllwil_du_wu(v8u32 _1) { return __lasx_xvsllwil_du_wu(_1, 1); } + +__m256i xvfrstpi_b(v32i8 _1, v32i8 _2) { return __lasx_xvfrstpi_b(_1, _2, 1); } + +__m256i xvfrstpi_h(v16i16 _1, v16i16 _2) { + return __lasx_xvfrstpi_h(_1, _2, 1); +} + +__m256i xvshuf4i_d(v4i64 _1, v4i64 _2) { return __lasx_xvshuf4i_d(_1, _2, 1); } + +__m256i xvbsrl_v(v32i8 _1) { return __lasx_xvbsrl_v(_1, 1); } + +__m256i xvbsll_v(v32i8 _1) { return __lasx_xvbsll_v(_1, 1); } + +__m256i xvextrins_b(v32i8 _1, v32i8 _2) { + return __lasx_xvextrins_b(_1, _2, 1); +} + +__m256i xvextrins_h(v16i16 _1, v16i16 _2) { + return __lasx_xvextrins_h(_1, _2, 1); +} + +__m256i xvextrins_w(v8i32 _1, v8i32 _2) { + return __lasx_xvextrins_w(_1, _2, 1); +} + +__m256i xvextrins_d(v4i64 _1, v4i64 _2) { + return __lasx_xvextrins_d(_1, _2, 1); +} + +__m256i xvld(void *_1) { return __lasx_xvld(_1, 1); } + +void xvst(v32i8 _1, void *_2) { return __lasx_xvst(_1, _2, 1); } + +void xvstelm_b(v32i8 _1, void *_2) { return __lasx_xvstelm_b(_1, _2, 1, 1); } + +void xvstelm_h(v16i16 _1, void *_2) { return __lasx_xvstelm_h(_1, _2, 1, 1); } + +void xvstelm_w(v8i32 _1, void *_2) { return __lasx_xvstelm_w(_1, _2, 1, 1); } + +void xvstelm_d(v4i64 _1, void *_2) { return __lasx_xvstelm_d(_1, _2, 1, 1); } + +__m256i xvinsve0_w(v8i32 _1, v8i32 _2) { return __lasx_xvinsve0_w(_1, _2, 1); } + +__m256i xvinsve0_d(v4i64 _1, v4i64 _2) { return __lasx_xvinsve0_d(_1, _2, 1); } + +__m256i xvpickve_w(v8i32 _1) { return __lasx_xvpickve_w(_1, 1); } + +__m256i xvpickve_d(v4i64 _1) { return __lasx_xvpickve_d(_1, 1); } + +__m256i xvldi() { return __lasx_xvldi(1); } + +__m256i xvinsgr2vr_w(v8i32 _1) { return __lasx_xvinsgr2vr_w(_1, 1, 1); } + +__m256i xvinsgr2vr_d(v4i64 _1) { return __lasx_xvinsgr2vr_d(_1, 1, 1); } + +__m256i xvpermi_q(v32i8 _1, v32i8 _2) { return __lasx_xvpermi_q(_1, _2, 1); } + +__m256i xvpermi_d(v4i64 _1) { return __lasx_xvpermi_d(_1, 1); } + +__m256i xvldrepl_b(void *_1) { return __lasx_xvldrepl_b(_1, 1); } + +__m256i xvldrepl_h(void *_1) { return __lasx_xvldrepl_h(_1, 1); } + +__m256i xvldrepl_w(void *_1) { return __lasx_xvldrepl_w(_1, 1); } + +__m256i xvldrepl_d(void *_1) { return __lasx_xvldrepl_d(_1, 1); } + +int xvpickve2gr_w(v8i32 _1) { return __lasx_xvpickve2gr_w(_1, 1); } + +unsigned int xvpickve2gr_wu(v8i32 _1) { return __lasx_xvpickve2gr_wu(_1, 1); } + +long int xvpickve2gr_d(v4i64 _1) { return __lasx_xvpickve2gr_d(_1, 1); } + +unsigned long int xvpickve2gr_du(v4i64 _1) { + return __lasx_xvpickve2gr_du(_1, 1); +} + +__m256i xvrotri_b(v32i8 _1) { return __lasx_xvrotri_b(_1, 1); } + +__m256i xvrotri_h(v16i16 _1) { return __lasx_xvrotri_h(_1, 1); } + +__m256i xvrotri_w(v8i32 _1) { return __lasx_xvrotri_w(_1, 1); } + +__m256i xvrotri_d(v4i64 _1) { return __lasx_xvrotri_d(_1, 1); } + +__m256i xvsrlni_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvsrlni_b_h(_1, _2, 1); +} + +__m256i xvsrlni_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvsrlni_h_w(_1, _2, 1); +} + +__m256i xvsrlni_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvsrlni_w_d(_1, _2, 1); +} + +__m256i xvsrlni_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvsrlni_d_q(_1, _2, 1); +} + +__m256i xvsrlrni_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvsrlrni_b_h(_1, _2, 1); +} + +__m256i xvsrlrni_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvsrlrni_h_w(_1, _2, 1); +} + +__m256i xvsrlrni_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvsrlrni_w_d(_1, _2, 1); +} + +__m256i xvsrlrni_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvsrlrni_d_q(_1, _2, 1); +} + +__m256i xvssrlni_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvssrlni_b_h(_1, _2, 1); +} + +__m256i xvssrlni_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvssrlni_h_w(_1, _2, 1); +} + +__m256i xvssrlni_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvssrlni_w_d(_1, _2, 1); +} + +__m256i xvssrlni_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvssrlni_d_q(_1, _2, 1); +} + +__m256i xvssrlni_bu_h(v32u8 _1, v32i8 _2) { + return __lasx_xvssrlni_bu_h(_1, _2, 1); +} + +__m256i xvssrlni_hu_w(v16u16 _1, v16i16 _2) { + return __lasx_xvssrlni_hu_w(_1, _2, 1); +} + +__m256i xvssrlni_wu_d(v8u32 _1, v8i32 _2) { + return __lasx_xvssrlni_wu_d(_1, _2, 1); +} + +__m256i xvssrlni_du_q(v4u64 _1, v4i64 _2) { + return __lasx_xvssrlni_du_q(_1, _2, 1); +} + +__m256i xvssrlrni_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvssrlrni_b_h(_1, _2, 1); +} + +__m256i xvssrlrni_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvssrlrni_h_w(_1, _2, 1); +} + +__m256i xvssrlrni_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvssrlrni_w_d(_1, _2, 1); +} + +__m256i xvssrlrni_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvssrlrni_d_q(_1, _2, 1); +} + +__m256i xvssrlrni_bu_h(v32u8 _1, v32i8 _2) { + return __lasx_xvssrlrni_bu_h(_1, _2, 1); +} + +__m256i xvssrlrni_hu_w(v16u16 _1, v16i16 _2) { + return __lasx_xvssrlrni_hu_w(_1, _2, 1); +} + +__m256i xvssrlrni_wu_d(v8u32 _1, v8i32 _2) { + return __lasx_xvssrlrni_wu_d(_1, _2, 1); +} + +__m256i xvssrlrni_du_q(v4u64 _1, v4i64 _2) { + return __lasx_xvssrlrni_du_q(_1, _2, 1); +} + +__m256i xvsrani_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvsrani_b_h(_1, _2, 1); +} + +__m256i xvsrani_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvsrani_h_w(_1, _2, 1); +} + +__m256i xvsrani_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvsrani_w_d(_1, _2, 1); +} + +__m256i xvsrani_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvsrani_d_q(_1, _2, 1); +} + +__m256i xvsrarni_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvsrarni_b_h(_1, _2, 1); +} + +__m256i xvsrarni_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvsrarni_h_w(_1, _2, 1); +} + +__m256i xvsrarni_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvsrarni_w_d(_1, _2, 1); +} + +__m256i xvsrarni_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvsrarni_d_q(_1, _2, 1); +} + +__m256i xvssrani_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvssrani_b_h(_1, _2, 1); +} + +__m256i xvssrani_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvssrani_h_w(_1, _2, 1); +} + +__m256i xvssrani_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvssrani_w_d(_1, _2, 1); +} + +__m256i xvssrani_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvssrani_d_q(_1, _2, 1); +} + +__m256i xvssrani_bu_h(v32u8 _1, v32i8 _2) { + return __lasx_xvssrani_bu_h(_1, _2, 1); +} + +__m256i xvssrani_hu_w(v16u16 _1, v16i16 _2) { + return __lasx_xvssrani_hu_w(_1, _2, 1); +} + +__m256i xvssrani_wu_d(v8u32 _1, v8i32 _2) { + return __lasx_xvssrani_wu_d(_1, _2, 1); +} + +__m256i xvssrani_du_q(v4u64 _1, v4i64 _2) { + return __lasx_xvssrani_du_q(_1, _2, 1); +} + +__m256i xvssrarni_b_h(v32i8 _1, v32i8 _2) { + return __lasx_xvssrarni_b_h(_1, _2, 1); +} + +__m256i xvssrarni_h_w(v16i16 _1, v16i16 _2) { + return __lasx_xvssrarni_h_w(_1, _2, 1); +} + +__m256i xvssrarni_w_d(v8i32 _1, v8i32 _2) { + return __lasx_xvssrarni_w_d(_1, _2, 1); +} + +__m256i xvssrarni_d_q(v4i64 _1, v4i64 _2) { + return __lasx_xvssrarni_d_q(_1, _2, 1); +} + +__m256i xvssrarni_bu_h(v32u8 _1, v32i8 _2) { + return __lasx_xvssrarni_bu_h(_1, _2, 1); +} + +__m256i xvssrarni_hu_w(v16u16 _1, v16i16 _2) { + return __lasx_xvssrarni_hu_w(_1, _2, 1); +} + +__m256i xvssrarni_wu_d(v8u32 _1, v8i32 _2) { + return __lasx_xvssrarni_wu_d(_1, _2, 1); +} + +__m256i xvssrarni_du_q(v4u64 _1, v4i64 _2) { + return __lasx_xvssrarni_du_q(_1, _2, 1); +} + +int xbnz_b(v32u8 _1) { return __lasx_xbnz_b(_1); } + +int xbnz_d(v4u64 _1) { return __lasx_xbnz_d(_1); } + +int xbnz_h(v16u16 _1) { return __lasx_xbnz_h(_1); } + +int xbnz_v(v32u8 _1) { return __lasx_xbnz_v(_1); } + +int xbnz_w(v8u32 _1) { return __lasx_xbnz_w(_1); } + +int xbz_b(v32u8 _1) { return __lasx_xbz_b(_1); } + +int xbz_d(v4u64 _1) { return __lasx_xbz_d(_1); } + +int xbz_h(v16u16 _1) { return __lasx_xbz_h(_1); } + +int xbz_v(v32u8 _1) { return __lasx_xbz_v(_1); } + +int xbz_w(v8u32 _1) { return __lasx_xbz_w(_1); } + +__m256d xvpickve_d_f(v4f64 _1) { return __lasx_xvpickve_d_f(_1, 1); } + +__m256 xvpickve_w_f(v8f32 _1) { return __lasx_xvpickve_w_f(_1, 1); } + +__m256i xvrepli_b() { return __lasx_xvrepli_b(1); } + +__m256i xvrepli_d() { return __lasx_xvrepli_d(1); } + +__m256i xvrepli_h() { return __lasx_xvrepli_h(1); } + +__m256i xvrepli_w() { return __lasx_xvrepli_w(1); } diff --git a/clang/test/CodeGen/LoongArch/lsx/lsxintrin-lax-vector-conversions.c b/clang/test/CodeGen/LoongArch/lsx/lsxintrin-lax-vector-conversions.c new file mode 100644 index 000000000000..dcf387081719 --- /dev/null +++ b/clang/test/CodeGen/LoongArch/lsx/lsxintrin-lax-vector-conversions.c @@ -0,0 +1,463 @@ + +// RUN: %clang_cc1 %s -fsyntax-only -triple loongarch64 -target-feature +lsx +// RUN: %clang_cc1 %s -fsyntax-only -triple loongarch64 -target-feature +lsx -flax-vector-conversions=none +// RUN: %clang_cc1 %s -fsyntax-only -triple loongarch64 -target-feature +lsx -flax-vector-conversions=none -fno-signed-char + +// This test file verifies that the macro-defined LSX intrinsic interfaces +// do not require implicit vector type conversions, allowing them to be +// compiled successfully with -flax-vector-conversions=none. +// +// It ensures that the built-in signatures are strictly aligned with the +// types expected by the intrinsic headers. + +#include + +__m128i vslli_b(v16i8 _1) { return __lsx_vslli_b(_1, 1); } + +__m128i vslli_h(v8i16 _1) { return __lsx_vslli_h(_1, 1); } + +__m128i vslli_w(v4i32 _1) { return __lsx_vslli_w(_1, 1); } + +__m128i vslli_d(v2i64 _1) { return __lsx_vslli_d(_1, 1); } + +__m128i vsrai_b(v16i8 _1) { return __lsx_vsrai_b(_1, 1); } + +__m128i vsrai_h(v8i16 _1) { return __lsx_vsrai_h(_1, 1); } + +__m128i vsrai_w(v4i32 _1) { return __lsx_vsrai_w(_1, 1); } + +__m128i vsrai_d(v2i64 _1) { return __lsx_vsrai_d(_1, 1); } + +__m128i vsrari_b(v16i8 _1) { return __lsx_vsrari_b(_1, 1); } + +__m128i vsrari_h(v8i16 _1) { return __lsx_vsrari_h(_1, 1); } + +__m128i vsrari_w(v4i32 _1) { return __lsx_vsrari_w(_1, 1); } + +__m128i vsrari_d(v2i64 _1) { return __lsx_vsrari_d(_1, 1); } + +__m128i vsrli_b(v16i8 _1) { return __lsx_vsrli_b(_1, 1); } + +__m128i vsrli_h(v8i16 _1) { return __lsx_vsrli_h(_1, 1); } + +__m128i vsrli_w(v4i32 _1) { return __lsx_vsrli_w(_1, 1); } + +__m128i vsrli_d(v2i64 _1) { return __lsx_vsrli_d(_1, 1); } + +__m128i vsrlri_b(v16i8 _1) { return __lsx_vsrlri_b(_1, 1); } + +__m128i vsrlri_h(v8i16 _1) { return __lsx_vsrlri_h(_1, 1); } + +__m128i vsrlri_w(v4i32 _1) { return __lsx_vsrlri_w(_1, 1); } + +__m128i vsrlri_d(v2i64 _1) { return __lsx_vsrlri_d(_1, 1); } + +__m128i vbitclri_b(v16u8 _1) { return __lsx_vbitclri_b(_1, 1); } + +__m128i vbitclri_h(v8u16 _1) { return __lsx_vbitclri_h(_1, 1); } + +__m128i vbitclri_w(v4u32 _1) { return __lsx_vbitclri_w(_1, 1); } + +__m128i vbitclri_d(v2u64 _1) { return __lsx_vbitclri_d(_1, 1); } + +__m128i vbitseti_b(v16u8 _1) { return __lsx_vbitseti_b(_1, 1); } + +__m128i vbitseti_h(v8u16 _1) { return __lsx_vbitseti_h(_1, 1); } + +__m128i vbitseti_w(v4u32 _1) { return __lsx_vbitseti_w(_1, 1); } + +__m128i vbitseti_d(v2u64 _1) { return __lsx_vbitseti_d(_1, 1); } + +__m128i vbitrevi_b(v16u8 _1) { return __lsx_vbitrevi_b(_1, 1); } + +__m128i vbitrevi_h(v8u16 _1) { return __lsx_vbitrevi_h(_1, 1); } + +__m128i vbitrevi_w(v4u32 _1) { return __lsx_vbitrevi_w(_1, 1); } + +__m128i vbitrevi_d(v2u64 _1) { return __lsx_vbitrevi_d(_1, 1); } + +__m128i vaddi_bu(v16i8 _1) { return __lsx_vaddi_bu(_1, 1); } + +__m128i vaddi_hu(v8i16 _1) { return __lsx_vaddi_hu(_1, 1); } + +__m128i vaddi_wu(v4i32 _1) { return __lsx_vaddi_wu(_1, 1); } + +__m128i vaddi_du(v2i64 _1) { return __lsx_vaddi_du(_1, 1); } + +__m128i vsubi_bu(v16i8 _1) { return __lsx_vsubi_bu(_1, 1); } + +__m128i vsubi_hu(v8i16 _1) { return __lsx_vsubi_hu(_1, 1); } + +__m128i vsubi_wu(v4i32 _1) { return __lsx_vsubi_wu(_1, 1); } + +__m128i vsubi_du(v2i64 _1) { return __lsx_vsubi_du(_1, 1); } + +__m128i vmaxi_b(v16i8 _1) { return __lsx_vmaxi_b(_1, 1); } + +__m128i vmaxi_h(v8i16 _1) { return __lsx_vmaxi_h(_1, 1); } + +__m128i vmaxi_w(v4i32 _1) { return __lsx_vmaxi_w(_1, 1); } + +__m128i vmaxi_d(v2i64 _1) { return __lsx_vmaxi_d(_1, 1); } + +__m128i vmaxi_bu(v16u8 _1) { return __lsx_vmaxi_bu(_1, 1); } + +__m128i vmaxi_hu(v8u16 _1) { return __lsx_vmaxi_hu(_1, 1); } + +__m128i vmaxi_wu(v4u32 _1) { return __lsx_vmaxi_wu(_1, 1); } + +__m128i vmaxi_du(v2u64 _1) { return __lsx_vmaxi_du(_1, 1); } + +__m128i vmini_b(v16i8 _1) { return __lsx_vmini_b(_1, 1); } + +__m128i vmini_h(v8i16 _1) { return __lsx_vmini_h(_1, 1); } + +__m128i vmini_w(v4i32 _1) { return __lsx_vmini_w(_1, 1); } + +__m128i vmini_d(v2i64 _1) { return __lsx_vmini_d(_1, 1); } + +__m128i vmini_bu(v16u8 _1) { return __lsx_vmini_bu(_1, 1); } + +__m128i vmini_hu(v8u16 _1) { return __lsx_vmini_hu(_1, 1); } + +__m128i vmini_wu(v4u32 _1) { return __lsx_vmini_wu(_1, 1); } + +__m128i vmini_du(v2u64 _1) { return __lsx_vmini_du(_1, 1); } + +__m128i vseqi_b(v16i8 _1) { return __lsx_vseqi_b(_1, 1); } + +__m128i vseqi_h(v8i16 _1) { return __lsx_vseqi_h(_1, 1); } + +__m128i vseqi_w(v4i32 _1) { return __lsx_vseqi_w(_1, 1); } + +__m128i vseqi_d(v2i64 _1) { return __lsx_vseqi_d(_1, 1); } + +__m128i vslti_b(v16i8 _1) { return __lsx_vslti_b(_1, 1); } + +__m128i vslti_h(v8i16 _1) { return __lsx_vslti_h(_1, 1); } + +__m128i vslti_w(v4i32 _1) { return __lsx_vslti_w(_1, 1); } + +__m128i vslti_d(v2i64 _1) { return __lsx_vslti_d(_1, 1); } + +__m128i vslti_bu(v16u8 _1) { return __lsx_vslti_bu(_1, 1); } + +__m128i vslti_hu(v8u16 _1) { return __lsx_vslti_hu(_1, 1); } + +__m128i vslti_wu(v4u32 _1) { return __lsx_vslti_wu(_1, 1); } + +__m128i vslti_du(v2u64 _1) { return __lsx_vslti_du(_1, 1); } + +__m128i vslei_b(v16i8 _1) { return __lsx_vslei_b(_1, 1); } + +__m128i vslei_h(v8i16 _1) { return __lsx_vslei_h(_1, 1); } + +__m128i vslei_w(v4i32 _1) { return __lsx_vslei_w(_1, 1); } + +__m128i vslei_d(v2i64 _1) { return __lsx_vslei_d(_1, 1); } + +__m128i vslei_bu(v16u8 _1) { return __lsx_vslei_bu(_1, 1); } + +__m128i vslei_hu(v8u16 _1) { return __lsx_vslei_hu(_1, 1); } + +__m128i vslei_wu(v4u32 _1) { return __lsx_vslei_wu(_1, 1); } + +__m128i vslei_du(v2u64 _1) { return __lsx_vslei_du(_1, 1); } + +__m128i vsat_b(v16i8 _1) { return __lsx_vsat_b(_1, 1); } + +__m128i vsat_h(v8i16 _1) { return __lsx_vsat_h(_1, 1); } + +__m128i vsat_w(v4i32 _1) { return __lsx_vsat_w(_1, 1); } + +__m128i vsat_d(v2i64 _1) { return __lsx_vsat_d(_1, 1); } + +__m128i vsat_bu(v16u8 _1) { return __lsx_vsat_bu(_1, 1); } + +__m128i vsat_hu(v8u16 _1) { return __lsx_vsat_hu(_1, 1); } + +__m128i vsat_wu(v4u32 _1) { return __lsx_vsat_wu(_1, 1); } + +__m128i vsat_du(v2u64 _1) { return __lsx_vsat_du(_1, 1); } + +__m128i vreplvei_b(v16i8 _1) { return __lsx_vreplvei_b(_1, 1); } + +__m128i vreplvei_h(v8i16 _1) { return __lsx_vreplvei_h(_1, 1); } + +__m128i vreplvei_w(v4i32 _1) { return __lsx_vreplvei_w(_1, 1); } + +__m128i vreplvei_d(v2i64 _1) { return __lsx_vreplvei_d(_1, 1); } + +__m128i vandi_b(v16u8 _1) { return __lsx_vandi_b(_1, 1); } + +__m128i vori_b(v16u8 _1) { return __lsx_vori_b(_1, 1); } + +__m128i vnori_b(v16u8 _1) { return __lsx_vnori_b(_1, 1); } + +__m128i vxori_b(v16u8 _1) { return __lsx_vxori_b(_1, 1); } + +__m128i vbitseli_b(v16u8 _1, v16u8 _2) { return __lsx_vbitseli_b(_1, _2, 1); } + +__m128i vshuf4i_b(v16i8 _1) { return __lsx_vshuf4i_b(_1, 1); } + +__m128i vshuf4i_h(v8i16 _1) { return __lsx_vshuf4i_h(_1, 1); } + +__m128i vshuf4i_w(v4i32 _1) { return __lsx_vshuf4i_w(_1, 1); } + +int vpickve2gr_b(v16i8 _1) { return __lsx_vpickve2gr_b(_1, 1); } + +int vpickve2gr_h(v8i16 _1) { return __lsx_vpickve2gr_h(_1, 1); } + +int vpickve2gr_w(v4i32 _1) { return __lsx_vpickve2gr_w(_1, 1); } + +long int vpickve2gr_d(v2i64 _1) { return __lsx_vpickve2gr_d(_1, 1); } + +unsigned int vpickve2gr_bu(v16i8 _1) { return __lsx_vpickve2gr_bu(_1, 1); } + +unsigned int vpickve2gr_hu(v8i16 _1) { return __lsx_vpickve2gr_hu(_1, 1); } + +unsigned int vpickve2gr_wu(v4i32 _1) { return __lsx_vpickve2gr_wu(_1, 1); } + +unsigned long int vpickve2gr_du(v2i64 _1) { return __lsx_vpickve2gr_du(_1, 1); } + +__m128i vinsgr2vr_b(v16i8 _1) { return __lsx_vinsgr2vr_b(_1, 1, 1); } + +__m128i vinsgr2vr_h(v8i16 _1) { return __lsx_vinsgr2vr_h(_1, 1, 1); } + +__m128i vinsgr2vr_w(v4i32 _1) { return __lsx_vinsgr2vr_w(_1, 1, 1); } + +__m128i vinsgr2vr_d(v2i64 _1) { return __lsx_vinsgr2vr_d(_1, 1, 1); } + +__m128i vsllwil_h_b(v16i8 _1) { return __lsx_vsllwil_h_b(_1, 1); } + +__m128i vsllwil_w_h(v8i16 _1) { return __lsx_vsllwil_w_h(_1, 1); } + +__m128i vsllwil_d_w(v4i32 _1) { return __lsx_vsllwil_d_w(_1, 1); } + +__m128i vsllwil_hu_bu(v16u8 _1) { return __lsx_vsllwil_hu_bu(_1, 1); } + +__m128i vsllwil_wu_hu(v8u16 _1) { return __lsx_vsllwil_wu_hu(_1, 1); } + +__m128i vsllwil_du_wu(v4u32 _1) { return __lsx_vsllwil_du_wu(_1, 1); } + +__m128i vfrstpi_b(v16i8 _1, v16i8 _2) { return __lsx_vfrstpi_b(_1, _2, 1); } + +__m128i vfrstpi_h(v8i16 _1, v8i16 _2) { return __lsx_vfrstpi_h(_1, _2, 1); } + +__m128i vshuf4i_d(v2i64 _1, v2i64 _2) { return __lsx_vshuf4i_d(_1, _2, 1); } + +__m128i vbsrl_v(v16i8 _1) { return __lsx_vbsrl_v(_1, 1); } + +__m128i vbsll_v(v16i8 _1) { return __lsx_vbsll_v(_1, 1); } + +__m128i vextrins_b(v16i8 _1, v16i8 _2) { return __lsx_vextrins_b(_1, _2, 1); } + +__m128i vextrins_h(v8i16 _1, v8i16 _2) { return __lsx_vextrins_h(_1, _2, 1); } + +__m128i vextrins_w(v4i32 _1, v4i32 _2) { return __lsx_vextrins_w(_1, _2, 1); } + +__m128i vextrins_d(v2i64 _1, v2i64 _2) { return __lsx_vextrins_d(_1, _2, 1); } + +void vstelm_b(v16i8 _1, void *_2) { return __lsx_vstelm_b(_1, _2, 1, 1); } + +void vstelm_h(v8i16 _1, void *_2) { return __lsx_vstelm_h(_1, _2, 2, 1); } + +void vstelm_w(v4i32 _1, void *_2) { return __lsx_vstelm_w(_1, _2, 4, 1); } + +void vstelm_d(v2i64 _1, void *_2) { return __lsx_vstelm_d(_1, _2, 8, 1); } + +__m128i vldrepl_b(void *_1) { return __lsx_vldrepl_b(_1, 1); } + +__m128i vldrepl_h(void *_1) { return __lsx_vldrepl_h(_1, 1); } + +__m128i vldrepl_w(void *_1) { return __lsx_vldrepl_w(_1, 1); } + +__m128i vldrepl_d(void *_1) { return __lsx_vldrepl_d(_1, 1); } + +__m128i vrotri_b(v16i8 _1) { return __lsx_vrotri_b(_1, 1); } + +__m128i vrotri_h(v8i16 _1) { return __lsx_vrotri_h(_1, 1); } + +__m128i vrotri_w(v4i32 _1) { return __lsx_vrotri_w(_1, 1); } + +__m128i vrotri_d(v2i64 _1) { return __lsx_vrotri_d(_1, 1); } + +__m128i vsrlni_b_h(v16i8 _1, v16i8 _2) { return __lsx_vsrlni_b_h(_1, _2, 1); } + +__m128i vsrlni_h_w(v8i16 _1, v8i16 _2) { return __lsx_vsrlni_h_w(_1, _2, 1); } + +__m128i vsrlni_w_d(v4i32 _1, v4i32 _2) { return __lsx_vsrlni_w_d(_1, _2, 1); } + +__m128i vsrlni_d_q(v2i64 _1, v2i64 _2) { return __lsx_vsrlni_d_q(_1, _2, 1); } + +__m128i vsrlrni_b_h(v16i8 _1, v16i8 _2) { return __lsx_vsrlrni_b_h(_1, _2, 1); } + +__m128i vsrlrni_h_w(v8i16 _1, v8i16 _2) { return __lsx_vsrlrni_h_w(_1, _2, 1); } + +__m128i vsrlrni_w_d(v4i32 _1, v4i32 _2) { return __lsx_vsrlrni_w_d(_1, _2, 1); } + +__m128i vsrlrni_d_q(v2i64 _1, v2i64 _2) { return __lsx_vsrlrni_d_q(_1, _2, 1); } + +__m128i vssrlni_b_h(v16i8 _1, v16i8 _2) { return __lsx_vssrlni_b_h(_1, _2, 1); } + +__m128i vssrlni_h_w(v8i16 _1, v8i16 _2) { return __lsx_vssrlni_h_w(_1, _2, 1); } + +__m128i vssrlni_w_d(v4i32 _1, v4i32 _2) { return __lsx_vssrlni_w_d(_1, _2, 1); } + +__m128i vssrlni_d_q(v2i64 _1, v2i64 _2) { return __lsx_vssrlni_d_q(_1, _2, 1); } + +__m128i vssrlni_bu_h(v16u8 _1, v16i8 _2) { + return __lsx_vssrlni_bu_h(_1, _2, 1); +} + +__m128i vssrlni_hu_w(v8u16 _1, v8i16 _2) { + return __lsx_vssrlni_hu_w(_1, _2, 1); +} + +__m128i vssrlni_wu_d(v4u32 _1, v4i32 _2) { + return __lsx_vssrlni_wu_d(_1, _2, 1); +} + +__m128i vssrlni_du_q(v2u64 _1, v2i64 _2) { + return __lsx_vssrlni_du_q(_1, _2, 1); +} + +__m128i vssrlrni_b_h(v16i8 _1, v16i8 _2) { + return __lsx_vssrlrni_b_h(_1, _2, 1); +} + +__m128i vssrlrni_h_w(v8i16 _1, v8i16 _2) { + return __lsx_vssrlrni_h_w(_1, _2, 1); +} + +__m128i vssrlrni_w_d(v4i32 _1, v4i32 _2) { + return __lsx_vssrlrni_w_d(_1, _2, 1); +} + +__m128i vssrlrni_d_q(v2i64 _1, v2i64 _2) { + return __lsx_vssrlrni_d_q(_1, _2, 1); +} + +__m128i vssrlrni_bu_h(v16u8 _1, v16i8 _2) { + return __lsx_vssrlrni_bu_h(_1, _2, 1); +} + +__m128i vssrlrni_hu_w(v8u16 _1, v8i16 _2) { + return __lsx_vssrlrni_hu_w(_1, _2, 1); +} + +__m128i vssrlrni_wu_d(v4u32 _1, v4i32 _2) { + return __lsx_vssrlrni_wu_d(_1, _2, 1); +} + +__m128i vssrlrni_du_q(v2u64 _1, v2i64 _2) { + return __lsx_vssrlrni_du_q(_1, _2, 1); +} + +__m128i vsrani_b_h(v16i8 _1, v16i8 _2) { return __lsx_vsrani_b_h(_1, _2, 1); } + +__m128i vsrani_h_w(v8i16 _1, v8i16 _2) { return __lsx_vsrani_h_w(_1, _2, 1); } + +__m128i vsrani_w_d(v4i32 _1, v4i32 _2) { return __lsx_vsrani_w_d(_1, _2, 1); } + +__m128i vsrani_d_q(v2i64 _1, v2i64 _2) { return __lsx_vsrani_d_q(_1, _2, 1); } + +__m128i vsrarni_b_h(v16i8 _1, v16i8 _2) { return __lsx_vsrarni_b_h(_1, _2, 1); } + +__m128i vsrarni_h_w(v8i16 _1, v8i16 _2) { return __lsx_vsrarni_h_w(_1, _2, 1); } + +__m128i vsrarni_w_d(v4i32 _1, v4i32 _2) { return __lsx_vsrarni_w_d(_1, _2, 1); } + +__m128i vsrarni_d_q(v2i64 _1, v2i64 _2) { return __lsx_vsrarni_d_q(_1, _2, 1); } + +__m128i vssrani_b_h(v16i8 _1, v16i8 _2) { return __lsx_vssrani_b_h(_1, _2, 1); } + +__m128i vssrani_h_w(v8i16 _1, v8i16 _2) { return __lsx_vssrani_h_w(_1, _2, 1); } + +__m128i vssrani_w_d(v4i32 _1, v4i32 _2) { return __lsx_vssrani_w_d(_1, _2, 1); } + +__m128i vssrani_d_q(v2i64 _1, v2i64 _2) { return __lsx_vssrani_d_q(_1, _2, 1); } + +__m128i vssrani_bu_h(v16u8 _1, v16i8 _2) { + return __lsx_vssrani_bu_h(_1, _2, 1); +} + +__m128i vssrani_hu_w(v8u16 _1, v8i16 _2) { + return __lsx_vssrani_hu_w(_1, _2, 1); +} + +__m128i vssrani_wu_d(v4u32 _1, v4i32 _2) { + return __lsx_vssrani_wu_d(_1, _2, 1); +} + +__m128i vssrani_du_q(v2u64 _1, v2i64 _2) { + return __lsx_vssrani_du_q(_1, _2, 1); +} + +__m128i vssrarni_b_h(v16i8 _1, v16i8 _2) { + return __lsx_vssrarni_b_h(_1, _2, 1); +} + +__m128i vssrarni_h_w(v8i16 _1, v8i16 _2) { + return __lsx_vssrarni_h_w(_1, _2, 1); +} + +__m128i vssrarni_w_d(v4i32 _1, v4i32 _2) { + return __lsx_vssrarni_w_d(_1, _2, 1); +} + +__m128i vssrarni_d_q(v2i64 _1, v2i64 _2) { + return __lsx_vssrarni_d_q(_1, _2, 1); +} + +__m128i vssrarni_bu_h(v16u8 _1, v16i8 _2) { + return __lsx_vssrarni_bu_h(_1, _2, 1); +} + +__m128i vssrarni_hu_w(v8u16 _1, v8i16 _2) { + return __lsx_vssrarni_hu_w(_1, _2, 1); +} + +__m128i vssrarni_wu_d(v4u32 _1, v4i32 _2) { + return __lsx_vssrarni_wu_d(_1, _2, 1); +} + +__m128i vssrarni_du_q(v2u64 _1, v2i64 _2) { + return __lsx_vssrarni_du_q(_1, _2, 1); +} + +__m128i vpermi_w(v4i32 _1, v4i32 _2) { return __lsx_vpermi_w(_1, _2, 1); } + +__m128i vld(void *_1) { return __lsx_vld(_1, 1); } + +void vst(v16i8 _1, void *_2) { return __lsx_vst(_1, _2, 1); } + +__m128i vldi() { return __lsx_vldi(1); } + +int bnz_b(v16u8 _1) { return __lsx_bnz_b(_1); } + +int bnz_d(v2u64 _1) { return __lsx_bnz_d(_1); } + +int bnz_h(v8u16 _1) { return __lsx_bnz_h(_1); } + +int bnz_v(v16u8 _1) { return __lsx_bnz_v(_1); } + +int bnz_w(v4u32 _1) { return __lsx_bnz_w(_1); } + +int bz_b(v16u8 _1) { return __lsx_bz_b(_1); } + +int bz_d(v2u64 _1) { return __lsx_bz_d(_1); } + +int bz_h(v8u16 _1) { return __lsx_bz_h(_1); } + +int bz_v(v16u8 _1) { return __lsx_bz_v(_1); } + +int bz_w(v4u32 _1) { return __lsx_bz_w(_1); } + +__m128i vrepli_b() { return __lsx_vrepli_b(1); } + +__m128i vrepli_d() { return __lsx_vrepli_d(1); } + +__m128i vrepli_h() { return __lsx_vrepli_h(1); } + +__m128i vrepli_w() { return __lsx_vrepli_w(1); }