Author: wanglei
Date: 2026-04-02T16:11:22+08:00
New Revision: 76fc936175304b521d8f5d9f0a67fe479237b4ac

URL: 
https://github.com/llvm/llvm-project/commit/76fc936175304b521d8f5d9f0a67fe479237b4ac
DIFF: 
https://github.com/llvm/llvm-project/commit/76fc936175304b521d8f5d9f0a67fe479237b4ac.diff

LOG: [Clang][LoongArch] Align LSX/LASX built-in signatures with intrinsic types 
to avoid lax conversions (#189900)

Update the built-in signatures in BuiltinsLoongArchLSX.def and
BuiltinsLoongArchLASX.def to precisely match the vector types used in
the corresponding intrinsic headers (lsxintrin.h and lasxintrin.h).

This alignment ensures that these intrinsics can be compiled
successfully even when -flax-vector-conversions=none is specified, since
the built-in arguments no longer rely on implicit vector type
conversions.

Added new test cases to verify the macro-defined LSX/LASX
intrinsic interfaces under -flax-vector-conversions=none.

Fixes #189898

Added: 
    clang/test/CodeGen/LoongArch/lasx/lasxintrin-lax-vector-conversions.c
    clang/test/CodeGen/LoongArch/lsx/lsxintrin-lax-vector-conversions.c

Modified: 
    clang/include/clang/Basic/BuiltinsLoongArchLASX.def
    clang/include/clang/Basic/BuiltinsLoongArchLSX.def

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/BuiltinsLoongArchLASX.def 
b/clang/include/clang/Basic/BuiltinsLoongArchLASX.def
index a5eee613d5c9e..bf6aceeb8a720 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 a823783af88c4..85c36617311e4 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 0000000000000..d0a753ed84af2
--- /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 <lasxintrin.h>
+
+__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 0000000000000..dcf3870817194
--- /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 <lsxintrin.h>
+
+__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); }


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to