Skip to main content

core/stdarch/crates/core_arch/src/loongarch64/lsx/
generated.rs

1// This code is automatically generated. DO NOT MODIFY.
2//
3// Instead, modify `crates/stdarch-gen-loongarch/lsx.spec` and run the following command to re-generate this file:
4//
5// ```
6// OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsx.spec
7// ```
8
9use crate::mem::transmute;
10use super::super::*;
11
12#[allow(improper_ctypes)]
13unsafe extern "unadjusted" {
14    #[link_name = "llvm.loongarch.lsx.vsrar.b"]
15    fn __lsx_vsrar_b(a: __v16i8, b: __v16i8) -> __v16i8;
16    #[link_name = "llvm.loongarch.lsx.vsrar.h"]
17    fn __lsx_vsrar_h(a: __v8i16, b: __v8i16) -> __v8i16;
18    #[link_name = "llvm.loongarch.lsx.vsrar.w"]
19    fn __lsx_vsrar_w(a: __v4i32, b: __v4i32) -> __v4i32;
20    #[link_name = "llvm.loongarch.lsx.vsrar.d"]
21    fn __lsx_vsrar_d(a: __v2i64, b: __v2i64) -> __v2i64;
22    #[link_name = "llvm.loongarch.lsx.vsrari.b"]
23    fn __lsx_vsrari_b(a: __v16i8, b: u32) -> __v16i8;
24    #[link_name = "llvm.loongarch.lsx.vsrari.h"]
25    fn __lsx_vsrari_h(a: __v8i16, b: u32) -> __v8i16;
26    #[link_name = "llvm.loongarch.lsx.vsrari.w"]
27    fn __lsx_vsrari_w(a: __v4i32, b: u32) -> __v4i32;
28    #[link_name = "llvm.loongarch.lsx.vsrari.d"]
29    fn __lsx_vsrari_d(a: __v2i64, b: u32) -> __v2i64;
30    #[link_name = "llvm.loongarch.lsx.vsrlr.b"]
31    fn __lsx_vsrlr_b(a: __v16i8, b: __v16i8) -> __v16i8;
32    #[link_name = "llvm.loongarch.lsx.vsrlr.h"]
33    fn __lsx_vsrlr_h(a: __v8i16, b: __v8i16) -> __v8i16;
34    #[link_name = "llvm.loongarch.lsx.vsrlr.w"]
35    fn __lsx_vsrlr_w(a: __v4i32, b: __v4i32) -> __v4i32;
36    #[link_name = "llvm.loongarch.lsx.vsrlr.d"]
37    fn __lsx_vsrlr_d(a: __v2i64, b: __v2i64) -> __v2i64;
38    #[link_name = "llvm.loongarch.lsx.vsrlri.b"]
39    fn __lsx_vsrlri_b(a: __v16i8, b: u32) -> __v16i8;
40    #[link_name = "llvm.loongarch.lsx.vsrlri.h"]
41    fn __lsx_vsrlri_h(a: __v8i16, b: u32) -> __v8i16;
42    #[link_name = "llvm.loongarch.lsx.vsrlri.w"]
43    fn __lsx_vsrlri_w(a: __v4i32, b: u32) -> __v4i32;
44    #[link_name = "llvm.loongarch.lsx.vsrlri.d"]
45    fn __lsx_vsrlri_d(a: __v2i64, b: u32) -> __v2i64;
46    #[link_name = "llvm.loongarch.lsx.vbitclri.b"]
47    fn __lsx_vbitclri_b(a: __v16u8, b: u32) -> __v16u8;
48    #[link_name = "llvm.loongarch.lsx.vbitclri.h"]
49    fn __lsx_vbitclri_h(a: __v8u16, b: u32) -> __v8u16;
50    #[link_name = "llvm.loongarch.lsx.vbitclri.w"]
51    fn __lsx_vbitclri_w(a: __v4u32, b: u32) -> __v4u32;
52    #[link_name = "llvm.loongarch.lsx.vbitclri.d"]
53    fn __lsx_vbitclri_d(a: __v2u64, b: u32) -> __v2u64;
54    #[link_name = "llvm.loongarch.lsx.vbitseti.b"]
55    fn __lsx_vbitseti_b(a: __v16u8, b: u32) -> __v16u8;
56    #[link_name = "llvm.loongarch.lsx.vbitseti.h"]
57    fn __lsx_vbitseti_h(a: __v8u16, b: u32) -> __v8u16;
58    #[link_name = "llvm.loongarch.lsx.vbitseti.w"]
59    fn __lsx_vbitseti_w(a: __v4u32, b: u32) -> __v4u32;
60    #[link_name = "llvm.loongarch.lsx.vbitseti.d"]
61    fn __lsx_vbitseti_d(a: __v2u64, b: u32) -> __v2u64;
62    #[link_name = "llvm.loongarch.lsx.vbitrevi.b"]
63    fn __lsx_vbitrevi_b(a: __v16u8, b: u32) -> __v16u8;
64    #[link_name = "llvm.loongarch.lsx.vbitrevi.h"]
65    fn __lsx_vbitrevi_h(a: __v8u16, b: u32) -> __v8u16;
66    #[link_name = "llvm.loongarch.lsx.vbitrevi.w"]
67    fn __lsx_vbitrevi_w(a: __v4u32, b: u32) -> __v4u32;
68    #[link_name = "llvm.loongarch.lsx.vbitrevi.d"]
69    fn __lsx_vbitrevi_d(a: __v2u64, b: u32) -> __v2u64;
70    #[link_name = "llvm.loongarch.lsx.vsubi.bu"]
71    fn __lsx_vsubi_bu(a: __v16i8, b: u32) -> __v16i8;
72    #[link_name = "llvm.loongarch.lsx.vsubi.hu"]
73    fn __lsx_vsubi_hu(a: __v8i16, b: u32) -> __v8i16;
74    #[link_name = "llvm.loongarch.lsx.vsubi.wu"]
75    fn __lsx_vsubi_wu(a: __v4i32, b: u32) -> __v4i32;
76    #[link_name = "llvm.loongarch.lsx.vsubi.du"]
77    fn __lsx_vsubi_du(a: __v2i64, b: u32) -> __v2i64;
78    #[link_name = "llvm.loongarch.lsx.vsat.b"]
79    fn __lsx_vsat_b(a: __v16i8, b: u32) -> __v16i8;
80    #[link_name = "llvm.loongarch.lsx.vsat.h"]
81    fn __lsx_vsat_h(a: __v8i16, b: u32) -> __v8i16;
82    #[link_name = "llvm.loongarch.lsx.vsat.w"]
83    fn __lsx_vsat_w(a: __v4i32, b: u32) -> __v4i32;
84    #[link_name = "llvm.loongarch.lsx.vsat.d"]
85    fn __lsx_vsat_d(a: __v2i64, b: u32) -> __v2i64;
86    #[link_name = "llvm.loongarch.lsx.vsat.bu"]
87    fn __lsx_vsat_bu(a: __v16u8, b: u32) -> __v16u8;
88    #[link_name = "llvm.loongarch.lsx.vsat.hu"]
89    fn __lsx_vsat_hu(a: __v8u16, b: u32) -> __v8u16;
90    #[link_name = "llvm.loongarch.lsx.vsat.wu"]
91    fn __lsx_vsat_wu(a: __v4u32, b: u32) -> __v4u32;
92    #[link_name = "llvm.loongarch.lsx.vsat.du"]
93    fn __lsx_vsat_du(a: __v2u64, b: u32) -> __v2u64;
94    #[link_name = "llvm.loongarch.lsx.vavg.b"]
95    fn __lsx_vavg_b(a: __v16i8, b: __v16i8) -> __v16i8;
96    #[link_name = "llvm.loongarch.lsx.vavg.h"]
97    fn __lsx_vavg_h(a: __v8i16, b: __v8i16) -> __v8i16;
98    #[link_name = "llvm.loongarch.lsx.vavg.w"]
99    fn __lsx_vavg_w(a: __v4i32, b: __v4i32) -> __v4i32;
100    #[link_name = "llvm.loongarch.lsx.vavg.d"]
101    fn __lsx_vavg_d(a: __v2i64, b: __v2i64) -> __v2i64;
102    #[link_name = "llvm.loongarch.lsx.vavg.bu"]
103    fn __lsx_vavg_bu(a: __v16u8, b: __v16u8) -> __v16u8;
104    #[link_name = "llvm.loongarch.lsx.vavg.hu"]
105    fn __lsx_vavg_hu(a: __v8u16, b: __v8u16) -> __v8u16;
106    #[link_name = "llvm.loongarch.lsx.vavg.wu"]
107    fn __lsx_vavg_wu(a: __v4u32, b: __v4u32) -> __v4u32;
108    #[link_name = "llvm.loongarch.lsx.vavg.du"]
109    fn __lsx_vavg_du(a: __v2u64, b: __v2u64) -> __v2u64;
110    #[link_name = "llvm.loongarch.lsx.vavgr.b"]
111    fn __lsx_vavgr_b(a: __v16i8, b: __v16i8) -> __v16i8;
112    #[link_name = "llvm.loongarch.lsx.vavgr.h"]
113    fn __lsx_vavgr_h(a: __v8i16, b: __v8i16) -> __v8i16;
114    #[link_name = "llvm.loongarch.lsx.vavgr.w"]
115    fn __lsx_vavgr_w(a: __v4i32, b: __v4i32) -> __v4i32;
116    #[link_name = "llvm.loongarch.lsx.vavgr.d"]
117    fn __lsx_vavgr_d(a: __v2i64, b: __v2i64) -> __v2i64;
118    #[link_name = "llvm.loongarch.lsx.vavgr.bu"]
119    fn __lsx_vavgr_bu(a: __v16u8, b: __v16u8) -> __v16u8;
120    #[link_name = "llvm.loongarch.lsx.vavgr.hu"]
121    fn __lsx_vavgr_hu(a: __v8u16, b: __v8u16) -> __v8u16;
122    #[link_name = "llvm.loongarch.lsx.vavgr.wu"]
123    fn __lsx_vavgr_wu(a: __v4u32, b: __v4u32) -> __v4u32;
124    #[link_name = "llvm.loongarch.lsx.vavgr.du"]
125    fn __lsx_vavgr_du(a: __v2u64, b: __v2u64) -> __v2u64;
126    #[link_name = "llvm.loongarch.lsx.vhaddw.h.b"]
127    fn __lsx_vhaddw_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
128    #[link_name = "llvm.loongarch.lsx.vhaddw.w.h"]
129    fn __lsx_vhaddw_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
130    #[link_name = "llvm.loongarch.lsx.vhaddw.d.w"]
131    fn __lsx_vhaddw_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
132    #[link_name = "llvm.loongarch.lsx.vhaddw.hu.bu"]
133    fn __lsx_vhaddw_hu_bu(a: __v16u8, b: __v16u8) -> __v8u16;
134    #[link_name = "llvm.loongarch.lsx.vhaddw.wu.hu"]
135    fn __lsx_vhaddw_wu_hu(a: __v8u16, b: __v8u16) -> __v4u32;
136    #[link_name = "llvm.loongarch.lsx.vhaddw.du.wu"]
137    fn __lsx_vhaddw_du_wu(a: __v4u32, b: __v4u32) -> __v2u64;
138    #[link_name = "llvm.loongarch.lsx.vhsubw.h.b"]
139    fn __lsx_vhsubw_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
140    #[link_name = "llvm.loongarch.lsx.vhsubw.w.h"]
141    fn __lsx_vhsubw_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
142    #[link_name = "llvm.loongarch.lsx.vhsubw.d.w"]
143    fn __lsx_vhsubw_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
144    #[link_name = "llvm.loongarch.lsx.vhsubw.hu.bu"]
145    fn __lsx_vhsubw_hu_bu(a: __v16u8, b: __v16u8) -> __v8i16;
146    #[link_name = "llvm.loongarch.lsx.vhsubw.wu.hu"]
147    fn __lsx_vhsubw_wu_hu(a: __v8u16, b: __v8u16) -> __v4i32;
148    #[link_name = "llvm.loongarch.lsx.vhsubw.du.wu"]
149    fn __lsx_vhsubw_du_wu(a: __v4u32, b: __v4u32) -> __v2i64;
150    #[link_name = "llvm.loongarch.lsx.vreplve.b"]
151    fn __lsx_vreplve_b(a: __v16i8, b: i32) -> __v16i8;
152    #[link_name = "llvm.loongarch.lsx.vreplve.h"]
153    fn __lsx_vreplve_h(a: __v8i16, b: i32) -> __v8i16;
154    #[link_name = "llvm.loongarch.lsx.vreplve.w"]
155    fn __lsx_vreplve_w(a: __v4i32, b: i32) -> __v4i32;
156    #[link_name = "llvm.loongarch.lsx.vreplve.d"]
157    fn __lsx_vreplve_d(a: __v2i64, b: i32) -> __v2i64;
158    #[link_name = "llvm.loongarch.lsx.vreplvei.b"]
159    fn __lsx_vreplvei_b(a: __v16i8, b: u32) -> __v16i8;
160    #[link_name = "llvm.loongarch.lsx.vreplvei.h"]
161    fn __lsx_vreplvei_h(a: __v8i16, b: u32) -> __v8i16;
162    #[link_name = "llvm.loongarch.lsx.vreplvei.w"]
163    fn __lsx_vreplvei_w(a: __v4i32, b: u32) -> __v4i32;
164    #[link_name = "llvm.loongarch.lsx.vreplvei.d"]
165    fn __lsx_vreplvei_d(a: __v2i64, b: u32) -> __v2i64;
166    #[link_name = "llvm.loongarch.lsx.vilvh.b"]
167    fn __lsx_vilvh_b(a: __v16i8, b: __v16i8) -> __v16i8;
168    #[link_name = "llvm.loongarch.lsx.vilvh.h"]
169    fn __lsx_vilvh_h(a: __v8i16, b: __v8i16) -> __v8i16;
170    #[link_name = "llvm.loongarch.lsx.vilvh.w"]
171    fn __lsx_vilvh_w(a: __v4i32, b: __v4i32) -> __v4i32;
172    #[link_name = "llvm.loongarch.lsx.vilvh.d"]
173    fn __lsx_vilvh_d(a: __v2i64, b: __v2i64) -> __v2i64;
174    #[link_name = "llvm.loongarch.lsx.vilvl.b"]
175    fn __lsx_vilvl_b(a: __v16i8, b: __v16i8) -> __v16i8;
176    #[link_name = "llvm.loongarch.lsx.vilvl.h"]
177    fn __lsx_vilvl_h(a: __v8i16, b: __v8i16) -> __v8i16;
178    #[link_name = "llvm.loongarch.lsx.vilvl.w"]
179    fn __lsx_vilvl_w(a: __v4i32, b: __v4i32) -> __v4i32;
180    #[link_name = "llvm.loongarch.lsx.vilvl.d"]
181    fn __lsx_vilvl_d(a: __v2i64, b: __v2i64) -> __v2i64;
182    #[link_name = "llvm.loongarch.lsx.vpackev.b"]
183    fn __lsx_vpackev_b(a: __v16i8, b: __v16i8) -> __v16i8;
184    #[link_name = "llvm.loongarch.lsx.vpackev.h"]
185    fn __lsx_vpackev_h(a: __v8i16, b: __v8i16) -> __v8i16;
186    #[link_name = "llvm.loongarch.lsx.vpackev.w"]
187    fn __lsx_vpackev_w(a: __v4i32, b: __v4i32) -> __v4i32;
188    #[link_name = "llvm.loongarch.lsx.vpackev.d"]
189    fn __lsx_vpackev_d(a: __v2i64, b: __v2i64) -> __v2i64;
190    #[link_name = "llvm.loongarch.lsx.vpackod.b"]
191    fn __lsx_vpackod_b(a: __v16i8, b: __v16i8) -> __v16i8;
192    #[link_name = "llvm.loongarch.lsx.vpackod.h"]
193    fn __lsx_vpackod_h(a: __v8i16, b: __v8i16) -> __v8i16;
194    #[link_name = "llvm.loongarch.lsx.vpackod.w"]
195    fn __lsx_vpackod_w(a: __v4i32, b: __v4i32) -> __v4i32;
196    #[link_name = "llvm.loongarch.lsx.vpackod.d"]
197    fn __lsx_vpackod_d(a: __v2i64, b: __v2i64) -> __v2i64;
198    #[link_name = "llvm.loongarch.lsx.vshuf.h"]
199    fn __lsx_vshuf_h(a: __v8i16, b: __v8i16, c: __v8i16) -> __v8i16;
200    #[link_name = "llvm.loongarch.lsx.vshuf.w"]
201    fn __lsx_vshuf_w(a: __v4i32, b: __v4i32, c: __v4i32) -> __v4i32;
202    #[link_name = "llvm.loongarch.lsx.vshuf.d"]
203    fn __lsx_vshuf_d(a: __v2i64, b: __v2i64, c: __v2i64) -> __v2i64;
204    #[link_name = "llvm.loongarch.lsx.vandi.b"]
205    fn __lsx_vandi_b(a: __v16u8, b: u32) -> __v16u8;
206    #[link_name = "llvm.loongarch.lsx.vori.b"]
207    fn __lsx_vori_b(a: __v16u8, b: u32) -> __v16u8;
208    #[link_name = "llvm.loongarch.lsx.vnori.b"]
209    fn __lsx_vnori_b(a: __v16u8, b: u32) -> __v16u8;
210    #[link_name = "llvm.loongarch.lsx.vxori.b"]
211    fn __lsx_vxori_b(a: __v16u8, b: u32) -> __v16u8;
212    #[link_name = "llvm.loongarch.lsx.vbitsel.v"]
213    fn __lsx_vbitsel_v(a: __v16u8, b: __v16u8, c: __v16u8) -> __v16u8;
214    #[link_name = "llvm.loongarch.lsx.vbitseli.b"]
215    fn __lsx_vbitseli_b(a: __v16u8, b: __v16u8, c: u32) -> __v16u8;
216    #[link_name = "llvm.loongarch.lsx.vshuf4i.b"]
217    fn __lsx_vshuf4i_b(a: __v16i8, b: u32) -> __v16i8;
218    #[link_name = "llvm.loongarch.lsx.vshuf4i.h"]
219    fn __lsx_vshuf4i_h(a: __v8i16, b: u32) -> __v8i16;
220    #[link_name = "llvm.loongarch.lsx.vshuf4i.w"]
221    fn __lsx_vshuf4i_w(a: __v4i32, b: u32) -> __v4i32;
222    #[link_name = "llvm.loongarch.lsx.vclo.b"]
223    fn __lsx_vclo_b(a: __v16i8) -> __v16i8;
224    #[link_name = "llvm.loongarch.lsx.vclo.h"]
225    fn __lsx_vclo_h(a: __v8i16) -> __v8i16;
226    #[link_name = "llvm.loongarch.lsx.vclo.w"]
227    fn __lsx_vclo_w(a: __v4i32) -> __v4i32;
228    #[link_name = "llvm.loongarch.lsx.vclo.d"]
229    fn __lsx_vclo_d(a: __v2i64) -> __v2i64;
230    #[link_name = "llvm.loongarch.lsx.vfcvt.h.s"]
231    fn __lsx_vfcvt_h_s(a: __v4f32, b: __v4f32) -> __v8i16;
232    #[link_name = "llvm.loongarch.lsx.vfcvt.s.d"]
233    fn __lsx_vfcvt_s_d(a: __v2f64, b: __v2f64) -> __v4f32;
234    #[link_name = "llvm.loongarch.lsx.vfmin.s"]
235    fn __lsx_vfmin_s(a: __v4f32, b: __v4f32) -> __v4f32;
236    #[link_name = "llvm.loongarch.lsx.vfmin.d"]
237    fn __lsx_vfmin_d(a: __v2f64, b: __v2f64) -> __v2f64;
238    #[link_name = "llvm.loongarch.lsx.vfmina.s"]
239    fn __lsx_vfmina_s(a: __v4f32, b: __v4f32) -> __v4f32;
240    #[link_name = "llvm.loongarch.lsx.vfmina.d"]
241    fn __lsx_vfmina_d(a: __v2f64, b: __v2f64) -> __v2f64;
242    #[link_name = "llvm.loongarch.lsx.vfmax.s"]
243    fn __lsx_vfmax_s(a: __v4f32, b: __v4f32) -> __v4f32;
244    #[link_name = "llvm.loongarch.lsx.vfmax.d"]
245    fn __lsx_vfmax_d(a: __v2f64, b: __v2f64) -> __v2f64;
246    #[link_name = "llvm.loongarch.lsx.vfmaxa.s"]
247    fn __lsx_vfmaxa_s(a: __v4f32, b: __v4f32) -> __v4f32;
248    #[link_name = "llvm.loongarch.lsx.vfmaxa.d"]
249    fn __lsx_vfmaxa_d(a: __v2f64, b: __v2f64) -> __v2f64;
250    #[link_name = "llvm.loongarch.lsx.vfclass.s"]
251    fn __lsx_vfclass_s(a: __v4f32) -> __v4i32;
252    #[link_name = "llvm.loongarch.lsx.vfclass.d"]
253    fn __lsx_vfclass_d(a: __v2f64) -> __v2i64;
254    #[link_name = "llvm.loongarch.lsx.vfrecip.s"]
255    fn __lsx_vfrecip_s(a: __v4f32) -> __v4f32;
256    #[link_name = "llvm.loongarch.lsx.vfrecip.d"]
257    fn __lsx_vfrecip_d(a: __v2f64) -> __v2f64;
258    #[link_name = "llvm.loongarch.lsx.vfrecipe.s"]
259    fn __lsx_vfrecipe_s(a: __v4f32) -> __v4f32;
260    #[link_name = "llvm.loongarch.lsx.vfrecipe.d"]
261    fn __lsx_vfrecipe_d(a: __v2f64) -> __v2f64;
262    #[link_name = "llvm.loongarch.lsx.vfrsqrte.s"]
263    fn __lsx_vfrsqrte_s(a: __v4f32) -> __v4f32;
264    #[link_name = "llvm.loongarch.lsx.vfrsqrte.d"]
265    fn __lsx_vfrsqrte_d(a: __v2f64) -> __v2f64;
266    #[link_name = "llvm.loongarch.lsx.vfrint.s"]
267    fn __lsx_vfrint_s(a: __v4f32) -> __v4f32;
268    #[link_name = "llvm.loongarch.lsx.vfrint.d"]
269    fn __lsx_vfrint_d(a: __v2f64) -> __v2f64;
270    #[link_name = "llvm.loongarch.lsx.vfrsqrt.s"]
271    fn __lsx_vfrsqrt_s(a: __v4f32) -> __v4f32;
272    #[link_name = "llvm.loongarch.lsx.vfrsqrt.d"]
273    fn __lsx_vfrsqrt_d(a: __v2f64) -> __v2f64;
274    #[link_name = "llvm.loongarch.lsx.vflogb.s"]
275    fn __lsx_vflogb_s(a: __v4f32) -> __v4f32;
276    #[link_name = "llvm.loongarch.lsx.vflogb.d"]
277    fn __lsx_vflogb_d(a: __v2f64) -> __v2f64;
278    #[link_name = "llvm.loongarch.lsx.vfcvth.s.h"]
279    fn __lsx_vfcvth_s_h(a: __v8i16) -> __v4f32;
280    #[link_name = "llvm.loongarch.lsx.vfcvth.d.s"]
281    fn __lsx_vfcvth_d_s(a: __v4f32) -> __v2f64;
282    #[link_name = "llvm.loongarch.lsx.vfcvtl.s.h"]
283    fn __lsx_vfcvtl_s_h(a: __v8i16) -> __v4f32;
284    #[link_name = "llvm.loongarch.lsx.vfcvtl.d.s"]
285    fn __lsx_vfcvtl_d_s(a: __v4f32) -> __v2f64;
286    #[link_name = "llvm.loongarch.lsx.vftint.w.s"]
287    fn __lsx_vftint_w_s(a: __v4f32) -> __v4i32;
288    #[link_name = "llvm.loongarch.lsx.vftint.l.d"]
289    fn __lsx_vftint_l_d(a: __v2f64) -> __v2i64;
290    #[link_name = "llvm.loongarch.lsx.vftint.wu.s"]
291    fn __lsx_vftint_wu_s(a: __v4f32) -> __v4u32;
292    #[link_name = "llvm.loongarch.lsx.vftint.lu.d"]
293    fn __lsx_vftint_lu_d(a: __v2f64) -> __v2u64;
294    #[link_name = "llvm.loongarch.lsx.vftintrz.w.s"]
295    fn __lsx_vftintrz_w_s(a: __v4f32) -> __v4i32;
296    #[link_name = "llvm.loongarch.lsx.vftintrz.l.d"]
297    fn __lsx_vftintrz_l_d(a: __v2f64) -> __v2i64;
298    #[link_name = "llvm.loongarch.lsx.vftintrz.wu.s"]
299    fn __lsx_vftintrz_wu_s(a: __v4f32) -> __v4u32;
300    #[link_name = "llvm.loongarch.lsx.vftintrz.lu.d"]
301    fn __lsx_vftintrz_lu_d(a: __v2f64) -> __v2u64;
302    #[link_name = "llvm.loongarch.lsx.vffint.s.w"]
303    fn __lsx_vffint_s_w(a: __v4i32) -> __v4f32;
304    #[link_name = "llvm.loongarch.lsx.vffint.d.l"]
305    fn __lsx_vffint_d_l(a: __v2i64) -> __v2f64;
306    #[link_name = "llvm.loongarch.lsx.vffint.s.wu"]
307    fn __lsx_vffint_s_wu(a: __v4u32) -> __v4f32;
308    #[link_name = "llvm.loongarch.lsx.vffint.d.lu"]
309    fn __lsx_vffint_d_lu(a: __v2u64) -> __v2f64;
310    #[link_name = "llvm.loongarch.lsx.vmuh.b"]
311    fn __lsx_vmuh_b(a: __v16i8, b: __v16i8) -> __v16i8;
312    #[link_name = "llvm.loongarch.lsx.vmuh.h"]
313    fn __lsx_vmuh_h(a: __v8i16, b: __v8i16) -> __v8i16;
314    #[link_name = "llvm.loongarch.lsx.vmuh.w"]
315    fn __lsx_vmuh_w(a: __v4i32, b: __v4i32) -> __v4i32;
316    #[link_name = "llvm.loongarch.lsx.vmuh.d"]
317    fn __lsx_vmuh_d(a: __v2i64, b: __v2i64) -> __v2i64;
318    #[link_name = "llvm.loongarch.lsx.vmuh.bu"]
319    fn __lsx_vmuh_bu(a: __v16u8, b: __v16u8) -> __v16u8;
320    #[link_name = "llvm.loongarch.lsx.vmuh.hu"]
321    fn __lsx_vmuh_hu(a: __v8u16, b: __v8u16) -> __v8u16;
322    #[link_name = "llvm.loongarch.lsx.vmuh.wu"]
323    fn __lsx_vmuh_wu(a: __v4u32, b: __v4u32) -> __v4u32;
324    #[link_name = "llvm.loongarch.lsx.vmuh.du"]
325    fn __lsx_vmuh_du(a: __v2u64, b: __v2u64) -> __v2u64;
326    #[link_name = "llvm.loongarch.lsx.vsllwil.h.b"]
327    fn __lsx_vsllwil_h_b(a: __v16i8, b: u32) -> __v8i16;
328    #[link_name = "llvm.loongarch.lsx.vsllwil.w.h"]
329    fn __lsx_vsllwil_w_h(a: __v8i16, b: u32) -> __v4i32;
330    #[link_name = "llvm.loongarch.lsx.vsllwil.d.w"]
331    fn __lsx_vsllwil_d_w(a: __v4i32, b: u32) -> __v2i64;
332    #[link_name = "llvm.loongarch.lsx.vsllwil.hu.bu"]
333    fn __lsx_vsllwil_hu_bu(a: __v16u8, b: u32) -> __v8u16;
334    #[link_name = "llvm.loongarch.lsx.vsllwil.wu.hu"]
335    fn __lsx_vsllwil_wu_hu(a: __v8u16, b: u32) -> __v4u32;
336    #[link_name = "llvm.loongarch.lsx.vsllwil.du.wu"]
337    fn __lsx_vsllwil_du_wu(a: __v4u32, b: u32) -> __v2u64;
338    #[link_name = "llvm.loongarch.lsx.vsran.b.h"]
339    fn __lsx_vsran_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
340    #[link_name = "llvm.loongarch.lsx.vsran.h.w"]
341    fn __lsx_vsran_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
342    #[link_name = "llvm.loongarch.lsx.vsran.w.d"]
343    fn __lsx_vsran_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
344    #[link_name = "llvm.loongarch.lsx.vssran.b.h"]
345    fn __lsx_vssran_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
346    #[link_name = "llvm.loongarch.lsx.vssran.h.w"]
347    fn __lsx_vssran_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
348    #[link_name = "llvm.loongarch.lsx.vssran.w.d"]
349    fn __lsx_vssran_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
350    #[link_name = "llvm.loongarch.lsx.vssran.bu.h"]
351    fn __lsx_vssran_bu_h(a: __v8u16, b: __v8u16) -> __v16u8;
352    #[link_name = "llvm.loongarch.lsx.vssran.hu.w"]
353    fn __lsx_vssran_hu_w(a: __v4u32, b: __v4u32) -> __v8u16;
354    #[link_name = "llvm.loongarch.lsx.vssran.wu.d"]
355    fn __lsx_vssran_wu_d(a: __v2u64, b: __v2u64) -> __v4u32;
356    #[link_name = "llvm.loongarch.lsx.vsrarn.b.h"]
357    fn __lsx_vsrarn_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
358    #[link_name = "llvm.loongarch.lsx.vsrarn.h.w"]
359    fn __lsx_vsrarn_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
360    #[link_name = "llvm.loongarch.lsx.vsrarn.w.d"]
361    fn __lsx_vsrarn_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
362    #[link_name = "llvm.loongarch.lsx.vssrarn.b.h"]
363    fn __lsx_vssrarn_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
364    #[link_name = "llvm.loongarch.lsx.vssrarn.h.w"]
365    fn __lsx_vssrarn_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
366    #[link_name = "llvm.loongarch.lsx.vssrarn.w.d"]
367    fn __lsx_vssrarn_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
368    #[link_name = "llvm.loongarch.lsx.vssrarn.bu.h"]
369    fn __lsx_vssrarn_bu_h(a: __v8u16, b: __v8u16) -> __v16u8;
370    #[link_name = "llvm.loongarch.lsx.vssrarn.hu.w"]
371    fn __lsx_vssrarn_hu_w(a: __v4u32, b: __v4u32) -> __v8u16;
372    #[link_name = "llvm.loongarch.lsx.vssrarn.wu.d"]
373    fn __lsx_vssrarn_wu_d(a: __v2u64, b: __v2u64) -> __v4u32;
374    #[link_name = "llvm.loongarch.lsx.vsrln.b.h"]
375    fn __lsx_vsrln_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
376    #[link_name = "llvm.loongarch.lsx.vsrln.h.w"]
377    fn __lsx_vsrln_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
378    #[link_name = "llvm.loongarch.lsx.vsrln.w.d"]
379    fn __lsx_vsrln_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
380    #[link_name = "llvm.loongarch.lsx.vssrln.bu.h"]
381    fn __lsx_vssrln_bu_h(a: __v8u16, b: __v8u16) -> __v16u8;
382    #[link_name = "llvm.loongarch.lsx.vssrln.hu.w"]
383    fn __lsx_vssrln_hu_w(a: __v4u32, b: __v4u32) -> __v8u16;
384    #[link_name = "llvm.loongarch.lsx.vssrln.wu.d"]
385    fn __lsx_vssrln_wu_d(a: __v2u64, b: __v2u64) -> __v4u32;
386    #[link_name = "llvm.loongarch.lsx.vsrlrn.b.h"]
387    fn __lsx_vsrlrn_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
388    #[link_name = "llvm.loongarch.lsx.vsrlrn.h.w"]
389    fn __lsx_vsrlrn_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
390    #[link_name = "llvm.loongarch.lsx.vsrlrn.w.d"]
391    fn __lsx_vsrlrn_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
392    #[link_name = "llvm.loongarch.lsx.vssrlrn.bu.h"]
393    fn __lsx_vssrlrn_bu_h(a: __v8u16, b: __v8u16) -> __v16u8;
394    #[link_name = "llvm.loongarch.lsx.vssrlrn.hu.w"]
395    fn __lsx_vssrlrn_hu_w(a: __v4u32, b: __v4u32) -> __v8u16;
396    #[link_name = "llvm.loongarch.lsx.vssrlrn.wu.d"]
397    fn __lsx_vssrlrn_wu_d(a: __v2u64, b: __v2u64) -> __v4u32;
398    #[link_name = "llvm.loongarch.lsx.vfrstpi.b"]
399    fn __lsx_vfrstpi_b(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
400    #[link_name = "llvm.loongarch.lsx.vfrstpi.h"]
401    fn __lsx_vfrstpi_h(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
402    #[link_name = "llvm.loongarch.lsx.vfrstp.b"]
403    fn __lsx_vfrstp_b(a: __v16i8, b: __v16i8, c: __v16i8) -> __v16i8;
404    #[link_name = "llvm.loongarch.lsx.vfrstp.h"]
405    fn __lsx_vfrstp_h(a: __v8i16, b: __v8i16, c: __v8i16) -> __v8i16;
406    #[link_name = "llvm.loongarch.lsx.vshuf4i.d"]
407    fn __lsx_vshuf4i_d(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
408    #[link_name = "llvm.loongarch.lsx.vbsrl.v"]
409    fn __lsx_vbsrl_v(a: __v16i8, b: u32) -> __v16i8;
410    #[link_name = "llvm.loongarch.lsx.vbsll.v"]
411    fn __lsx_vbsll_v(a: __v16i8, b: u32) -> __v16i8;
412    #[link_name = "llvm.loongarch.lsx.vextrins.b"]
413    fn __lsx_vextrins_b(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
414    #[link_name = "llvm.loongarch.lsx.vextrins.h"]
415    fn __lsx_vextrins_h(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
416    #[link_name = "llvm.loongarch.lsx.vextrins.w"]
417    fn __lsx_vextrins_w(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
418    #[link_name = "llvm.loongarch.lsx.vextrins.d"]
419    fn __lsx_vextrins_d(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
420    #[link_name = "llvm.loongarch.lsx.vmskltz.b"]
421    fn __lsx_vmskltz_b(a: __v16i8) -> __v16i8;
422    #[link_name = "llvm.loongarch.lsx.vmskltz.h"]
423    fn __lsx_vmskltz_h(a: __v8i16) -> __v8i16;
424    #[link_name = "llvm.loongarch.lsx.vmskltz.w"]
425    fn __lsx_vmskltz_w(a: __v4i32) -> __v4i32;
426    #[link_name = "llvm.loongarch.lsx.vmskltz.d"]
427    fn __lsx_vmskltz_d(a: __v2i64) -> __v2i64;
428    #[link_name = "llvm.loongarch.lsx.vsigncov.b"]
429    fn __lsx_vsigncov_b(a: __v16i8, b: __v16i8) -> __v16i8;
430    #[link_name = "llvm.loongarch.lsx.vsigncov.h"]
431    fn __lsx_vsigncov_h(a: __v8i16, b: __v8i16) -> __v8i16;
432    #[link_name = "llvm.loongarch.lsx.vsigncov.w"]
433    fn __lsx_vsigncov_w(a: __v4i32, b: __v4i32) -> __v4i32;
434    #[link_name = "llvm.loongarch.lsx.vsigncov.d"]
435    fn __lsx_vsigncov_d(a: __v2i64, b: __v2i64) -> __v2i64;
436    #[link_name = "llvm.loongarch.lsx.vftintrne.w.s"]
437    fn __lsx_vftintrne_w_s(a: __v4f32) -> __v4i32;
438    #[link_name = "llvm.loongarch.lsx.vftintrne.l.d"]
439    fn __lsx_vftintrne_l_d(a: __v2f64) -> __v2i64;
440    #[link_name = "llvm.loongarch.lsx.vftintrp.w.s"]
441    fn __lsx_vftintrp_w_s(a: __v4f32) -> __v4i32;
442    #[link_name = "llvm.loongarch.lsx.vftintrp.l.d"]
443    fn __lsx_vftintrp_l_d(a: __v2f64) -> __v2i64;
444    #[link_name = "llvm.loongarch.lsx.vftintrm.w.s"]
445    fn __lsx_vftintrm_w_s(a: __v4f32) -> __v4i32;
446    #[link_name = "llvm.loongarch.lsx.vftintrm.l.d"]
447    fn __lsx_vftintrm_l_d(a: __v2f64) -> __v2i64;
448    #[link_name = "llvm.loongarch.lsx.vftint.w.d"]
449    fn __lsx_vftint_w_d(a: __v2f64, b: __v2f64) -> __v4i32;
450    #[link_name = "llvm.loongarch.lsx.vffint.s.l"]
451    fn __lsx_vffint_s_l(a: __v2i64, b: __v2i64) -> __v4f32;
452    #[link_name = "llvm.loongarch.lsx.vftintrz.w.d"]
453    fn __lsx_vftintrz_w_d(a: __v2f64, b: __v2f64) -> __v4i32;
454    #[link_name = "llvm.loongarch.lsx.vftintrp.w.d"]
455    fn __lsx_vftintrp_w_d(a: __v2f64, b: __v2f64) -> __v4i32;
456    #[link_name = "llvm.loongarch.lsx.vftintrm.w.d"]
457    fn __lsx_vftintrm_w_d(a: __v2f64, b: __v2f64) -> __v4i32;
458    #[link_name = "llvm.loongarch.lsx.vftintrne.w.d"]
459    fn __lsx_vftintrne_w_d(a: __v2f64, b: __v2f64) -> __v4i32;
460    #[link_name = "llvm.loongarch.lsx.vftintl.l.s"]
461    fn __lsx_vftintl_l_s(a: __v4f32) -> __v2i64;
462    #[link_name = "llvm.loongarch.lsx.vftinth.l.s"]
463    fn __lsx_vftinth_l_s(a: __v4f32) -> __v2i64;
464    #[link_name = "llvm.loongarch.lsx.vffinth.d.w"]
465    fn __lsx_vffinth_d_w(a: __v4i32) -> __v2f64;
466    #[link_name = "llvm.loongarch.lsx.vffintl.d.w"]
467    fn __lsx_vffintl_d_w(a: __v4i32) -> __v2f64;
468    #[link_name = "llvm.loongarch.lsx.vftintrzl.l.s"]
469    fn __lsx_vftintrzl_l_s(a: __v4f32) -> __v2i64;
470    #[link_name = "llvm.loongarch.lsx.vftintrzh.l.s"]
471    fn __lsx_vftintrzh_l_s(a: __v4f32) -> __v2i64;
472    #[link_name = "llvm.loongarch.lsx.vftintrpl.l.s"]
473    fn __lsx_vftintrpl_l_s(a: __v4f32) -> __v2i64;
474    #[link_name = "llvm.loongarch.lsx.vftintrph.l.s"]
475    fn __lsx_vftintrph_l_s(a: __v4f32) -> __v2i64;
476    #[link_name = "llvm.loongarch.lsx.vftintrml.l.s"]
477    fn __lsx_vftintrml_l_s(a: __v4f32) -> __v2i64;
478    #[link_name = "llvm.loongarch.lsx.vftintrmh.l.s"]
479    fn __lsx_vftintrmh_l_s(a: __v4f32) -> __v2i64;
480    #[link_name = "llvm.loongarch.lsx.vftintrnel.l.s"]
481    fn __lsx_vftintrnel_l_s(a: __v4f32) -> __v2i64;
482    #[link_name = "llvm.loongarch.lsx.vftintrneh.l.s"]
483    fn __lsx_vftintrneh_l_s(a: __v4f32) -> __v2i64;
484    #[link_name = "llvm.loongarch.lsx.vfrintrne.s"]
485    fn __lsx_vfrintrne_s(a: __v4f32) -> __v4f32;
486    #[link_name = "llvm.loongarch.lsx.vfrintrne.d"]
487    fn __lsx_vfrintrne_d(a: __v2f64) -> __v2f64;
488    #[link_name = "llvm.loongarch.lsx.vfrintrz.s"]
489    fn __lsx_vfrintrz_s(a: __v4f32) -> __v4f32;
490    #[link_name = "llvm.loongarch.lsx.vfrintrz.d"]
491    fn __lsx_vfrintrz_d(a: __v2f64) -> __v2f64;
492    #[link_name = "llvm.loongarch.lsx.vfrintrp.s"]
493    fn __lsx_vfrintrp_s(a: __v4f32) -> __v4f32;
494    #[link_name = "llvm.loongarch.lsx.vfrintrp.d"]
495    fn __lsx_vfrintrp_d(a: __v2f64) -> __v2f64;
496    #[link_name = "llvm.loongarch.lsx.vfrintrm.s"]
497    fn __lsx_vfrintrm_s(a: __v4f32) -> __v4f32;
498    #[link_name = "llvm.loongarch.lsx.vfrintrm.d"]
499    fn __lsx_vfrintrm_d(a: __v2f64) -> __v2f64;
500    #[link_name = "llvm.loongarch.lsx.vstelm.b"]
501    fn __lsx_vstelm_b(a: __v16i8, b: *mut i8, c: i32, d: u32);
502    #[link_name = "llvm.loongarch.lsx.vstelm.h"]
503    fn __lsx_vstelm_h(a: __v8i16, b: *mut i8, c: i32, d: u32);
504    #[link_name = "llvm.loongarch.lsx.vstelm.w"]
505    fn __lsx_vstelm_w(a: __v4i32, b: *mut i8, c: i32, d: u32);
506    #[link_name = "llvm.loongarch.lsx.vstelm.d"]
507    fn __lsx_vstelm_d(a: __v2i64, b: *mut i8, c: i32, d: u32);
508    #[link_name = "llvm.loongarch.lsx.vaddwev.d.w"]
509    fn __lsx_vaddwev_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
510    #[link_name = "llvm.loongarch.lsx.vaddwev.w.h"]
511    fn __lsx_vaddwev_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
512    #[link_name = "llvm.loongarch.lsx.vaddwev.h.b"]
513    fn __lsx_vaddwev_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
514    #[link_name = "llvm.loongarch.lsx.vaddwod.d.w"]
515    fn __lsx_vaddwod_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
516    #[link_name = "llvm.loongarch.lsx.vaddwod.w.h"]
517    fn __lsx_vaddwod_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
518    #[link_name = "llvm.loongarch.lsx.vaddwod.h.b"]
519    fn __lsx_vaddwod_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
520    #[link_name = "llvm.loongarch.lsx.vaddwev.d.wu"]
521    fn __lsx_vaddwev_d_wu(a: __v4u32, b: __v4u32) -> __v2i64;
522    #[link_name = "llvm.loongarch.lsx.vaddwev.w.hu"]
523    fn __lsx_vaddwev_w_hu(a: __v8u16, b: __v8u16) -> __v4i32;
524    #[link_name = "llvm.loongarch.lsx.vaddwev.h.bu"]
525    fn __lsx_vaddwev_h_bu(a: __v16u8, b: __v16u8) -> __v8i16;
526    #[link_name = "llvm.loongarch.lsx.vaddwod.d.wu"]
527    fn __lsx_vaddwod_d_wu(a: __v4u32, b: __v4u32) -> __v2i64;
528    #[link_name = "llvm.loongarch.lsx.vaddwod.w.hu"]
529    fn __lsx_vaddwod_w_hu(a: __v8u16, b: __v8u16) -> __v4i32;
530    #[link_name = "llvm.loongarch.lsx.vaddwod.h.bu"]
531    fn __lsx_vaddwod_h_bu(a: __v16u8, b: __v16u8) -> __v8i16;
532    #[link_name = "llvm.loongarch.lsx.vaddwev.d.wu.w"]
533    fn __lsx_vaddwev_d_wu_w(a: __v4u32, b: __v4i32) -> __v2i64;
534    #[link_name = "llvm.loongarch.lsx.vaddwev.w.hu.h"]
535    fn __lsx_vaddwev_w_hu_h(a: __v8u16, b: __v8i16) -> __v4i32;
536    #[link_name = "llvm.loongarch.lsx.vaddwev.h.bu.b"]
537    fn __lsx_vaddwev_h_bu_b(a: __v16u8, b: __v16i8) -> __v8i16;
538    #[link_name = "llvm.loongarch.lsx.vaddwod.d.wu.w"]
539    fn __lsx_vaddwod_d_wu_w(a: __v4u32, b: __v4i32) -> __v2i64;
540    #[link_name = "llvm.loongarch.lsx.vaddwod.w.hu.h"]
541    fn __lsx_vaddwod_w_hu_h(a: __v8u16, b: __v8i16) -> __v4i32;
542    #[link_name = "llvm.loongarch.lsx.vaddwod.h.bu.b"]
543    fn __lsx_vaddwod_h_bu_b(a: __v16u8, b: __v16i8) -> __v8i16;
544    #[link_name = "llvm.loongarch.lsx.vsubwev.d.w"]
545    fn __lsx_vsubwev_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
546    #[link_name = "llvm.loongarch.lsx.vsubwev.w.h"]
547    fn __lsx_vsubwev_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
548    #[link_name = "llvm.loongarch.lsx.vsubwev.h.b"]
549    fn __lsx_vsubwev_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
550    #[link_name = "llvm.loongarch.lsx.vsubwod.d.w"]
551    fn __lsx_vsubwod_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
552    #[link_name = "llvm.loongarch.lsx.vsubwod.w.h"]
553    fn __lsx_vsubwod_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
554    #[link_name = "llvm.loongarch.lsx.vsubwod.h.b"]
555    fn __lsx_vsubwod_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
556    #[link_name = "llvm.loongarch.lsx.vsubwev.d.wu"]
557    fn __lsx_vsubwev_d_wu(a: __v4u32, b: __v4u32) -> __v2i64;
558    #[link_name = "llvm.loongarch.lsx.vsubwev.w.hu"]
559    fn __lsx_vsubwev_w_hu(a: __v8u16, b: __v8u16) -> __v4i32;
560    #[link_name = "llvm.loongarch.lsx.vsubwev.h.bu"]
561    fn __lsx_vsubwev_h_bu(a: __v16u8, b: __v16u8) -> __v8i16;
562    #[link_name = "llvm.loongarch.lsx.vsubwod.d.wu"]
563    fn __lsx_vsubwod_d_wu(a: __v4u32, b: __v4u32) -> __v2i64;
564    #[link_name = "llvm.loongarch.lsx.vsubwod.w.hu"]
565    fn __lsx_vsubwod_w_hu(a: __v8u16, b: __v8u16) -> __v4i32;
566    #[link_name = "llvm.loongarch.lsx.vsubwod.h.bu"]
567    fn __lsx_vsubwod_h_bu(a: __v16u8, b: __v16u8) -> __v8i16;
568    #[link_name = "llvm.loongarch.lsx.vaddwev.q.d"]
569    fn __lsx_vaddwev_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
570    #[link_name = "llvm.loongarch.lsx.vaddwod.q.d"]
571    fn __lsx_vaddwod_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
572    #[link_name = "llvm.loongarch.lsx.vaddwev.q.du"]
573    fn __lsx_vaddwev_q_du(a: __v2u64, b: __v2u64) -> __v2i64;
574    #[link_name = "llvm.loongarch.lsx.vaddwod.q.du"]
575    fn __lsx_vaddwod_q_du(a: __v2u64, b: __v2u64) -> __v2i64;
576    #[link_name = "llvm.loongarch.lsx.vsubwev.q.d"]
577    fn __lsx_vsubwev_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
578    #[link_name = "llvm.loongarch.lsx.vsubwod.q.d"]
579    fn __lsx_vsubwod_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
580    #[link_name = "llvm.loongarch.lsx.vsubwev.q.du"]
581    fn __lsx_vsubwev_q_du(a: __v2u64, b: __v2u64) -> __v2i64;
582    #[link_name = "llvm.loongarch.lsx.vsubwod.q.du"]
583    fn __lsx_vsubwod_q_du(a: __v2u64, b: __v2u64) -> __v2i64;
584    #[link_name = "llvm.loongarch.lsx.vaddwev.q.du.d"]
585    fn __lsx_vaddwev_q_du_d(a: __v2u64, b: __v2i64) -> __v2i64;
586    #[link_name = "llvm.loongarch.lsx.vaddwod.q.du.d"]
587    fn __lsx_vaddwod_q_du_d(a: __v2u64, b: __v2i64) -> __v2i64;
588    #[link_name = "llvm.loongarch.lsx.vmulwev.d.w"]
589    fn __lsx_vmulwev_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
590    #[link_name = "llvm.loongarch.lsx.vmulwev.w.h"]
591    fn __lsx_vmulwev_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
592    #[link_name = "llvm.loongarch.lsx.vmulwev.h.b"]
593    fn __lsx_vmulwev_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
594    #[link_name = "llvm.loongarch.lsx.vmulwod.d.w"]
595    fn __lsx_vmulwod_d_w(a: __v4i32, b: __v4i32) -> __v2i64;
596    #[link_name = "llvm.loongarch.lsx.vmulwod.w.h"]
597    fn __lsx_vmulwod_w_h(a: __v8i16, b: __v8i16) -> __v4i32;
598    #[link_name = "llvm.loongarch.lsx.vmulwod.h.b"]
599    fn __lsx_vmulwod_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
600    #[link_name = "llvm.loongarch.lsx.vmulwev.d.wu"]
601    fn __lsx_vmulwev_d_wu(a: __v4u32, b: __v4u32) -> __v2i64;
602    #[link_name = "llvm.loongarch.lsx.vmulwev.w.hu"]
603    fn __lsx_vmulwev_w_hu(a: __v8u16, b: __v8u16) -> __v4i32;
604    #[link_name = "llvm.loongarch.lsx.vmulwev.h.bu"]
605    fn __lsx_vmulwev_h_bu(a: __v16u8, b: __v16u8) -> __v8i16;
606    #[link_name = "llvm.loongarch.lsx.vmulwod.d.wu"]
607    fn __lsx_vmulwod_d_wu(a: __v4u32, b: __v4u32) -> __v2i64;
608    #[link_name = "llvm.loongarch.lsx.vmulwod.w.hu"]
609    fn __lsx_vmulwod_w_hu(a: __v8u16, b: __v8u16) -> __v4i32;
610    #[link_name = "llvm.loongarch.lsx.vmulwod.h.bu"]
611    fn __lsx_vmulwod_h_bu(a: __v16u8, b: __v16u8) -> __v8i16;
612    #[link_name = "llvm.loongarch.lsx.vmulwev.d.wu.w"]
613    fn __lsx_vmulwev_d_wu_w(a: __v4u32, b: __v4i32) -> __v2i64;
614    #[link_name = "llvm.loongarch.lsx.vmulwev.w.hu.h"]
615    fn __lsx_vmulwev_w_hu_h(a: __v8u16, b: __v8i16) -> __v4i32;
616    #[link_name = "llvm.loongarch.lsx.vmulwev.h.bu.b"]
617    fn __lsx_vmulwev_h_bu_b(a: __v16u8, b: __v16i8) -> __v8i16;
618    #[link_name = "llvm.loongarch.lsx.vmulwod.d.wu.w"]
619    fn __lsx_vmulwod_d_wu_w(a: __v4u32, b: __v4i32) -> __v2i64;
620    #[link_name = "llvm.loongarch.lsx.vmulwod.w.hu.h"]
621    fn __lsx_vmulwod_w_hu_h(a: __v8u16, b: __v8i16) -> __v4i32;
622    #[link_name = "llvm.loongarch.lsx.vmulwod.h.bu.b"]
623    fn __lsx_vmulwod_h_bu_b(a: __v16u8, b: __v16i8) -> __v8i16;
624    #[link_name = "llvm.loongarch.lsx.vmulwev.q.d"]
625    fn __lsx_vmulwev_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
626    #[link_name = "llvm.loongarch.lsx.vmulwod.q.d"]
627    fn __lsx_vmulwod_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
628    #[link_name = "llvm.loongarch.lsx.vmulwev.q.du"]
629    fn __lsx_vmulwev_q_du(a: __v2u64, b: __v2u64) -> __v2i64;
630    #[link_name = "llvm.loongarch.lsx.vmulwod.q.du"]
631    fn __lsx_vmulwod_q_du(a: __v2u64, b: __v2u64) -> __v2i64;
632    #[link_name = "llvm.loongarch.lsx.vmulwev.q.du.d"]
633    fn __lsx_vmulwev_q_du_d(a: __v2u64, b: __v2i64) -> __v2i64;
634    #[link_name = "llvm.loongarch.lsx.vmulwod.q.du.d"]
635    fn __lsx_vmulwod_q_du_d(a: __v2u64, b: __v2i64) -> __v2i64;
636    #[link_name = "llvm.loongarch.lsx.vhaddw.q.d"]
637    fn __lsx_vhaddw_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
638    #[link_name = "llvm.loongarch.lsx.vhaddw.qu.du"]
639    fn __lsx_vhaddw_qu_du(a: __v2u64, b: __v2u64) -> __v2u64;
640    #[link_name = "llvm.loongarch.lsx.vhsubw.q.d"]
641    fn __lsx_vhsubw_q_d(a: __v2i64, b: __v2i64) -> __v2i64;
642    #[link_name = "llvm.loongarch.lsx.vhsubw.qu.du"]
643    fn __lsx_vhsubw_qu_du(a: __v2u64, b: __v2u64) -> __v2u64;
644    #[link_name = "llvm.loongarch.lsx.vmaddwev.d.w"]
645    fn __lsx_vmaddwev_d_w(a: __v2i64, b: __v4i32, c: __v4i32) -> __v2i64;
646    #[link_name = "llvm.loongarch.lsx.vmaddwev.w.h"]
647    fn __lsx_vmaddwev_w_h(a: __v4i32, b: __v8i16, c: __v8i16) -> __v4i32;
648    #[link_name = "llvm.loongarch.lsx.vmaddwev.h.b"]
649    fn __lsx_vmaddwev_h_b(a: __v8i16, b: __v16i8, c: __v16i8) -> __v8i16;
650    #[link_name = "llvm.loongarch.lsx.vmaddwev.d.wu"]
651    fn __lsx_vmaddwev_d_wu(a: __v2u64, b: __v4u32, c: __v4u32) -> __v2u64;
652    #[link_name = "llvm.loongarch.lsx.vmaddwev.w.hu"]
653    fn __lsx_vmaddwev_w_hu(a: __v4u32, b: __v8u16, c: __v8u16) -> __v4u32;
654    #[link_name = "llvm.loongarch.lsx.vmaddwev.h.bu"]
655    fn __lsx_vmaddwev_h_bu(a: __v8u16, b: __v16u8, c: __v16u8) -> __v8u16;
656    #[link_name = "llvm.loongarch.lsx.vmaddwod.d.w"]
657    fn __lsx_vmaddwod_d_w(a: __v2i64, b: __v4i32, c: __v4i32) -> __v2i64;
658    #[link_name = "llvm.loongarch.lsx.vmaddwod.w.h"]
659    fn __lsx_vmaddwod_w_h(a: __v4i32, b: __v8i16, c: __v8i16) -> __v4i32;
660    #[link_name = "llvm.loongarch.lsx.vmaddwod.h.b"]
661    fn __lsx_vmaddwod_h_b(a: __v8i16, b: __v16i8, c: __v16i8) -> __v8i16;
662    #[link_name = "llvm.loongarch.lsx.vmaddwod.d.wu"]
663    fn __lsx_vmaddwod_d_wu(a: __v2u64, b: __v4u32, c: __v4u32) -> __v2u64;
664    #[link_name = "llvm.loongarch.lsx.vmaddwod.w.hu"]
665    fn __lsx_vmaddwod_w_hu(a: __v4u32, b: __v8u16, c: __v8u16) -> __v4u32;
666    #[link_name = "llvm.loongarch.lsx.vmaddwod.h.bu"]
667    fn __lsx_vmaddwod_h_bu(a: __v8u16, b: __v16u8, c: __v16u8) -> __v8u16;
668    #[link_name = "llvm.loongarch.lsx.vmaddwev.d.wu.w"]
669    fn __lsx_vmaddwev_d_wu_w(a: __v2i64, b: __v4u32, c: __v4i32) -> __v2i64;
670    #[link_name = "llvm.loongarch.lsx.vmaddwev.w.hu.h"]
671    fn __lsx_vmaddwev_w_hu_h(a: __v4i32, b: __v8u16, c: __v8i16) -> __v4i32;
672    #[link_name = "llvm.loongarch.lsx.vmaddwev.h.bu.b"]
673    fn __lsx_vmaddwev_h_bu_b(a: __v8i16, b: __v16u8, c: __v16i8) -> __v8i16;
674    #[link_name = "llvm.loongarch.lsx.vmaddwod.d.wu.w"]
675    fn __lsx_vmaddwod_d_wu_w(a: __v2i64, b: __v4u32, c: __v4i32) -> __v2i64;
676    #[link_name = "llvm.loongarch.lsx.vmaddwod.w.hu.h"]
677    fn __lsx_vmaddwod_w_hu_h(a: __v4i32, b: __v8u16, c: __v8i16) -> __v4i32;
678    #[link_name = "llvm.loongarch.lsx.vmaddwod.h.bu.b"]
679    fn __lsx_vmaddwod_h_bu_b(a: __v8i16, b: __v16u8, c: __v16i8) -> __v8i16;
680    #[link_name = "llvm.loongarch.lsx.vmaddwev.q.d"]
681    fn __lsx_vmaddwev_q_d(a: __v2i64, b: __v2i64, c: __v2i64) -> __v2i64;
682    #[link_name = "llvm.loongarch.lsx.vmaddwod.q.d"]
683    fn __lsx_vmaddwod_q_d(a: __v2i64, b: __v2i64, c: __v2i64) -> __v2i64;
684    #[link_name = "llvm.loongarch.lsx.vmaddwev.q.du"]
685    fn __lsx_vmaddwev_q_du(a: __v2u64, b: __v2u64, c: __v2u64) -> __v2u64;
686    #[link_name = "llvm.loongarch.lsx.vmaddwod.q.du"]
687    fn __lsx_vmaddwod_q_du(a: __v2u64, b: __v2u64, c: __v2u64) -> __v2u64;
688    #[link_name = "llvm.loongarch.lsx.vmaddwev.q.du.d"]
689    fn __lsx_vmaddwev_q_du_d(a: __v2i64, b: __v2u64, c: __v2i64) -> __v2i64;
690    #[link_name = "llvm.loongarch.lsx.vmaddwod.q.du.d"]
691    fn __lsx_vmaddwod_q_du_d(a: __v2i64, b: __v2u64, c: __v2i64) -> __v2i64;
692    #[link_name = "llvm.loongarch.lsx.vrotr.b"]
693    fn __lsx_vrotr_b(a: __v16i8, b: __v16i8) -> __v16i8;
694    #[link_name = "llvm.loongarch.lsx.vrotr.h"]
695    fn __lsx_vrotr_h(a: __v8i16, b: __v8i16) -> __v8i16;
696    #[link_name = "llvm.loongarch.lsx.vrotr.w"]
697    fn __lsx_vrotr_w(a: __v4i32, b: __v4i32) -> __v4i32;
698    #[link_name = "llvm.loongarch.lsx.vrotr.d"]
699    fn __lsx_vrotr_d(a: __v2i64, b: __v2i64) -> __v2i64;
700    #[link_name = "llvm.loongarch.lsx.vadd.q"]
701    fn __lsx_vadd_q(a: __v2i64, b: __v2i64) -> __v2i64;
702    #[link_name = "llvm.loongarch.lsx.vsub.q"]
703    fn __lsx_vsub_q(a: __v2i64, b: __v2i64) -> __v2i64;
704    #[link_name = "llvm.loongarch.lsx.vldrepl.b"]
705    fn __lsx_vldrepl_b(a: *const i8, b: i32) -> __v16i8;
706    #[link_name = "llvm.loongarch.lsx.vldrepl.h"]
707    fn __lsx_vldrepl_h(a: *const i8, b: i32) -> __v8i16;
708    #[link_name = "llvm.loongarch.lsx.vldrepl.w"]
709    fn __lsx_vldrepl_w(a: *const i8, b: i32) -> __v4i32;
710    #[link_name = "llvm.loongarch.lsx.vldrepl.d"]
711    fn __lsx_vldrepl_d(a: *const i8, b: i32) -> __v2i64;
712    #[link_name = "llvm.loongarch.lsx.vmskgez.b"]
713    fn __lsx_vmskgez_b(a: __v16i8) -> __v16i8;
714    #[link_name = "llvm.loongarch.lsx.vmsknz.b"]
715    fn __lsx_vmsknz_b(a: __v16i8) -> __v16i8;
716    #[link_name = "llvm.loongarch.lsx.vexth.h.b"]
717    fn __lsx_vexth_h_b(a: __v16i8) -> __v8i16;
718    #[link_name = "llvm.loongarch.lsx.vexth.w.h"]
719    fn __lsx_vexth_w_h(a: __v8i16) -> __v4i32;
720    #[link_name = "llvm.loongarch.lsx.vexth.d.w"]
721    fn __lsx_vexth_d_w(a: __v4i32) -> __v2i64;
722    #[link_name = "llvm.loongarch.lsx.vexth.q.d"]
723    fn __lsx_vexth_q_d(a: __v2i64) -> __v2i64;
724    #[link_name = "llvm.loongarch.lsx.vexth.hu.bu"]
725    fn __lsx_vexth_hu_bu(a: __v16u8) -> __v8u16;
726    #[link_name = "llvm.loongarch.lsx.vexth.wu.hu"]
727    fn __lsx_vexth_wu_hu(a: __v8u16) -> __v4u32;
728    #[link_name = "llvm.loongarch.lsx.vexth.du.wu"]
729    fn __lsx_vexth_du_wu(a: __v4u32) -> __v2u64;
730    #[link_name = "llvm.loongarch.lsx.vexth.qu.du"]
731    fn __lsx_vexth_qu_du(a: __v2u64) -> __v2u64;
732    #[link_name = "llvm.loongarch.lsx.vrotri.b"]
733    fn __lsx_vrotri_b(a: __v16i8, b: u32) -> __v16i8;
734    #[link_name = "llvm.loongarch.lsx.vrotri.h"]
735    fn __lsx_vrotri_h(a: __v8i16, b: u32) -> __v8i16;
736    #[link_name = "llvm.loongarch.lsx.vrotri.w"]
737    fn __lsx_vrotri_w(a: __v4i32, b: u32) -> __v4i32;
738    #[link_name = "llvm.loongarch.lsx.vrotri.d"]
739    fn __lsx_vrotri_d(a: __v2i64, b: u32) -> __v2i64;
740    #[link_name = "llvm.loongarch.lsx.vextl.q.d"]
741    fn __lsx_vextl_q_d(a: __v2i64) -> __v2i64;
742    #[link_name = "llvm.loongarch.lsx.vsrlni.b.h"]
743    fn __lsx_vsrlni_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
744    #[link_name = "llvm.loongarch.lsx.vsrlni.h.w"]
745    fn __lsx_vsrlni_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
746    #[link_name = "llvm.loongarch.lsx.vsrlni.w.d"]
747    fn __lsx_vsrlni_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
748    #[link_name = "llvm.loongarch.lsx.vsrlni.d.q"]
749    fn __lsx_vsrlni_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
750    #[link_name = "llvm.loongarch.lsx.vsrlrni.b.h"]
751    fn __lsx_vsrlrni_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
752    #[link_name = "llvm.loongarch.lsx.vsrlrni.h.w"]
753    fn __lsx_vsrlrni_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
754    #[link_name = "llvm.loongarch.lsx.vsrlrni.w.d"]
755    fn __lsx_vsrlrni_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
756    #[link_name = "llvm.loongarch.lsx.vsrlrni.d.q"]
757    fn __lsx_vsrlrni_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
758    #[link_name = "llvm.loongarch.lsx.vssrlni.b.h"]
759    fn __lsx_vssrlni_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
760    #[link_name = "llvm.loongarch.lsx.vssrlni.h.w"]
761    fn __lsx_vssrlni_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
762    #[link_name = "llvm.loongarch.lsx.vssrlni.w.d"]
763    fn __lsx_vssrlni_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
764    #[link_name = "llvm.loongarch.lsx.vssrlni.d.q"]
765    fn __lsx_vssrlni_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
766    #[link_name = "llvm.loongarch.lsx.vssrlni.bu.h"]
767    fn __lsx_vssrlni_bu_h(a: __v16u8, b: __v16i8, c: u32) -> __v16u8;
768    #[link_name = "llvm.loongarch.lsx.vssrlni.hu.w"]
769    fn __lsx_vssrlni_hu_w(a: __v8u16, b: __v8i16, c: u32) -> __v8u16;
770    #[link_name = "llvm.loongarch.lsx.vssrlni.wu.d"]
771    fn __lsx_vssrlni_wu_d(a: __v4u32, b: __v4i32, c: u32) -> __v4u32;
772    #[link_name = "llvm.loongarch.lsx.vssrlni.du.q"]
773    fn __lsx_vssrlni_du_q(a: __v2u64, b: __v2i64, c: u32) -> __v2u64;
774    #[link_name = "llvm.loongarch.lsx.vssrlrni.b.h"]
775    fn __lsx_vssrlrni_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
776    #[link_name = "llvm.loongarch.lsx.vssrlrni.h.w"]
777    fn __lsx_vssrlrni_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
778    #[link_name = "llvm.loongarch.lsx.vssrlrni.w.d"]
779    fn __lsx_vssrlrni_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
780    #[link_name = "llvm.loongarch.lsx.vssrlrni.d.q"]
781    fn __lsx_vssrlrni_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
782    #[link_name = "llvm.loongarch.lsx.vssrlrni.bu.h"]
783    fn __lsx_vssrlrni_bu_h(a: __v16u8, b: __v16i8, c: u32) -> __v16u8;
784    #[link_name = "llvm.loongarch.lsx.vssrlrni.hu.w"]
785    fn __lsx_vssrlrni_hu_w(a: __v8u16, b: __v8i16, c: u32) -> __v8u16;
786    #[link_name = "llvm.loongarch.lsx.vssrlrni.wu.d"]
787    fn __lsx_vssrlrni_wu_d(a: __v4u32, b: __v4i32, c: u32) -> __v4u32;
788    #[link_name = "llvm.loongarch.lsx.vssrlrni.du.q"]
789    fn __lsx_vssrlrni_du_q(a: __v2u64, b: __v2i64, c: u32) -> __v2u64;
790    #[link_name = "llvm.loongarch.lsx.vsrani.b.h"]
791    fn __lsx_vsrani_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
792    #[link_name = "llvm.loongarch.lsx.vsrani.h.w"]
793    fn __lsx_vsrani_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
794    #[link_name = "llvm.loongarch.lsx.vsrani.w.d"]
795    fn __lsx_vsrani_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
796    #[link_name = "llvm.loongarch.lsx.vsrani.d.q"]
797    fn __lsx_vsrani_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
798    #[link_name = "llvm.loongarch.lsx.vsrarni.b.h"]
799    fn __lsx_vsrarni_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
800    #[link_name = "llvm.loongarch.lsx.vsrarni.h.w"]
801    fn __lsx_vsrarni_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
802    #[link_name = "llvm.loongarch.lsx.vsrarni.w.d"]
803    fn __lsx_vsrarni_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
804    #[link_name = "llvm.loongarch.lsx.vsrarni.d.q"]
805    fn __lsx_vsrarni_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
806    #[link_name = "llvm.loongarch.lsx.vssrani.b.h"]
807    fn __lsx_vssrani_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
808    #[link_name = "llvm.loongarch.lsx.vssrani.h.w"]
809    fn __lsx_vssrani_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
810    #[link_name = "llvm.loongarch.lsx.vssrani.w.d"]
811    fn __lsx_vssrani_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
812    #[link_name = "llvm.loongarch.lsx.vssrani.d.q"]
813    fn __lsx_vssrani_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
814    #[link_name = "llvm.loongarch.lsx.vssrani.bu.h"]
815    fn __lsx_vssrani_bu_h(a: __v16u8, b: __v16i8, c: u32) -> __v16u8;
816    #[link_name = "llvm.loongarch.lsx.vssrani.hu.w"]
817    fn __lsx_vssrani_hu_w(a: __v8u16, b: __v8i16, c: u32) -> __v8u16;
818    #[link_name = "llvm.loongarch.lsx.vssrani.wu.d"]
819    fn __lsx_vssrani_wu_d(a: __v4u32, b: __v4i32, c: u32) -> __v4u32;
820    #[link_name = "llvm.loongarch.lsx.vssrani.du.q"]
821    fn __lsx_vssrani_du_q(a: __v2u64, b: __v2i64, c: u32) -> __v2u64;
822    #[link_name = "llvm.loongarch.lsx.vssrarni.b.h"]
823    fn __lsx_vssrarni_b_h(a: __v16i8, b: __v16i8, c: u32) -> __v16i8;
824    #[link_name = "llvm.loongarch.lsx.vssrarni.h.w"]
825    fn __lsx_vssrarni_h_w(a: __v8i16, b: __v8i16, c: u32) -> __v8i16;
826    #[link_name = "llvm.loongarch.lsx.vssrarni.w.d"]
827    fn __lsx_vssrarni_w_d(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
828    #[link_name = "llvm.loongarch.lsx.vssrarni.d.q"]
829    fn __lsx_vssrarni_d_q(a: __v2i64, b: __v2i64, c: u32) -> __v2i64;
830    #[link_name = "llvm.loongarch.lsx.vssrarni.bu.h"]
831    fn __lsx_vssrarni_bu_h(a: __v16u8, b: __v16i8, c: u32) -> __v16u8;
832    #[link_name = "llvm.loongarch.lsx.vssrarni.hu.w"]
833    fn __lsx_vssrarni_hu_w(a: __v8u16, b: __v8i16, c: u32) -> __v8u16;
834    #[link_name = "llvm.loongarch.lsx.vssrarni.wu.d"]
835    fn __lsx_vssrarni_wu_d(a: __v4u32, b: __v4i32, c: u32) -> __v4u32;
836    #[link_name = "llvm.loongarch.lsx.vssrarni.du.q"]
837    fn __lsx_vssrarni_du_q(a: __v2u64, b: __v2i64, c: u32) -> __v2u64;
838    #[link_name = "llvm.loongarch.lsx.vpermi.w"]
839    fn __lsx_vpermi_w(a: __v4i32, b: __v4i32, c: u32) -> __v4i32;
840    #[link_name = "llvm.loongarch.lsx.vld"]
841    fn __lsx_vld(a: *const i8, b: i32) -> __v16i8;
842    #[link_name = "llvm.loongarch.lsx.vst"]
843    fn __lsx_vst(a: __v16i8, b: *mut i8, c: i32);
844    #[link_name = "llvm.loongarch.lsx.vssrlrn.b.h"]
845    fn __lsx_vssrlrn_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
846    #[link_name = "llvm.loongarch.lsx.vssrlrn.h.w"]
847    fn __lsx_vssrlrn_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
848    #[link_name = "llvm.loongarch.lsx.vssrlrn.w.d"]
849    fn __lsx_vssrlrn_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
850    #[link_name = "llvm.loongarch.lsx.vssrln.b.h"]
851    fn __lsx_vssrln_b_h(a: __v8i16, b: __v8i16) -> __v16i8;
852    #[link_name = "llvm.loongarch.lsx.vssrln.h.w"]
853    fn __lsx_vssrln_h_w(a: __v4i32, b: __v4i32) -> __v8i16;
854    #[link_name = "llvm.loongarch.lsx.vssrln.w.d"]
855    fn __lsx_vssrln_w_d(a: __v2i64, b: __v2i64) -> __v4i32;
856    #[link_name = "llvm.loongarch.lsx.vldi"]
857    fn __lsx_vldi(a: i32) -> __v2i64;
858    #[link_name = "llvm.loongarch.lsx.vshuf.b"]
859    fn __lsx_vshuf_b(a: __v16i8, b: __v16i8, c: __v16i8) -> __v16i8;
860    #[link_name = "llvm.loongarch.lsx.vldx"]
861    fn __lsx_vldx(a: *const i8, b: i64) -> __v16i8;
862    #[link_name = "llvm.loongarch.lsx.vstx"]
863    fn __lsx_vstx(a: __v16i8, b: *mut i8, c: i64);
864    #[link_name = "llvm.loongarch.lsx.vextl.qu.du"]
865    fn __lsx_vextl_qu_du(a: __v2u64) -> __v2u64;
866    #[link_name = "llvm.loongarch.lsx.bnz.b"]
867    fn __lsx_bnz_b(a: __v16u8) -> i32;
868    #[link_name = "llvm.loongarch.lsx.bnz.d"]
869    fn __lsx_bnz_d(a: __v2u64) -> i32;
870    #[link_name = "llvm.loongarch.lsx.bnz.h"]
871    fn __lsx_bnz_h(a: __v8u16) -> i32;
872    #[link_name = "llvm.loongarch.lsx.bnz.v"]
873    fn __lsx_bnz_v(a: __v16u8) -> i32;
874    #[link_name = "llvm.loongarch.lsx.bnz.w"]
875    fn __lsx_bnz_w(a: __v4u32) -> i32;
876    #[link_name = "llvm.loongarch.lsx.bz.b"]
877    fn __lsx_bz_b(a: __v16u8) -> i32;
878    #[link_name = "llvm.loongarch.lsx.bz.d"]
879    fn __lsx_bz_d(a: __v2u64) -> i32;
880    #[link_name = "llvm.loongarch.lsx.bz.h"]
881    fn __lsx_bz_h(a: __v8u16) -> i32;
882    #[link_name = "llvm.loongarch.lsx.bz.v"]
883    fn __lsx_bz_v(a: __v16u8) -> i32;
884    #[link_name = "llvm.loongarch.lsx.bz.w"]
885    fn __lsx_bz_w(a: __v4u32) -> i32;
886    #[link_name = "llvm.loongarch.lsx.vfcmp.caf.d"]
887    fn __lsx_vfcmp_caf_d(a: __v2f64, b: __v2f64) -> __v2i64;
888    #[link_name = "llvm.loongarch.lsx.vfcmp.caf.s"]
889    fn __lsx_vfcmp_caf_s(a: __v4f32, b: __v4f32) -> __v4i32;
890    #[link_name = "llvm.loongarch.lsx.vfcmp.ceq.d"]
891    fn __lsx_vfcmp_ceq_d(a: __v2f64, b: __v2f64) -> __v2i64;
892    #[link_name = "llvm.loongarch.lsx.vfcmp.ceq.s"]
893    fn __lsx_vfcmp_ceq_s(a: __v4f32, b: __v4f32) -> __v4i32;
894    #[link_name = "llvm.loongarch.lsx.vfcmp.cle.d"]
895    fn __lsx_vfcmp_cle_d(a: __v2f64, b: __v2f64) -> __v2i64;
896    #[link_name = "llvm.loongarch.lsx.vfcmp.cle.s"]
897    fn __lsx_vfcmp_cle_s(a: __v4f32, b: __v4f32) -> __v4i32;
898    #[link_name = "llvm.loongarch.lsx.vfcmp.clt.d"]
899    fn __lsx_vfcmp_clt_d(a: __v2f64, b: __v2f64) -> __v2i64;
900    #[link_name = "llvm.loongarch.lsx.vfcmp.clt.s"]
901    fn __lsx_vfcmp_clt_s(a: __v4f32, b: __v4f32) -> __v4i32;
902    #[link_name = "llvm.loongarch.lsx.vfcmp.cne.d"]
903    fn __lsx_vfcmp_cne_d(a: __v2f64, b: __v2f64) -> __v2i64;
904    #[link_name = "llvm.loongarch.lsx.vfcmp.cne.s"]
905    fn __lsx_vfcmp_cne_s(a: __v4f32, b: __v4f32) -> __v4i32;
906    #[link_name = "llvm.loongarch.lsx.vfcmp.cor.d"]
907    fn __lsx_vfcmp_cor_d(a: __v2f64, b: __v2f64) -> __v2i64;
908    #[link_name = "llvm.loongarch.lsx.vfcmp.cor.s"]
909    fn __lsx_vfcmp_cor_s(a: __v4f32, b: __v4f32) -> __v4i32;
910    #[link_name = "llvm.loongarch.lsx.vfcmp.cueq.d"]
911    fn __lsx_vfcmp_cueq_d(a: __v2f64, b: __v2f64) -> __v2i64;
912    #[link_name = "llvm.loongarch.lsx.vfcmp.cueq.s"]
913    fn __lsx_vfcmp_cueq_s(a: __v4f32, b: __v4f32) -> __v4i32;
914    #[link_name = "llvm.loongarch.lsx.vfcmp.cule.d"]
915    fn __lsx_vfcmp_cule_d(a: __v2f64, b: __v2f64) -> __v2i64;
916    #[link_name = "llvm.loongarch.lsx.vfcmp.cule.s"]
917    fn __lsx_vfcmp_cule_s(a: __v4f32, b: __v4f32) -> __v4i32;
918    #[link_name = "llvm.loongarch.lsx.vfcmp.cult.d"]
919    fn __lsx_vfcmp_cult_d(a: __v2f64, b: __v2f64) -> __v2i64;
920    #[link_name = "llvm.loongarch.lsx.vfcmp.cult.s"]
921    fn __lsx_vfcmp_cult_s(a: __v4f32, b: __v4f32) -> __v4i32;
922    #[link_name = "llvm.loongarch.lsx.vfcmp.cun.d"]
923    fn __lsx_vfcmp_cun_d(a: __v2f64, b: __v2f64) -> __v2i64;
924    #[link_name = "llvm.loongarch.lsx.vfcmp.cune.d"]
925    fn __lsx_vfcmp_cune_d(a: __v2f64, b: __v2f64) -> __v2i64;
926    #[link_name = "llvm.loongarch.lsx.vfcmp.cune.s"]
927    fn __lsx_vfcmp_cune_s(a: __v4f32, b: __v4f32) -> __v4i32;
928    #[link_name = "llvm.loongarch.lsx.vfcmp.cun.s"]
929    fn __lsx_vfcmp_cun_s(a: __v4f32, b: __v4f32) -> __v4i32;
930    #[link_name = "llvm.loongarch.lsx.vfcmp.saf.d"]
931    fn __lsx_vfcmp_saf_d(a: __v2f64, b: __v2f64) -> __v2i64;
932    #[link_name = "llvm.loongarch.lsx.vfcmp.saf.s"]
933    fn __lsx_vfcmp_saf_s(a: __v4f32, b: __v4f32) -> __v4i32;
934    #[link_name = "llvm.loongarch.lsx.vfcmp.seq.d"]
935    fn __lsx_vfcmp_seq_d(a: __v2f64, b: __v2f64) -> __v2i64;
936    #[link_name = "llvm.loongarch.lsx.vfcmp.seq.s"]
937    fn __lsx_vfcmp_seq_s(a: __v4f32, b: __v4f32) -> __v4i32;
938    #[link_name = "llvm.loongarch.lsx.vfcmp.sle.d"]
939    fn __lsx_vfcmp_sle_d(a: __v2f64, b: __v2f64) -> __v2i64;
940    #[link_name = "llvm.loongarch.lsx.vfcmp.sle.s"]
941    fn __lsx_vfcmp_sle_s(a: __v4f32, b: __v4f32) -> __v4i32;
942    #[link_name = "llvm.loongarch.lsx.vfcmp.slt.d"]
943    fn __lsx_vfcmp_slt_d(a: __v2f64, b: __v2f64) -> __v2i64;
944    #[link_name = "llvm.loongarch.lsx.vfcmp.slt.s"]
945    fn __lsx_vfcmp_slt_s(a: __v4f32, b: __v4f32) -> __v4i32;
946    #[link_name = "llvm.loongarch.lsx.vfcmp.sne.d"]
947    fn __lsx_vfcmp_sne_d(a: __v2f64, b: __v2f64) -> __v2i64;
948    #[link_name = "llvm.loongarch.lsx.vfcmp.sne.s"]
949    fn __lsx_vfcmp_sne_s(a: __v4f32, b: __v4f32) -> __v4i32;
950    #[link_name = "llvm.loongarch.lsx.vfcmp.sor.d"]
951    fn __lsx_vfcmp_sor_d(a: __v2f64, b: __v2f64) -> __v2i64;
952    #[link_name = "llvm.loongarch.lsx.vfcmp.sor.s"]
953    fn __lsx_vfcmp_sor_s(a: __v4f32, b: __v4f32) -> __v4i32;
954    #[link_name = "llvm.loongarch.lsx.vfcmp.sueq.d"]
955    fn __lsx_vfcmp_sueq_d(a: __v2f64, b: __v2f64) -> __v2i64;
956    #[link_name = "llvm.loongarch.lsx.vfcmp.sueq.s"]
957    fn __lsx_vfcmp_sueq_s(a: __v4f32, b: __v4f32) -> __v4i32;
958    #[link_name = "llvm.loongarch.lsx.vfcmp.sule.d"]
959    fn __lsx_vfcmp_sule_d(a: __v2f64, b: __v2f64) -> __v2i64;
960    #[link_name = "llvm.loongarch.lsx.vfcmp.sule.s"]
961    fn __lsx_vfcmp_sule_s(a: __v4f32, b: __v4f32) -> __v4i32;
962    #[link_name = "llvm.loongarch.lsx.vfcmp.sult.d"]
963    fn __lsx_vfcmp_sult_d(a: __v2f64, b: __v2f64) -> __v2i64;
964    #[link_name = "llvm.loongarch.lsx.vfcmp.sult.s"]
965    fn __lsx_vfcmp_sult_s(a: __v4f32, b: __v4f32) -> __v4i32;
966    #[link_name = "llvm.loongarch.lsx.vfcmp.sun.d"]
967    fn __lsx_vfcmp_sun_d(a: __v2f64, b: __v2f64) -> __v2i64;
968    #[link_name = "llvm.loongarch.lsx.vfcmp.sune.d"]
969    fn __lsx_vfcmp_sune_d(a: __v2f64, b: __v2f64) -> __v2i64;
970    #[link_name = "llvm.loongarch.lsx.vfcmp.sune.s"]
971    fn __lsx_vfcmp_sune_s(a: __v4f32, b: __v4f32) -> __v4i32;
972    #[link_name = "llvm.loongarch.lsx.vfcmp.sun.s"]
973    fn __lsx_vfcmp_sun_s(a: __v4f32, b: __v4f32) -> __v4i32;
974}
975
976#[inline]
977#[target_feature(enable = "lsx")]
978#[unstable(feature = "stdarch_loongarch", issue = "117427")]
979pub fn lsx_vsrar_b(a: m128i, b: m128i) -> m128i {
980    unsafe { transmute(__lsx_vsrar_b(transmute(a), transmute(b))) }
981}
982
983#[inline]
984#[target_feature(enable = "lsx")]
985#[unstable(feature = "stdarch_loongarch", issue = "117427")]
986pub fn lsx_vsrar_h(a: m128i, b: m128i) -> m128i {
987    unsafe { transmute(__lsx_vsrar_h(transmute(a), transmute(b))) }
988}
989
990#[inline]
991#[target_feature(enable = "lsx")]
992#[unstable(feature = "stdarch_loongarch", issue = "117427")]
993pub fn lsx_vsrar_w(a: m128i, b: m128i) -> m128i {
994    unsafe { transmute(__lsx_vsrar_w(transmute(a), transmute(b))) }
995}
996
997#[inline]
998#[target_feature(enable = "lsx")]
999#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1000pub fn lsx_vsrar_d(a: m128i, b: m128i) -> m128i {
1001    unsafe { transmute(__lsx_vsrar_d(transmute(a), transmute(b))) }
1002}
1003
1004#[inline]
1005#[target_feature(enable = "lsx")]
1006#[rustc_legacy_const_generics(1)]
1007#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1008pub fn lsx_vsrari_b<const IMM3: u32>(a: m128i) -> m128i {
1009    static_assert_uimm_bits!(IMM3, 3);
1010    unsafe { transmute(__lsx_vsrari_b(transmute(a), IMM3)) }
1011}
1012
1013#[inline]
1014#[target_feature(enable = "lsx")]
1015#[rustc_legacy_const_generics(1)]
1016#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1017pub fn lsx_vsrari_h<const IMM4: u32>(a: m128i) -> m128i {
1018    static_assert_uimm_bits!(IMM4, 4);
1019    unsafe { transmute(__lsx_vsrari_h(transmute(a), IMM4)) }
1020}
1021
1022#[inline]
1023#[target_feature(enable = "lsx")]
1024#[rustc_legacy_const_generics(1)]
1025#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1026pub fn lsx_vsrari_w<const IMM5: u32>(a: m128i) -> m128i {
1027    static_assert_uimm_bits!(IMM5, 5);
1028    unsafe { transmute(__lsx_vsrari_w(transmute(a), IMM5)) }
1029}
1030
1031#[inline]
1032#[target_feature(enable = "lsx")]
1033#[rustc_legacy_const_generics(1)]
1034#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1035pub fn lsx_vsrari_d<const IMM6: u32>(a: m128i) -> m128i {
1036    static_assert_uimm_bits!(IMM6, 6);
1037    unsafe { transmute(__lsx_vsrari_d(transmute(a), IMM6)) }
1038}
1039
1040#[inline]
1041#[target_feature(enable = "lsx")]
1042#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1043pub fn lsx_vsrlr_b(a: m128i, b: m128i) -> m128i {
1044    unsafe { transmute(__lsx_vsrlr_b(transmute(a), transmute(b))) }
1045}
1046
1047#[inline]
1048#[target_feature(enable = "lsx")]
1049#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1050pub fn lsx_vsrlr_h(a: m128i, b: m128i) -> m128i {
1051    unsafe { transmute(__lsx_vsrlr_h(transmute(a), transmute(b))) }
1052}
1053
1054#[inline]
1055#[target_feature(enable = "lsx")]
1056#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1057pub fn lsx_vsrlr_w(a: m128i, b: m128i) -> m128i {
1058    unsafe { transmute(__lsx_vsrlr_w(transmute(a), transmute(b))) }
1059}
1060
1061#[inline]
1062#[target_feature(enable = "lsx")]
1063#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1064pub fn lsx_vsrlr_d(a: m128i, b: m128i) -> m128i {
1065    unsafe { transmute(__lsx_vsrlr_d(transmute(a), transmute(b))) }
1066}
1067
1068#[inline]
1069#[target_feature(enable = "lsx")]
1070#[rustc_legacy_const_generics(1)]
1071#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1072pub fn lsx_vsrlri_b<const IMM3: u32>(a: m128i) -> m128i {
1073    static_assert_uimm_bits!(IMM3, 3);
1074    unsafe { transmute(__lsx_vsrlri_b(transmute(a), IMM3)) }
1075}
1076
1077#[inline]
1078#[target_feature(enable = "lsx")]
1079#[rustc_legacy_const_generics(1)]
1080#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1081pub fn lsx_vsrlri_h<const IMM4: u32>(a: m128i) -> m128i {
1082    static_assert_uimm_bits!(IMM4, 4);
1083    unsafe { transmute(__lsx_vsrlri_h(transmute(a), IMM4)) }
1084}
1085
1086#[inline]
1087#[target_feature(enable = "lsx")]
1088#[rustc_legacy_const_generics(1)]
1089#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1090pub fn lsx_vsrlri_w<const IMM5: u32>(a: m128i) -> m128i {
1091    static_assert_uimm_bits!(IMM5, 5);
1092    unsafe { transmute(__lsx_vsrlri_w(transmute(a), IMM5)) }
1093}
1094
1095#[inline]
1096#[target_feature(enable = "lsx")]
1097#[rustc_legacy_const_generics(1)]
1098#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1099pub fn lsx_vsrlri_d<const IMM6: u32>(a: m128i) -> m128i {
1100    static_assert_uimm_bits!(IMM6, 6);
1101    unsafe { transmute(__lsx_vsrlri_d(transmute(a), IMM6)) }
1102}
1103
1104#[inline]
1105#[target_feature(enable = "lsx")]
1106#[rustc_legacy_const_generics(1)]
1107#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1108pub fn lsx_vbitclri_b<const IMM3: u32>(a: m128i) -> m128i {
1109    static_assert_uimm_bits!(IMM3, 3);
1110    unsafe { transmute(__lsx_vbitclri_b(transmute(a), IMM3)) }
1111}
1112
1113#[inline]
1114#[target_feature(enable = "lsx")]
1115#[rustc_legacy_const_generics(1)]
1116#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1117pub fn lsx_vbitclri_h<const IMM4: u32>(a: m128i) -> m128i {
1118    static_assert_uimm_bits!(IMM4, 4);
1119    unsafe { transmute(__lsx_vbitclri_h(transmute(a), IMM4)) }
1120}
1121
1122#[inline]
1123#[target_feature(enable = "lsx")]
1124#[rustc_legacy_const_generics(1)]
1125#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1126pub fn lsx_vbitclri_w<const IMM5: u32>(a: m128i) -> m128i {
1127    static_assert_uimm_bits!(IMM5, 5);
1128    unsafe { transmute(__lsx_vbitclri_w(transmute(a), IMM5)) }
1129}
1130
1131#[inline]
1132#[target_feature(enable = "lsx")]
1133#[rustc_legacy_const_generics(1)]
1134#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1135pub fn lsx_vbitclri_d<const IMM6: u32>(a: m128i) -> m128i {
1136    static_assert_uimm_bits!(IMM6, 6);
1137    unsafe { transmute(__lsx_vbitclri_d(transmute(a), IMM6)) }
1138}
1139
1140#[inline]
1141#[target_feature(enable = "lsx")]
1142#[rustc_legacy_const_generics(1)]
1143#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1144pub fn lsx_vbitseti_b<const IMM3: u32>(a: m128i) -> m128i {
1145    static_assert_uimm_bits!(IMM3, 3);
1146    unsafe { transmute(__lsx_vbitseti_b(transmute(a), IMM3)) }
1147}
1148
1149#[inline]
1150#[target_feature(enable = "lsx")]
1151#[rustc_legacy_const_generics(1)]
1152#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1153pub fn lsx_vbitseti_h<const IMM4: u32>(a: m128i) -> m128i {
1154    static_assert_uimm_bits!(IMM4, 4);
1155    unsafe { transmute(__lsx_vbitseti_h(transmute(a), IMM4)) }
1156}
1157
1158#[inline]
1159#[target_feature(enable = "lsx")]
1160#[rustc_legacy_const_generics(1)]
1161#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1162pub fn lsx_vbitseti_w<const IMM5: u32>(a: m128i) -> m128i {
1163    static_assert_uimm_bits!(IMM5, 5);
1164    unsafe { transmute(__lsx_vbitseti_w(transmute(a), IMM5)) }
1165}
1166
1167#[inline]
1168#[target_feature(enable = "lsx")]
1169#[rustc_legacy_const_generics(1)]
1170#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1171pub fn lsx_vbitseti_d<const IMM6: u32>(a: m128i) -> m128i {
1172    static_assert_uimm_bits!(IMM6, 6);
1173    unsafe { transmute(__lsx_vbitseti_d(transmute(a), IMM6)) }
1174}
1175
1176#[inline]
1177#[target_feature(enable = "lsx")]
1178#[rustc_legacy_const_generics(1)]
1179#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1180pub fn lsx_vbitrevi_b<const IMM3: u32>(a: m128i) -> m128i {
1181    static_assert_uimm_bits!(IMM3, 3);
1182    unsafe { transmute(__lsx_vbitrevi_b(transmute(a), IMM3)) }
1183}
1184
1185#[inline]
1186#[target_feature(enable = "lsx")]
1187#[rustc_legacy_const_generics(1)]
1188#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1189pub fn lsx_vbitrevi_h<const IMM4: u32>(a: m128i) -> m128i {
1190    static_assert_uimm_bits!(IMM4, 4);
1191    unsafe { transmute(__lsx_vbitrevi_h(transmute(a), IMM4)) }
1192}
1193
1194#[inline]
1195#[target_feature(enable = "lsx")]
1196#[rustc_legacy_const_generics(1)]
1197#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1198pub fn lsx_vbitrevi_w<const IMM5: u32>(a: m128i) -> m128i {
1199    static_assert_uimm_bits!(IMM5, 5);
1200    unsafe { transmute(__lsx_vbitrevi_w(transmute(a), IMM5)) }
1201}
1202
1203#[inline]
1204#[target_feature(enable = "lsx")]
1205#[rustc_legacy_const_generics(1)]
1206#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1207pub fn lsx_vbitrevi_d<const IMM6: u32>(a: m128i) -> m128i {
1208    static_assert_uimm_bits!(IMM6, 6);
1209    unsafe { transmute(__lsx_vbitrevi_d(transmute(a), IMM6)) }
1210}
1211
1212#[inline]
1213#[target_feature(enable = "lsx")]
1214#[rustc_legacy_const_generics(1)]
1215#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1216pub fn lsx_vsubi_bu<const IMM5: u32>(a: m128i) -> m128i {
1217    static_assert_uimm_bits!(IMM5, 5);
1218    unsafe { transmute(__lsx_vsubi_bu(transmute(a), IMM5)) }
1219}
1220
1221#[inline]
1222#[target_feature(enable = "lsx")]
1223#[rustc_legacy_const_generics(1)]
1224#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1225pub fn lsx_vsubi_hu<const IMM5: u32>(a: m128i) -> m128i {
1226    static_assert_uimm_bits!(IMM5, 5);
1227    unsafe { transmute(__lsx_vsubi_hu(transmute(a), IMM5)) }
1228}
1229
1230#[inline]
1231#[target_feature(enable = "lsx")]
1232#[rustc_legacy_const_generics(1)]
1233#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1234pub fn lsx_vsubi_wu<const IMM5: u32>(a: m128i) -> m128i {
1235    static_assert_uimm_bits!(IMM5, 5);
1236    unsafe { transmute(__lsx_vsubi_wu(transmute(a), IMM5)) }
1237}
1238
1239#[inline]
1240#[target_feature(enable = "lsx")]
1241#[rustc_legacy_const_generics(1)]
1242#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1243pub fn lsx_vsubi_du<const IMM5: u32>(a: m128i) -> m128i {
1244    static_assert_uimm_bits!(IMM5, 5);
1245    unsafe { transmute(__lsx_vsubi_du(transmute(a), IMM5)) }
1246}
1247
1248#[inline]
1249#[target_feature(enable = "lsx")]
1250#[rustc_legacy_const_generics(1)]
1251#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1252pub fn lsx_vsat_b<const IMM3: u32>(a: m128i) -> m128i {
1253    static_assert_uimm_bits!(IMM3, 3);
1254    unsafe { transmute(__lsx_vsat_b(transmute(a), IMM3)) }
1255}
1256
1257#[inline]
1258#[target_feature(enable = "lsx")]
1259#[rustc_legacy_const_generics(1)]
1260#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1261pub fn lsx_vsat_h<const IMM4: u32>(a: m128i) -> m128i {
1262    static_assert_uimm_bits!(IMM4, 4);
1263    unsafe { transmute(__lsx_vsat_h(transmute(a), IMM4)) }
1264}
1265
1266#[inline]
1267#[target_feature(enable = "lsx")]
1268#[rustc_legacy_const_generics(1)]
1269#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1270pub fn lsx_vsat_w<const IMM5: u32>(a: m128i) -> m128i {
1271    static_assert_uimm_bits!(IMM5, 5);
1272    unsafe { transmute(__lsx_vsat_w(transmute(a), IMM5)) }
1273}
1274
1275#[inline]
1276#[target_feature(enable = "lsx")]
1277#[rustc_legacy_const_generics(1)]
1278#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1279pub fn lsx_vsat_d<const IMM6: u32>(a: m128i) -> m128i {
1280    static_assert_uimm_bits!(IMM6, 6);
1281    unsafe { transmute(__lsx_vsat_d(transmute(a), IMM6)) }
1282}
1283
1284#[inline]
1285#[target_feature(enable = "lsx")]
1286#[rustc_legacy_const_generics(1)]
1287#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1288pub fn lsx_vsat_bu<const IMM3: u32>(a: m128i) -> m128i {
1289    static_assert_uimm_bits!(IMM3, 3);
1290    unsafe { transmute(__lsx_vsat_bu(transmute(a), IMM3)) }
1291}
1292
1293#[inline]
1294#[target_feature(enable = "lsx")]
1295#[rustc_legacy_const_generics(1)]
1296#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1297pub fn lsx_vsat_hu<const IMM4: u32>(a: m128i) -> m128i {
1298    static_assert_uimm_bits!(IMM4, 4);
1299    unsafe { transmute(__lsx_vsat_hu(transmute(a), IMM4)) }
1300}
1301
1302#[inline]
1303#[target_feature(enable = "lsx")]
1304#[rustc_legacy_const_generics(1)]
1305#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1306pub fn lsx_vsat_wu<const IMM5: u32>(a: m128i) -> m128i {
1307    static_assert_uimm_bits!(IMM5, 5);
1308    unsafe { transmute(__lsx_vsat_wu(transmute(a), IMM5)) }
1309}
1310
1311#[inline]
1312#[target_feature(enable = "lsx")]
1313#[rustc_legacy_const_generics(1)]
1314#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1315pub fn lsx_vsat_du<const IMM6: u32>(a: m128i) -> m128i {
1316    static_assert_uimm_bits!(IMM6, 6);
1317    unsafe { transmute(__lsx_vsat_du(transmute(a), IMM6)) }
1318}
1319
1320#[inline]
1321#[target_feature(enable = "lsx")]
1322#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1323pub fn lsx_vavg_b(a: m128i, b: m128i) -> m128i {
1324    unsafe { transmute(__lsx_vavg_b(transmute(a), transmute(b))) }
1325}
1326
1327#[inline]
1328#[target_feature(enable = "lsx")]
1329#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1330pub fn lsx_vavg_h(a: m128i, b: m128i) -> m128i {
1331    unsafe { transmute(__lsx_vavg_h(transmute(a), transmute(b))) }
1332}
1333
1334#[inline]
1335#[target_feature(enable = "lsx")]
1336#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1337pub fn lsx_vavg_w(a: m128i, b: m128i) -> m128i {
1338    unsafe { transmute(__lsx_vavg_w(transmute(a), transmute(b))) }
1339}
1340
1341#[inline]
1342#[target_feature(enable = "lsx")]
1343#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1344pub fn lsx_vavg_d(a: m128i, b: m128i) -> m128i {
1345    unsafe { transmute(__lsx_vavg_d(transmute(a), transmute(b))) }
1346}
1347
1348#[inline]
1349#[target_feature(enable = "lsx")]
1350#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1351pub fn lsx_vavg_bu(a: m128i, b: m128i) -> m128i {
1352    unsafe { transmute(__lsx_vavg_bu(transmute(a), transmute(b))) }
1353}
1354
1355#[inline]
1356#[target_feature(enable = "lsx")]
1357#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1358pub fn lsx_vavg_hu(a: m128i, b: m128i) -> m128i {
1359    unsafe { transmute(__lsx_vavg_hu(transmute(a), transmute(b))) }
1360}
1361
1362#[inline]
1363#[target_feature(enable = "lsx")]
1364#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1365pub fn lsx_vavg_wu(a: m128i, b: m128i) -> m128i {
1366    unsafe { transmute(__lsx_vavg_wu(transmute(a), transmute(b))) }
1367}
1368
1369#[inline]
1370#[target_feature(enable = "lsx")]
1371#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1372pub fn lsx_vavg_du(a: m128i, b: m128i) -> m128i {
1373    unsafe { transmute(__lsx_vavg_du(transmute(a), transmute(b))) }
1374}
1375
1376#[inline]
1377#[target_feature(enable = "lsx")]
1378#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1379pub fn lsx_vavgr_b(a: m128i, b: m128i) -> m128i {
1380    unsafe { transmute(__lsx_vavgr_b(transmute(a), transmute(b))) }
1381}
1382
1383#[inline]
1384#[target_feature(enable = "lsx")]
1385#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1386pub fn lsx_vavgr_h(a: m128i, b: m128i) -> m128i {
1387    unsafe { transmute(__lsx_vavgr_h(transmute(a), transmute(b))) }
1388}
1389
1390#[inline]
1391#[target_feature(enable = "lsx")]
1392#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1393pub fn lsx_vavgr_w(a: m128i, b: m128i) -> m128i {
1394    unsafe { transmute(__lsx_vavgr_w(transmute(a), transmute(b))) }
1395}
1396
1397#[inline]
1398#[target_feature(enable = "lsx")]
1399#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1400pub fn lsx_vavgr_d(a: m128i, b: m128i) -> m128i {
1401    unsafe { transmute(__lsx_vavgr_d(transmute(a), transmute(b))) }
1402}
1403
1404#[inline]
1405#[target_feature(enable = "lsx")]
1406#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1407pub fn lsx_vavgr_bu(a: m128i, b: m128i) -> m128i {
1408    unsafe { transmute(__lsx_vavgr_bu(transmute(a), transmute(b))) }
1409}
1410
1411#[inline]
1412#[target_feature(enable = "lsx")]
1413#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1414pub fn lsx_vavgr_hu(a: m128i, b: m128i) -> m128i {
1415    unsafe { transmute(__lsx_vavgr_hu(transmute(a), transmute(b))) }
1416}
1417
1418#[inline]
1419#[target_feature(enable = "lsx")]
1420#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1421pub fn lsx_vavgr_wu(a: m128i, b: m128i) -> m128i {
1422    unsafe { transmute(__lsx_vavgr_wu(transmute(a), transmute(b))) }
1423}
1424
1425#[inline]
1426#[target_feature(enable = "lsx")]
1427#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1428pub fn lsx_vavgr_du(a: m128i, b: m128i) -> m128i {
1429    unsafe { transmute(__lsx_vavgr_du(transmute(a), transmute(b))) }
1430}
1431
1432#[inline]
1433#[target_feature(enable = "lsx")]
1434#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1435pub fn lsx_vhaddw_h_b(a: m128i, b: m128i) -> m128i {
1436    unsafe { transmute(__lsx_vhaddw_h_b(transmute(a), transmute(b))) }
1437}
1438
1439#[inline]
1440#[target_feature(enable = "lsx")]
1441#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1442pub fn lsx_vhaddw_w_h(a: m128i, b: m128i) -> m128i {
1443    unsafe { transmute(__lsx_vhaddw_w_h(transmute(a), transmute(b))) }
1444}
1445
1446#[inline]
1447#[target_feature(enable = "lsx")]
1448#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1449pub fn lsx_vhaddw_d_w(a: m128i, b: m128i) -> m128i {
1450    unsafe { transmute(__lsx_vhaddw_d_w(transmute(a), transmute(b))) }
1451}
1452
1453#[inline]
1454#[target_feature(enable = "lsx")]
1455#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1456pub fn lsx_vhaddw_hu_bu(a: m128i, b: m128i) -> m128i {
1457    unsafe { transmute(__lsx_vhaddw_hu_bu(transmute(a), transmute(b))) }
1458}
1459
1460#[inline]
1461#[target_feature(enable = "lsx")]
1462#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1463pub fn lsx_vhaddw_wu_hu(a: m128i, b: m128i) -> m128i {
1464    unsafe { transmute(__lsx_vhaddw_wu_hu(transmute(a), transmute(b))) }
1465}
1466
1467#[inline]
1468#[target_feature(enable = "lsx")]
1469#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1470pub fn lsx_vhaddw_du_wu(a: m128i, b: m128i) -> m128i {
1471    unsafe { transmute(__lsx_vhaddw_du_wu(transmute(a), transmute(b))) }
1472}
1473
1474#[inline]
1475#[target_feature(enable = "lsx")]
1476#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1477pub fn lsx_vhsubw_h_b(a: m128i, b: m128i) -> m128i {
1478    unsafe { transmute(__lsx_vhsubw_h_b(transmute(a), transmute(b))) }
1479}
1480
1481#[inline]
1482#[target_feature(enable = "lsx")]
1483#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1484pub fn lsx_vhsubw_w_h(a: m128i, b: m128i) -> m128i {
1485    unsafe { transmute(__lsx_vhsubw_w_h(transmute(a), transmute(b))) }
1486}
1487
1488#[inline]
1489#[target_feature(enable = "lsx")]
1490#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1491pub fn lsx_vhsubw_d_w(a: m128i, b: m128i) -> m128i {
1492    unsafe { transmute(__lsx_vhsubw_d_w(transmute(a), transmute(b))) }
1493}
1494
1495#[inline]
1496#[target_feature(enable = "lsx")]
1497#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1498pub fn lsx_vhsubw_hu_bu(a: m128i, b: m128i) -> m128i {
1499    unsafe { transmute(__lsx_vhsubw_hu_bu(transmute(a), transmute(b))) }
1500}
1501
1502#[inline]
1503#[target_feature(enable = "lsx")]
1504#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1505pub fn lsx_vhsubw_wu_hu(a: m128i, b: m128i) -> m128i {
1506    unsafe { transmute(__lsx_vhsubw_wu_hu(transmute(a), transmute(b))) }
1507}
1508
1509#[inline]
1510#[target_feature(enable = "lsx")]
1511#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1512pub fn lsx_vhsubw_du_wu(a: m128i, b: m128i) -> m128i {
1513    unsafe { transmute(__lsx_vhsubw_du_wu(transmute(a), transmute(b))) }
1514}
1515
1516#[inline]
1517#[target_feature(enable = "lsx")]
1518#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1519pub fn lsx_vreplve_b(a: m128i, b: i32) -> m128i {
1520    unsafe { transmute(__lsx_vreplve_b(transmute(a), transmute(b))) }
1521}
1522
1523#[inline]
1524#[target_feature(enable = "lsx")]
1525#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1526pub fn lsx_vreplve_h(a: m128i, b: i32) -> m128i {
1527    unsafe { transmute(__lsx_vreplve_h(transmute(a), transmute(b))) }
1528}
1529
1530#[inline]
1531#[target_feature(enable = "lsx")]
1532#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1533pub fn lsx_vreplve_w(a: m128i, b: i32) -> m128i {
1534    unsafe { transmute(__lsx_vreplve_w(transmute(a), transmute(b))) }
1535}
1536
1537#[inline]
1538#[target_feature(enable = "lsx")]
1539#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1540pub fn lsx_vreplve_d(a: m128i, b: i32) -> m128i {
1541    unsafe { transmute(__lsx_vreplve_d(transmute(a), transmute(b))) }
1542}
1543
1544#[inline]
1545#[target_feature(enable = "lsx")]
1546#[rustc_legacy_const_generics(1)]
1547#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1548pub fn lsx_vreplvei_b<const IMM4: u32>(a: m128i) -> m128i {
1549    static_assert_uimm_bits!(IMM4, 4);
1550    unsafe { transmute(__lsx_vreplvei_b(transmute(a), IMM4)) }
1551}
1552
1553#[inline]
1554#[target_feature(enable = "lsx")]
1555#[rustc_legacy_const_generics(1)]
1556#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1557pub fn lsx_vreplvei_h<const IMM3: u32>(a: m128i) -> m128i {
1558    static_assert_uimm_bits!(IMM3, 3);
1559    unsafe { transmute(__lsx_vreplvei_h(transmute(a), IMM3)) }
1560}
1561
1562#[inline]
1563#[target_feature(enable = "lsx")]
1564#[rustc_legacy_const_generics(1)]
1565#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1566pub fn lsx_vreplvei_w<const IMM2: u32>(a: m128i) -> m128i {
1567    static_assert_uimm_bits!(IMM2, 2);
1568    unsafe { transmute(__lsx_vreplvei_w(transmute(a), IMM2)) }
1569}
1570
1571#[inline]
1572#[target_feature(enable = "lsx")]
1573#[rustc_legacy_const_generics(1)]
1574#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1575pub fn lsx_vreplvei_d<const IMM1: u32>(a: m128i) -> m128i {
1576    static_assert_uimm_bits!(IMM1, 1);
1577    unsafe { transmute(__lsx_vreplvei_d(transmute(a), IMM1)) }
1578}
1579
1580#[inline]
1581#[target_feature(enable = "lsx")]
1582#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1583pub fn lsx_vilvh_b(a: m128i, b: m128i) -> m128i {
1584    unsafe { transmute(__lsx_vilvh_b(transmute(a), transmute(b))) }
1585}
1586
1587#[inline]
1588#[target_feature(enable = "lsx")]
1589#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1590pub fn lsx_vilvh_h(a: m128i, b: m128i) -> m128i {
1591    unsafe { transmute(__lsx_vilvh_h(transmute(a), transmute(b))) }
1592}
1593
1594#[inline]
1595#[target_feature(enable = "lsx")]
1596#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1597pub fn lsx_vilvh_w(a: m128i, b: m128i) -> m128i {
1598    unsafe { transmute(__lsx_vilvh_w(transmute(a), transmute(b))) }
1599}
1600
1601#[inline]
1602#[target_feature(enable = "lsx")]
1603#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1604pub fn lsx_vilvh_d(a: m128i, b: m128i) -> m128i {
1605    unsafe { transmute(__lsx_vilvh_d(transmute(a), transmute(b))) }
1606}
1607
1608#[inline]
1609#[target_feature(enable = "lsx")]
1610#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1611pub fn lsx_vilvl_b(a: m128i, b: m128i) -> m128i {
1612    unsafe { transmute(__lsx_vilvl_b(transmute(a), transmute(b))) }
1613}
1614
1615#[inline]
1616#[target_feature(enable = "lsx")]
1617#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1618pub fn lsx_vilvl_h(a: m128i, b: m128i) -> m128i {
1619    unsafe { transmute(__lsx_vilvl_h(transmute(a), transmute(b))) }
1620}
1621
1622#[inline]
1623#[target_feature(enable = "lsx")]
1624#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1625pub fn lsx_vilvl_w(a: m128i, b: m128i) -> m128i {
1626    unsafe { transmute(__lsx_vilvl_w(transmute(a), transmute(b))) }
1627}
1628
1629#[inline]
1630#[target_feature(enable = "lsx")]
1631#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1632pub fn lsx_vilvl_d(a: m128i, b: m128i) -> m128i {
1633    unsafe { transmute(__lsx_vilvl_d(transmute(a), transmute(b))) }
1634}
1635
1636#[inline]
1637#[target_feature(enable = "lsx")]
1638#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1639pub fn lsx_vpackev_b(a: m128i, b: m128i) -> m128i {
1640    unsafe { transmute(__lsx_vpackev_b(transmute(a), transmute(b))) }
1641}
1642
1643#[inline]
1644#[target_feature(enable = "lsx")]
1645#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1646pub fn lsx_vpackev_h(a: m128i, b: m128i) -> m128i {
1647    unsafe { transmute(__lsx_vpackev_h(transmute(a), transmute(b))) }
1648}
1649
1650#[inline]
1651#[target_feature(enable = "lsx")]
1652#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1653pub fn lsx_vpackev_w(a: m128i, b: m128i) -> m128i {
1654    unsafe { transmute(__lsx_vpackev_w(transmute(a), transmute(b))) }
1655}
1656
1657#[inline]
1658#[target_feature(enable = "lsx")]
1659#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1660pub fn lsx_vpackev_d(a: m128i, b: m128i) -> m128i {
1661    unsafe { transmute(__lsx_vpackev_d(transmute(a), transmute(b))) }
1662}
1663
1664#[inline]
1665#[target_feature(enable = "lsx")]
1666#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1667pub fn lsx_vpackod_b(a: m128i, b: m128i) -> m128i {
1668    unsafe { transmute(__lsx_vpackod_b(transmute(a), transmute(b))) }
1669}
1670
1671#[inline]
1672#[target_feature(enable = "lsx")]
1673#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1674pub fn lsx_vpackod_h(a: m128i, b: m128i) -> m128i {
1675    unsafe { transmute(__lsx_vpackod_h(transmute(a), transmute(b))) }
1676}
1677
1678#[inline]
1679#[target_feature(enable = "lsx")]
1680#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1681pub fn lsx_vpackod_w(a: m128i, b: m128i) -> m128i {
1682    unsafe { transmute(__lsx_vpackod_w(transmute(a), transmute(b))) }
1683}
1684
1685#[inline]
1686#[target_feature(enable = "lsx")]
1687#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1688pub fn lsx_vpackod_d(a: m128i, b: m128i) -> m128i {
1689    unsafe { transmute(__lsx_vpackod_d(transmute(a), transmute(b))) }
1690}
1691
1692#[inline]
1693#[target_feature(enable = "lsx")]
1694#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1695pub fn lsx_vshuf_h(a: m128i, b: m128i, c: m128i) -> m128i {
1696    unsafe { transmute(__lsx_vshuf_h(transmute(a), transmute(b), transmute(c))) }
1697}
1698
1699#[inline]
1700#[target_feature(enable = "lsx")]
1701#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1702pub fn lsx_vshuf_w(a: m128i, b: m128i, c: m128i) -> m128i {
1703    unsafe { transmute(__lsx_vshuf_w(transmute(a), transmute(b), transmute(c))) }
1704}
1705
1706#[inline]
1707#[target_feature(enable = "lsx")]
1708#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1709pub fn lsx_vshuf_d(a: m128i, b: m128i, c: m128i) -> m128i {
1710    unsafe { transmute(__lsx_vshuf_d(transmute(a), transmute(b), transmute(c))) }
1711}
1712
1713#[inline]
1714#[target_feature(enable = "lsx")]
1715#[rustc_legacy_const_generics(1)]
1716#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1717pub fn lsx_vandi_b<const IMM8: u32>(a: m128i) -> m128i {
1718    static_assert_uimm_bits!(IMM8, 8);
1719    unsafe { transmute(__lsx_vandi_b(transmute(a), IMM8)) }
1720}
1721
1722#[inline]
1723#[target_feature(enable = "lsx")]
1724#[rustc_legacy_const_generics(1)]
1725#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1726pub fn lsx_vori_b<const IMM8: u32>(a: m128i) -> m128i {
1727    static_assert_uimm_bits!(IMM8, 8);
1728    unsafe { transmute(__lsx_vori_b(transmute(a), IMM8)) }
1729}
1730
1731#[inline]
1732#[target_feature(enable = "lsx")]
1733#[rustc_legacy_const_generics(1)]
1734#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1735pub fn lsx_vnori_b<const IMM8: u32>(a: m128i) -> m128i {
1736    static_assert_uimm_bits!(IMM8, 8);
1737    unsafe { transmute(__lsx_vnori_b(transmute(a), IMM8)) }
1738}
1739
1740#[inline]
1741#[target_feature(enable = "lsx")]
1742#[rustc_legacy_const_generics(1)]
1743#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1744pub fn lsx_vxori_b<const IMM8: u32>(a: m128i) -> m128i {
1745    static_assert_uimm_bits!(IMM8, 8);
1746    unsafe { transmute(__lsx_vxori_b(transmute(a), IMM8)) }
1747}
1748
1749#[inline]
1750#[target_feature(enable = "lsx")]
1751#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1752pub fn lsx_vbitsel_v(a: m128i, b: m128i, c: m128i) -> m128i {
1753    unsafe { transmute(__lsx_vbitsel_v(transmute(a), transmute(b), transmute(c))) }
1754}
1755
1756#[inline]
1757#[target_feature(enable = "lsx")]
1758#[rustc_legacy_const_generics(2)]
1759#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1760pub fn lsx_vbitseli_b<const IMM8: u32>(a: m128i, b: m128i) -> m128i {
1761    static_assert_uimm_bits!(IMM8, 8);
1762    unsafe { transmute(__lsx_vbitseli_b(transmute(a), transmute(b), IMM8)) }
1763}
1764
1765#[inline]
1766#[target_feature(enable = "lsx")]
1767#[rustc_legacy_const_generics(1)]
1768#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1769pub fn lsx_vshuf4i_b<const IMM8: u32>(a: m128i) -> m128i {
1770    static_assert_uimm_bits!(IMM8, 8);
1771    unsafe { transmute(__lsx_vshuf4i_b(transmute(a), IMM8)) }
1772}
1773
1774#[inline]
1775#[target_feature(enable = "lsx")]
1776#[rustc_legacy_const_generics(1)]
1777#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1778pub fn lsx_vshuf4i_h<const IMM8: u32>(a: m128i) -> m128i {
1779    static_assert_uimm_bits!(IMM8, 8);
1780    unsafe { transmute(__lsx_vshuf4i_h(transmute(a), IMM8)) }
1781}
1782
1783#[inline]
1784#[target_feature(enable = "lsx")]
1785#[rustc_legacy_const_generics(1)]
1786#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1787pub fn lsx_vshuf4i_w<const IMM8: u32>(a: m128i) -> m128i {
1788    static_assert_uimm_bits!(IMM8, 8);
1789    unsafe { transmute(__lsx_vshuf4i_w(transmute(a), IMM8)) }
1790}
1791
1792#[inline]
1793#[target_feature(enable = "lsx")]
1794#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1795pub fn lsx_vclo_b(a: m128i) -> m128i {
1796    unsafe { transmute(__lsx_vclo_b(transmute(a))) }
1797}
1798
1799#[inline]
1800#[target_feature(enable = "lsx")]
1801#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1802pub fn lsx_vclo_h(a: m128i) -> m128i {
1803    unsafe { transmute(__lsx_vclo_h(transmute(a))) }
1804}
1805
1806#[inline]
1807#[target_feature(enable = "lsx")]
1808#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1809pub fn lsx_vclo_w(a: m128i) -> m128i {
1810    unsafe { transmute(__lsx_vclo_w(transmute(a))) }
1811}
1812
1813#[inline]
1814#[target_feature(enable = "lsx")]
1815#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1816pub fn lsx_vclo_d(a: m128i) -> m128i {
1817    unsafe { transmute(__lsx_vclo_d(transmute(a))) }
1818}
1819
1820#[inline]
1821#[target_feature(enable = "lsx")]
1822#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1823pub fn lsx_vfcvt_h_s(a: m128, b: m128) -> m128i {
1824    unsafe { transmute(__lsx_vfcvt_h_s(transmute(a), transmute(b))) }
1825}
1826
1827#[inline]
1828#[target_feature(enable = "lsx")]
1829#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1830pub fn lsx_vfcvt_s_d(a: m128d, b: m128d) -> m128 {
1831    unsafe { transmute(__lsx_vfcvt_s_d(transmute(a), transmute(b))) }
1832}
1833
1834#[inline]
1835#[target_feature(enable = "lsx")]
1836#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1837pub fn lsx_vfmin_s(a: m128, b: m128) -> m128 {
1838    unsafe { transmute(__lsx_vfmin_s(transmute(a), transmute(b))) }
1839}
1840
1841#[inline]
1842#[target_feature(enable = "lsx")]
1843#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1844pub fn lsx_vfmin_d(a: m128d, b: m128d) -> m128d {
1845    unsafe { transmute(__lsx_vfmin_d(transmute(a), transmute(b))) }
1846}
1847
1848#[inline]
1849#[target_feature(enable = "lsx")]
1850#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1851pub fn lsx_vfmina_s(a: m128, b: m128) -> m128 {
1852    unsafe { transmute(__lsx_vfmina_s(transmute(a), transmute(b))) }
1853}
1854
1855#[inline]
1856#[target_feature(enable = "lsx")]
1857#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1858pub fn lsx_vfmina_d(a: m128d, b: m128d) -> m128d {
1859    unsafe { transmute(__lsx_vfmina_d(transmute(a), transmute(b))) }
1860}
1861
1862#[inline]
1863#[target_feature(enable = "lsx")]
1864#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1865pub fn lsx_vfmax_s(a: m128, b: m128) -> m128 {
1866    unsafe { transmute(__lsx_vfmax_s(transmute(a), transmute(b))) }
1867}
1868
1869#[inline]
1870#[target_feature(enable = "lsx")]
1871#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1872pub fn lsx_vfmax_d(a: m128d, b: m128d) -> m128d {
1873    unsafe { transmute(__lsx_vfmax_d(transmute(a), transmute(b))) }
1874}
1875
1876#[inline]
1877#[target_feature(enable = "lsx")]
1878#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1879pub fn lsx_vfmaxa_s(a: m128, b: m128) -> m128 {
1880    unsafe { transmute(__lsx_vfmaxa_s(transmute(a), transmute(b))) }
1881}
1882
1883#[inline]
1884#[target_feature(enable = "lsx")]
1885#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1886pub fn lsx_vfmaxa_d(a: m128d, b: m128d) -> m128d {
1887    unsafe { transmute(__lsx_vfmaxa_d(transmute(a), transmute(b))) }
1888}
1889
1890#[inline]
1891#[target_feature(enable = "lsx")]
1892#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1893pub fn lsx_vfclass_s(a: m128) -> m128i {
1894    unsafe { transmute(__lsx_vfclass_s(transmute(a))) }
1895}
1896
1897#[inline]
1898#[target_feature(enable = "lsx")]
1899#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1900pub fn lsx_vfclass_d(a: m128d) -> m128i {
1901    unsafe { transmute(__lsx_vfclass_d(transmute(a))) }
1902}
1903
1904#[inline]
1905#[target_feature(enable = "lsx")]
1906#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1907pub fn lsx_vfrecip_s(a: m128) -> m128 {
1908    unsafe { transmute(__lsx_vfrecip_s(transmute(a))) }
1909}
1910
1911#[inline]
1912#[target_feature(enable = "lsx")]
1913#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1914pub fn lsx_vfrecip_d(a: m128d) -> m128d {
1915    unsafe { transmute(__lsx_vfrecip_d(transmute(a))) }
1916}
1917
1918#[inline]
1919#[target_feature(enable = "lsx,frecipe")]
1920#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1921pub fn lsx_vfrecipe_s(a: m128) -> m128 {
1922    unsafe { transmute(__lsx_vfrecipe_s(transmute(a))) }
1923}
1924
1925#[inline]
1926#[target_feature(enable = "lsx,frecipe")]
1927#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1928pub fn lsx_vfrecipe_d(a: m128d) -> m128d {
1929    unsafe { transmute(__lsx_vfrecipe_d(transmute(a))) }
1930}
1931
1932#[inline]
1933#[target_feature(enable = "lsx,frecipe")]
1934#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1935pub fn lsx_vfrsqrte_s(a: m128) -> m128 {
1936    unsafe { transmute(__lsx_vfrsqrte_s(transmute(a))) }
1937}
1938
1939#[inline]
1940#[target_feature(enable = "lsx,frecipe")]
1941#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1942pub fn lsx_vfrsqrte_d(a: m128d) -> m128d {
1943    unsafe { transmute(__lsx_vfrsqrte_d(transmute(a))) }
1944}
1945
1946#[inline]
1947#[target_feature(enable = "lsx")]
1948#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1949pub fn lsx_vfrint_s(a: m128) -> m128 {
1950    unsafe { transmute(__lsx_vfrint_s(transmute(a))) }
1951}
1952
1953#[inline]
1954#[target_feature(enable = "lsx")]
1955#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1956pub fn lsx_vfrint_d(a: m128d) -> m128d {
1957    unsafe { transmute(__lsx_vfrint_d(transmute(a))) }
1958}
1959
1960#[inline]
1961#[target_feature(enable = "lsx")]
1962#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1963pub fn lsx_vfrsqrt_s(a: m128) -> m128 {
1964    unsafe { transmute(__lsx_vfrsqrt_s(transmute(a))) }
1965}
1966
1967#[inline]
1968#[target_feature(enable = "lsx")]
1969#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1970pub fn lsx_vfrsqrt_d(a: m128d) -> m128d {
1971    unsafe { transmute(__lsx_vfrsqrt_d(transmute(a))) }
1972}
1973
1974#[inline]
1975#[target_feature(enable = "lsx")]
1976#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1977pub fn lsx_vflogb_s(a: m128) -> m128 {
1978    unsafe { transmute(__lsx_vflogb_s(transmute(a))) }
1979}
1980
1981#[inline]
1982#[target_feature(enable = "lsx")]
1983#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1984pub fn lsx_vflogb_d(a: m128d) -> m128d {
1985    unsafe { transmute(__lsx_vflogb_d(transmute(a))) }
1986}
1987
1988#[inline]
1989#[target_feature(enable = "lsx")]
1990#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1991pub fn lsx_vfcvth_s_h(a: m128i) -> m128 {
1992    unsafe { transmute(__lsx_vfcvth_s_h(transmute(a))) }
1993}
1994
1995#[inline]
1996#[target_feature(enable = "lsx")]
1997#[unstable(feature = "stdarch_loongarch", issue = "117427")]
1998pub fn lsx_vfcvth_d_s(a: m128) -> m128d {
1999    unsafe { transmute(__lsx_vfcvth_d_s(transmute(a))) }
2000}
2001
2002#[inline]
2003#[target_feature(enable = "lsx")]
2004#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2005pub fn lsx_vfcvtl_s_h(a: m128i) -> m128 {
2006    unsafe { transmute(__lsx_vfcvtl_s_h(transmute(a))) }
2007}
2008
2009#[inline]
2010#[target_feature(enable = "lsx")]
2011#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2012pub fn lsx_vfcvtl_d_s(a: m128) -> m128d {
2013    unsafe { transmute(__lsx_vfcvtl_d_s(transmute(a))) }
2014}
2015
2016#[inline]
2017#[target_feature(enable = "lsx")]
2018#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2019pub fn lsx_vftint_w_s(a: m128) -> m128i {
2020    unsafe { transmute(__lsx_vftint_w_s(transmute(a))) }
2021}
2022
2023#[inline]
2024#[target_feature(enable = "lsx")]
2025#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2026pub fn lsx_vftint_l_d(a: m128d) -> m128i {
2027    unsafe { transmute(__lsx_vftint_l_d(transmute(a))) }
2028}
2029
2030#[inline]
2031#[target_feature(enable = "lsx")]
2032#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2033pub fn lsx_vftint_wu_s(a: m128) -> m128i {
2034    unsafe { transmute(__lsx_vftint_wu_s(transmute(a))) }
2035}
2036
2037#[inline]
2038#[target_feature(enable = "lsx")]
2039#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2040pub fn lsx_vftint_lu_d(a: m128d) -> m128i {
2041    unsafe { transmute(__lsx_vftint_lu_d(transmute(a))) }
2042}
2043
2044#[inline]
2045#[target_feature(enable = "lsx")]
2046#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2047pub fn lsx_vftintrz_w_s(a: m128) -> m128i {
2048    unsafe { transmute(__lsx_vftintrz_w_s(transmute(a))) }
2049}
2050
2051#[inline]
2052#[target_feature(enable = "lsx")]
2053#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2054pub fn lsx_vftintrz_l_d(a: m128d) -> m128i {
2055    unsafe { transmute(__lsx_vftintrz_l_d(transmute(a))) }
2056}
2057
2058#[inline]
2059#[target_feature(enable = "lsx")]
2060#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2061pub fn lsx_vftintrz_wu_s(a: m128) -> m128i {
2062    unsafe { transmute(__lsx_vftintrz_wu_s(transmute(a))) }
2063}
2064
2065#[inline]
2066#[target_feature(enable = "lsx")]
2067#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2068pub fn lsx_vftintrz_lu_d(a: m128d) -> m128i {
2069    unsafe { transmute(__lsx_vftintrz_lu_d(transmute(a))) }
2070}
2071
2072#[inline]
2073#[target_feature(enable = "lsx")]
2074#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2075pub fn lsx_vffint_s_w(a: m128i) -> m128 {
2076    unsafe { transmute(__lsx_vffint_s_w(transmute(a))) }
2077}
2078
2079#[inline]
2080#[target_feature(enable = "lsx")]
2081#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2082pub fn lsx_vffint_d_l(a: m128i) -> m128d {
2083    unsafe { transmute(__lsx_vffint_d_l(transmute(a))) }
2084}
2085
2086#[inline]
2087#[target_feature(enable = "lsx")]
2088#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2089pub fn lsx_vffint_s_wu(a: m128i) -> m128 {
2090    unsafe { transmute(__lsx_vffint_s_wu(transmute(a))) }
2091}
2092
2093#[inline]
2094#[target_feature(enable = "lsx")]
2095#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2096pub fn lsx_vffint_d_lu(a: m128i) -> m128d {
2097    unsafe { transmute(__lsx_vffint_d_lu(transmute(a))) }
2098}
2099
2100#[inline]
2101#[target_feature(enable = "lsx")]
2102#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2103pub fn lsx_vmuh_b(a: m128i, b: m128i) -> m128i {
2104    unsafe { transmute(__lsx_vmuh_b(transmute(a), transmute(b))) }
2105}
2106
2107#[inline]
2108#[target_feature(enable = "lsx")]
2109#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2110pub fn lsx_vmuh_h(a: m128i, b: m128i) -> m128i {
2111    unsafe { transmute(__lsx_vmuh_h(transmute(a), transmute(b))) }
2112}
2113
2114#[inline]
2115#[target_feature(enable = "lsx")]
2116#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2117pub fn lsx_vmuh_w(a: m128i, b: m128i) -> m128i {
2118    unsafe { transmute(__lsx_vmuh_w(transmute(a), transmute(b))) }
2119}
2120
2121#[inline]
2122#[target_feature(enable = "lsx")]
2123#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2124pub fn lsx_vmuh_d(a: m128i, b: m128i) -> m128i {
2125    unsafe { transmute(__lsx_vmuh_d(transmute(a), transmute(b))) }
2126}
2127
2128#[inline]
2129#[target_feature(enable = "lsx")]
2130#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2131pub fn lsx_vmuh_bu(a: m128i, b: m128i) -> m128i {
2132    unsafe { transmute(__lsx_vmuh_bu(transmute(a), transmute(b))) }
2133}
2134
2135#[inline]
2136#[target_feature(enable = "lsx")]
2137#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2138pub fn lsx_vmuh_hu(a: m128i, b: m128i) -> m128i {
2139    unsafe { transmute(__lsx_vmuh_hu(transmute(a), transmute(b))) }
2140}
2141
2142#[inline]
2143#[target_feature(enable = "lsx")]
2144#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2145pub fn lsx_vmuh_wu(a: m128i, b: m128i) -> m128i {
2146    unsafe { transmute(__lsx_vmuh_wu(transmute(a), transmute(b))) }
2147}
2148
2149#[inline]
2150#[target_feature(enable = "lsx")]
2151#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2152pub fn lsx_vmuh_du(a: m128i, b: m128i) -> m128i {
2153    unsafe { transmute(__lsx_vmuh_du(transmute(a), transmute(b))) }
2154}
2155
2156#[inline]
2157#[target_feature(enable = "lsx")]
2158#[rustc_legacy_const_generics(1)]
2159#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2160pub fn lsx_vsllwil_h_b<const IMM3: u32>(a: m128i) -> m128i {
2161    static_assert_uimm_bits!(IMM3, 3);
2162    unsafe { transmute(__lsx_vsllwil_h_b(transmute(a), IMM3)) }
2163}
2164
2165#[inline]
2166#[target_feature(enable = "lsx")]
2167#[rustc_legacy_const_generics(1)]
2168#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2169pub fn lsx_vsllwil_w_h<const IMM4: u32>(a: m128i) -> m128i {
2170    static_assert_uimm_bits!(IMM4, 4);
2171    unsafe { transmute(__lsx_vsllwil_w_h(transmute(a), IMM4)) }
2172}
2173
2174#[inline]
2175#[target_feature(enable = "lsx")]
2176#[rustc_legacy_const_generics(1)]
2177#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2178pub fn lsx_vsllwil_d_w<const IMM5: u32>(a: m128i) -> m128i {
2179    static_assert_uimm_bits!(IMM5, 5);
2180    unsafe { transmute(__lsx_vsllwil_d_w(transmute(a), IMM5)) }
2181}
2182
2183#[inline]
2184#[target_feature(enable = "lsx")]
2185#[rustc_legacy_const_generics(1)]
2186#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2187pub fn lsx_vsllwil_hu_bu<const IMM3: u32>(a: m128i) -> m128i {
2188    static_assert_uimm_bits!(IMM3, 3);
2189    unsafe { transmute(__lsx_vsllwil_hu_bu(transmute(a), IMM3)) }
2190}
2191
2192#[inline]
2193#[target_feature(enable = "lsx")]
2194#[rustc_legacy_const_generics(1)]
2195#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2196pub fn lsx_vsllwil_wu_hu<const IMM4: u32>(a: m128i) -> m128i {
2197    static_assert_uimm_bits!(IMM4, 4);
2198    unsafe { transmute(__lsx_vsllwil_wu_hu(transmute(a), IMM4)) }
2199}
2200
2201#[inline]
2202#[target_feature(enable = "lsx")]
2203#[rustc_legacy_const_generics(1)]
2204#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2205pub fn lsx_vsllwil_du_wu<const IMM5: u32>(a: m128i) -> m128i {
2206    static_assert_uimm_bits!(IMM5, 5);
2207    unsafe { transmute(__lsx_vsllwil_du_wu(transmute(a), IMM5)) }
2208}
2209
2210#[inline]
2211#[target_feature(enable = "lsx")]
2212#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2213pub fn lsx_vsran_b_h(a: m128i, b: m128i) -> m128i {
2214    unsafe { transmute(__lsx_vsran_b_h(transmute(a), transmute(b))) }
2215}
2216
2217#[inline]
2218#[target_feature(enable = "lsx")]
2219#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2220pub fn lsx_vsran_h_w(a: m128i, b: m128i) -> m128i {
2221    unsafe { transmute(__lsx_vsran_h_w(transmute(a), transmute(b))) }
2222}
2223
2224#[inline]
2225#[target_feature(enable = "lsx")]
2226#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2227pub fn lsx_vsran_w_d(a: m128i, b: m128i) -> m128i {
2228    unsafe { transmute(__lsx_vsran_w_d(transmute(a), transmute(b))) }
2229}
2230
2231#[inline]
2232#[target_feature(enable = "lsx")]
2233#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2234pub fn lsx_vssran_b_h(a: m128i, b: m128i) -> m128i {
2235    unsafe { transmute(__lsx_vssran_b_h(transmute(a), transmute(b))) }
2236}
2237
2238#[inline]
2239#[target_feature(enable = "lsx")]
2240#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2241pub fn lsx_vssran_h_w(a: m128i, b: m128i) -> m128i {
2242    unsafe { transmute(__lsx_vssran_h_w(transmute(a), transmute(b))) }
2243}
2244
2245#[inline]
2246#[target_feature(enable = "lsx")]
2247#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2248pub fn lsx_vssran_w_d(a: m128i, b: m128i) -> m128i {
2249    unsafe { transmute(__lsx_vssran_w_d(transmute(a), transmute(b))) }
2250}
2251
2252#[inline]
2253#[target_feature(enable = "lsx")]
2254#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2255pub fn lsx_vssran_bu_h(a: m128i, b: m128i) -> m128i {
2256    unsafe { transmute(__lsx_vssran_bu_h(transmute(a), transmute(b))) }
2257}
2258
2259#[inline]
2260#[target_feature(enable = "lsx")]
2261#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2262pub fn lsx_vssran_hu_w(a: m128i, b: m128i) -> m128i {
2263    unsafe { transmute(__lsx_vssran_hu_w(transmute(a), transmute(b))) }
2264}
2265
2266#[inline]
2267#[target_feature(enable = "lsx")]
2268#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2269pub fn lsx_vssran_wu_d(a: m128i, b: m128i) -> m128i {
2270    unsafe { transmute(__lsx_vssran_wu_d(transmute(a), transmute(b))) }
2271}
2272
2273#[inline]
2274#[target_feature(enable = "lsx")]
2275#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2276pub fn lsx_vsrarn_b_h(a: m128i, b: m128i) -> m128i {
2277    unsafe { transmute(__lsx_vsrarn_b_h(transmute(a), transmute(b))) }
2278}
2279
2280#[inline]
2281#[target_feature(enable = "lsx")]
2282#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2283pub fn lsx_vsrarn_h_w(a: m128i, b: m128i) -> m128i {
2284    unsafe { transmute(__lsx_vsrarn_h_w(transmute(a), transmute(b))) }
2285}
2286
2287#[inline]
2288#[target_feature(enable = "lsx")]
2289#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2290pub fn lsx_vsrarn_w_d(a: m128i, b: m128i) -> m128i {
2291    unsafe { transmute(__lsx_vsrarn_w_d(transmute(a), transmute(b))) }
2292}
2293
2294#[inline]
2295#[target_feature(enable = "lsx")]
2296#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2297pub fn lsx_vssrarn_b_h(a: m128i, b: m128i) -> m128i {
2298    unsafe { transmute(__lsx_vssrarn_b_h(transmute(a), transmute(b))) }
2299}
2300
2301#[inline]
2302#[target_feature(enable = "lsx")]
2303#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2304pub fn lsx_vssrarn_h_w(a: m128i, b: m128i) -> m128i {
2305    unsafe { transmute(__lsx_vssrarn_h_w(transmute(a), transmute(b))) }
2306}
2307
2308#[inline]
2309#[target_feature(enable = "lsx")]
2310#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2311pub fn lsx_vssrarn_w_d(a: m128i, b: m128i) -> m128i {
2312    unsafe { transmute(__lsx_vssrarn_w_d(transmute(a), transmute(b))) }
2313}
2314
2315#[inline]
2316#[target_feature(enable = "lsx")]
2317#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2318pub fn lsx_vssrarn_bu_h(a: m128i, b: m128i) -> m128i {
2319    unsafe { transmute(__lsx_vssrarn_bu_h(transmute(a), transmute(b))) }
2320}
2321
2322#[inline]
2323#[target_feature(enable = "lsx")]
2324#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2325pub fn lsx_vssrarn_hu_w(a: m128i, b: m128i) -> m128i {
2326    unsafe { transmute(__lsx_vssrarn_hu_w(transmute(a), transmute(b))) }
2327}
2328
2329#[inline]
2330#[target_feature(enable = "lsx")]
2331#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2332pub fn lsx_vssrarn_wu_d(a: m128i, b: m128i) -> m128i {
2333    unsafe { transmute(__lsx_vssrarn_wu_d(transmute(a), transmute(b))) }
2334}
2335
2336#[inline]
2337#[target_feature(enable = "lsx")]
2338#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2339pub fn lsx_vsrln_b_h(a: m128i, b: m128i) -> m128i {
2340    unsafe { transmute(__lsx_vsrln_b_h(transmute(a), transmute(b))) }
2341}
2342
2343#[inline]
2344#[target_feature(enable = "lsx")]
2345#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2346pub fn lsx_vsrln_h_w(a: m128i, b: m128i) -> m128i {
2347    unsafe { transmute(__lsx_vsrln_h_w(transmute(a), transmute(b))) }
2348}
2349
2350#[inline]
2351#[target_feature(enable = "lsx")]
2352#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2353pub fn lsx_vsrln_w_d(a: m128i, b: m128i) -> m128i {
2354    unsafe { transmute(__lsx_vsrln_w_d(transmute(a), transmute(b))) }
2355}
2356
2357#[inline]
2358#[target_feature(enable = "lsx")]
2359#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2360pub fn lsx_vssrln_bu_h(a: m128i, b: m128i) -> m128i {
2361    unsafe { transmute(__lsx_vssrln_bu_h(transmute(a), transmute(b))) }
2362}
2363
2364#[inline]
2365#[target_feature(enable = "lsx")]
2366#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2367pub fn lsx_vssrln_hu_w(a: m128i, b: m128i) -> m128i {
2368    unsafe { transmute(__lsx_vssrln_hu_w(transmute(a), transmute(b))) }
2369}
2370
2371#[inline]
2372#[target_feature(enable = "lsx")]
2373#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2374pub fn lsx_vssrln_wu_d(a: m128i, b: m128i) -> m128i {
2375    unsafe { transmute(__lsx_vssrln_wu_d(transmute(a), transmute(b))) }
2376}
2377
2378#[inline]
2379#[target_feature(enable = "lsx")]
2380#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2381pub fn lsx_vsrlrn_b_h(a: m128i, b: m128i) -> m128i {
2382    unsafe { transmute(__lsx_vsrlrn_b_h(transmute(a), transmute(b))) }
2383}
2384
2385#[inline]
2386#[target_feature(enable = "lsx")]
2387#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2388pub fn lsx_vsrlrn_h_w(a: m128i, b: m128i) -> m128i {
2389    unsafe { transmute(__lsx_vsrlrn_h_w(transmute(a), transmute(b))) }
2390}
2391
2392#[inline]
2393#[target_feature(enable = "lsx")]
2394#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2395pub fn lsx_vsrlrn_w_d(a: m128i, b: m128i) -> m128i {
2396    unsafe { transmute(__lsx_vsrlrn_w_d(transmute(a), transmute(b))) }
2397}
2398
2399#[inline]
2400#[target_feature(enable = "lsx")]
2401#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2402pub fn lsx_vssrlrn_bu_h(a: m128i, b: m128i) -> m128i {
2403    unsafe { transmute(__lsx_vssrlrn_bu_h(transmute(a), transmute(b))) }
2404}
2405
2406#[inline]
2407#[target_feature(enable = "lsx")]
2408#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2409pub fn lsx_vssrlrn_hu_w(a: m128i, b: m128i) -> m128i {
2410    unsafe { transmute(__lsx_vssrlrn_hu_w(transmute(a), transmute(b))) }
2411}
2412
2413#[inline]
2414#[target_feature(enable = "lsx")]
2415#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2416pub fn lsx_vssrlrn_wu_d(a: m128i, b: m128i) -> m128i {
2417    unsafe { transmute(__lsx_vssrlrn_wu_d(transmute(a), transmute(b))) }
2418}
2419
2420#[inline]
2421#[target_feature(enable = "lsx")]
2422#[rustc_legacy_const_generics(2)]
2423#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2424pub fn lsx_vfrstpi_b<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
2425    static_assert_uimm_bits!(IMM5, 5);
2426    unsafe { transmute(__lsx_vfrstpi_b(transmute(a), transmute(b), IMM5)) }
2427}
2428
2429#[inline]
2430#[target_feature(enable = "lsx")]
2431#[rustc_legacy_const_generics(2)]
2432#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2433pub fn lsx_vfrstpi_h<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
2434    static_assert_uimm_bits!(IMM5, 5);
2435    unsafe { transmute(__lsx_vfrstpi_h(transmute(a), transmute(b), IMM5)) }
2436}
2437
2438#[inline]
2439#[target_feature(enable = "lsx")]
2440#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2441pub fn lsx_vfrstp_b(a: m128i, b: m128i, c: m128i) -> m128i {
2442    unsafe { transmute(__lsx_vfrstp_b(transmute(a), transmute(b), transmute(c))) }
2443}
2444
2445#[inline]
2446#[target_feature(enable = "lsx")]
2447#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2448pub fn lsx_vfrstp_h(a: m128i, b: m128i, c: m128i) -> m128i {
2449    unsafe { transmute(__lsx_vfrstp_h(transmute(a), transmute(b), transmute(c))) }
2450}
2451
2452#[inline]
2453#[target_feature(enable = "lsx")]
2454#[rustc_legacy_const_generics(2)]
2455#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2456pub fn lsx_vshuf4i_d<const IMM8: u32>(a: m128i, b: m128i) -> m128i {
2457    static_assert_uimm_bits!(IMM8, 8);
2458    unsafe { transmute(__lsx_vshuf4i_d(transmute(a), transmute(b), IMM8)) }
2459}
2460
2461#[inline]
2462#[target_feature(enable = "lsx")]
2463#[rustc_legacy_const_generics(1)]
2464#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2465pub fn lsx_vbsrl_v<const IMM5: u32>(a: m128i) -> m128i {
2466    static_assert_uimm_bits!(IMM5, 5);
2467    unsafe { transmute(__lsx_vbsrl_v(transmute(a), IMM5)) }
2468}
2469
2470#[inline]
2471#[target_feature(enable = "lsx")]
2472#[rustc_legacy_const_generics(1)]
2473#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2474pub fn lsx_vbsll_v<const IMM5: u32>(a: m128i) -> m128i {
2475    static_assert_uimm_bits!(IMM5, 5);
2476    unsafe { transmute(__lsx_vbsll_v(transmute(a), IMM5)) }
2477}
2478
2479#[inline]
2480#[target_feature(enable = "lsx")]
2481#[rustc_legacy_const_generics(2)]
2482#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2483pub fn lsx_vextrins_b<const IMM8: u32>(a: m128i, b: m128i) -> m128i {
2484    static_assert_uimm_bits!(IMM8, 8);
2485    unsafe { transmute(__lsx_vextrins_b(transmute(a), transmute(b), IMM8)) }
2486}
2487
2488#[inline]
2489#[target_feature(enable = "lsx")]
2490#[rustc_legacy_const_generics(2)]
2491#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2492pub fn lsx_vextrins_h<const IMM8: u32>(a: m128i, b: m128i) -> m128i {
2493    static_assert_uimm_bits!(IMM8, 8);
2494    unsafe { transmute(__lsx_vextrins_h(transmute(a), transmute(b), IMM8)) }
2495}
2496
2497#[inline]
2498#[target_feature(enable = "lsx")]
2499#[rustc_legacy_const_generics(2)]
2500#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2501pub fn lsx_vextrins_w<const IMM8: u32>(a: m128i, b: m128i) -> m128i {
2502    static_assert_uimm_bits!(IMM8, 8);
2503    unsafe { transmute(__lsx_vextrins_w(transmute(a), transmute(b), IMM8)) }
2504}
2505
2506#[inline]
2507#[target_feature(enable = "lsx")]
2508#[rustc_legacy_const_generics(2)]
2509#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2510pub fn lsx_vextrins_d<const IMM8: u32>(a: m128i, b: m128i) -> m128i {
2511    static_assert_uimm_bits!(IMM8, 8);
2512    unsafe { transmute(__lsx_vextrins_d(transmute(a), transmute(b), IMM8)) }
2513}
2514
2515#[inline]
2516#[target_feature(enable = "lsx")]
2517#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2518pub fn lsx_vmskltz_b(a: m128i) -> m128i {
2519    unsafe { transmute(__lsx_vmskltz_b(transmute(a))) }
2520}
2521
2522#[inline]
2523#[target_feature(enable = "lsx")]
2524#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2525pub fn lsx_vmskltz_h(a: m128i) -> m128i {
2526    unsafe { transmute(__lsx_vmskltz_h(transmute(a))) }
2527}
2528
2529#[inline]
2530#[target_feature(enable = "lsx")]
2531#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2532pub fn lsx_vmskltz_w(a: m128i) -> m128i {
2533    unsafe { transmute(__lsx_vmskltz_w(transmute(a))) }
2534}
2535
2536#[inline]
2537#[target_feature(enable = "lsx")]
2538#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2539pub fn lsx_vmskltz_d(a: m128i) -> m128i {
2540    unsafe { transmute(__lsx_vmskltz_d(transmute(a))) }
2541}
2542
2543#[inline]
2544#[target_feature(enable = "lsx")]
2545#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2546pub fn lsx_vsigncov_b(a: m128i, b: m128i) -> m128i {
2547    unsafe { transmute(__lsx_vsigncov_b(transmute(a), transmute(b))) }
2548}
2549
2550#[inline]
2551#[target_feature(enable = "lsx")]
2552#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2553pub fn lsx_vsigncov_h(a: m128i, b: m128i) -> m128i {
2554    unsafe { transmute(__lsx_vsigncov_h(transmute(a), transmute(b))) }
2555}
2556
2557#[inline]
2558#[target_feature(enable = "lsx")]
2559#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2560pub fn lsx_vsigncov_w(a: m128i, b: m128i) -> m128i {
2561    unsafe { transmute(__lsx_vsigncov_w(transmute(a), transmute(b))) }
2562}
2563
2564#[inline]
2565#[target_feature(enable = "lsx")]
2566#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2567pub fn lsx_vsigncov_d(a: m128i, b: m128i) -> m128i {
2568    unsafe { transmute(__lsx_vsigncov_d(transmute(a), transmute(b))) }
2569}
2570
2571#[inline]
2572#[target_feature(enable = "lsx")]
2573#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2574pub fn lsx_vftintrne_w_s(a: m128) -> m128i {
2575    unsafe { transmute(__lsx_vftintrne_w_s(transmute(a))) }
2576}
2577
2578#[inline]
2579#[target_feature(enable = "lsx")]
2580#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2581pub fn lsx_vftintrne_l_d(a: m128d) -> m128i {
2582    unsafe { transmute(__lsx_vftintrne_l_d(transmute(a))) }
2583}
2584
2585#[inline]
2586#[target_feature(enable = "lsx")]
2587#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2588pub fn lsx_vftintrp_w_s(a: m128) -> m128i {
2589    unsafe { transmute(__lsx_vftintrp_w_s(transmute(a))) }
2590}
2591
2592#[inline]
2593#[target_feature(enable = "lsx")]
2594#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2595pub fn lsx_vftintrp_l_d(a: m128d) -> m128i {
2596    unsafe { transmute(__lsx_vftintrp_l_d(transmute(a))) }
2597}
2598
2599#[inline]
2600#[target_feature(enable = "lsx")]
2601#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2602pub fn lsx_vftintrm_w_s(a: m128) -> m128i {
2603    unsafe { transmute(__lsx_vftintrm_w_s(transmute(a))) }
2604}
2605
2606#[inline]
2607#[target_feature(enable = "lsx")]
2608#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2609pub fn lsx_vftintrm_l_d(a: m128d) -> m128i {
2610    unsafe { transmute(__lsx_vftintrm_l_d(transmute(a))) }
2611}
2612
2613#[inline]
2614#[target_feature(enable = "lsx")]
2615#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2616pub fn lsx_vftint_w_d(a: m128d, b: m128d) -> m128i {
2617    unsafe { transmute(__lsx_vftint_w_d(transmute(a), transmute(b))) }
2618}
2619
2620#[inline]
2621#[target_feature(enable = "lsx")]
2622#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2623pub fn lsx_vffint_s_l(a: m128i, b: m128i) -> m128 {
2624    unsafe { transmute(__lsx_vffint_s_l(transmute(a), transmute(b))) }
2625}
2626
2627#[inline]
2628#[target_feature(enable = "lsx")]
2629#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2630pub fn lsx_vftintrz_w_d(a: m128d, b: m128d) -> m128i {
2631    unsafe { transmute(__lsx_vftintrz_w_d(transmute(a), transmute(b))) }
2632}
2633
2634#[inline]
2635#[target_feature(enable = "lsx")]
2636#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2637pub fn lsx_vftintrp_w_d(a: m128d, b: m128d) -> m128i {
2638    unsafe { transmute(__lsx_vftintrp_w_d(transmute(a), transmute(b))) }
2639}
2640
2641#[inline]
2642#[target_feature(enable = "lsx")]
2643#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2644pub fn lsx_vftintrm_w_d(a: m128d, b: m128d) -> m128i {
2645    unsafe { transmute(__lsx_vftintrm_w_d(transmute(a), transmute(b))) }
2646}
2647
2648#[inline]
2649#[target_feature(enable = "lsx")]
2650#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2651pub fn lsx_vftintrne_w_d(a: m128d, b: m128d) -> m128i {
2652    unsafe { transmute(__lsx_vftintrne_w_d(transmute(a), transmute(b))) }
2653}
2654
2655#[inline]
2656#[target_feature(enable = "lsx")]
2657#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2658pub fn lsx_vftintl_l_s(a: m128) -> m128i {
2659    unsafe { transmute(__lsx_vftintl_l_s(transmute(a))) }
2660}
2661
2662#[inline]
2663#[target_feature(enable = "lsx")]
2664#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2665pub fn lsx_vftinth_l_s(a: m128) -> m128i {
2666    unsafe { transmute(__lsx_vftinth_l_s(transmute(a))) }
2667}
2668
2669#[inline]
2670#[target_feature(enable = "lsx")]
2671#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2672pub fn lsx_vffinth_d_w(a: m128i) -> m128d {
2673    unsafe { transmute(__lsx_vffinth_d_w(transmute(a))) }
2674}
2675
2676#[inline]
2677#[target_feature(enable = "lsx")]
2678#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2679pub fn lsx_vffintl_d_w(a: m128i) -> m128d {
2680    unsafe { transmute(__lsx_vffintl_d_w(transmute(a))) }
2681}
2682
2683#[inline]
2684#[target_feature(enable = "lsx")]
2685#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2686pub fn lsx_vftintrzl_l_s(a: m128) -> m128i {
2687    unsafe { transmute(__lsx_vftintrzl_l_s(transmute(a))) }
2688}
2689
2690#[inline]
2691#[target_feature(enable = "lsx")]
2692#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2693pub fn lsx_vftintrzh_l_s(a: m128) -> m128i {
2694    unsafe { transmute(__lsx_vftintrzh_l_s(transmute(a))) }
2695}
2696
2697#[inline]
2698#[target_feature(enable = "lsx")]
2699#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2700pub fn lsx_vftintrpl_l_s(a: m128) -> m128i {
2701    unsafe { transmute(__lsx_vftintrpl_l_s(transmute(a))) }
2702}
2703
2704#[inline]
2705#[target_feature(enable = "lsx")]
2706#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2707pub fn lsx_vftintrph_l_s(a: m128) -> m128i {
2708    unsafe { transmute(__lsx_vftintrph_l_s(transmute(a))) }
2709}
2710
2711#[inline]
2712#[target_feature(enable = "lsx")]
2713#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2714pub fn lsx_vftintrml_l_s(a: m128) -> m128i {
2715    unsafe { transmute(__lsx_vftintrml_l_s(transmute(a))) }
2716}
2717
2718#[inline]
2719#[target_feature(enable = "lsx")]
2720#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2721pub fn lsx_vftintrmh_l_s(a: m128) -> m128i {
2722    unsafe { transmute(__lsx_vftintrmh_l_s(transmute(a))) }
2723}
2724
2725#[inline]
2726#[target_feature(enable = "lsx")]
2727#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2728pub fn lsx_vftintrnel_l_s(a: m128) -> m128i {
2729    unsafe { transmute(__lsx_vftintrnel_l_s(transmute(a))) }
2730}
2731
2732#[inline]
2733#[target_feature(enable = "lsx")]
2734#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2735pub fn lsx_vftintrneh_l_s(a: m128) -> m128i {
2736    unsafe { transmute(__lsx_vftintrneh_l_s(transmute(a))) }
2737}
2738
2739#[inline]
2740#[target_feature(enable = "lsx")]
2741#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2742pub fn lsx_vfrintrne_s(a: m128) -> m128 {
2743    unsafe { transmute(__lsx_vfrintrne_s(transmute(a))) }
2744}
2745
2746#[inline]
2747#[target_feature(enable = "lsx")]
2748#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2749pub fn lsx_vfrintrne_d(a: m128d) -> m128d {
2750    unsafe { transmute(__lsx_vfrintrne_d(transmute(a))) }
2751}
2752
2753#[inline]
2754#[target_feature(enable = "lsx")]
2755#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2756pub fn lsx_vfrintrz_s(a: m128) -> m128 {
2757    unsafe { transmute(__lsx_vfrintrz_s(transmute(a))) }
2758}
2759
2760#[inline]
2761#[target_feature(enable = "lsx")]
2762#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2763pub fn lsx_vfrintrz_d(a: m128d) -> m128d {
2764    unsafe { transmute(__lsx_vfrintrz_d(transmute(a))) }
2765}
2766
2767#[inline]
2768#[target_feature(enable = "lsx")]
2769#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2770pub fn lsx_vfrintrp_s(a: m128) -> m128 {
2771    unsafe { transmute(__lsx_vfrintrp_s(transmute(a))) }
2772}
2773
2774#[inline]
2775#[target_feature(enable = "lsx")]
2776#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2777pub fn lsx_vfrintrp_d(a: m128d) -> m128d {
2778    unsafe { transmute(__lsx_vfrintrp_d(transmute(a))) }
2779}
2780
2781#[inline]
2782#[target_feature(enable = "lsx")]
2783#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2784pub fn lsx_vfrintrm_s(a: m128) -> m128 {
2785    unsafe { transmute(__lsx_vfrintrm_s(transmute(a))) }
2786}
2787
2788#[inline]
2789#[target_feature(enable = "lsx")]
2790#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2791pub fn lsx_vfrintrm_d(a: m128d) -> m128d {
2792    unsafe { transmute(__lsx_vfrintrm_d(transmute(a))) }
2793}
2794
2795#[inline]
2796#[target_feature(enable = "lsx")]
2797#[rustc_legacy_const_generics(2, 3)]
2798#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2799pub unsafe fn lsx_vstelm_b<const IMM_S8: i32, const IMM4: u32>(a: m128i, mem_addr: *mut i8) {
2800    static_assert_simm_bits!(IMM_S8, 8);
2801    static_assert_uimm_bits!(IMM4, 4);
2802    __lsx_vstelm_b(transmute(a), mem_addr, IMM_S8, IMM4)
2803}
2804
2805#[inline]
2806#[target_feature(enable = "lsx")]
2807#[rustc_legacy_const_generics(2, 3)]
2808#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2809pub unsafe fn lsx_vstelm_h<const IMM_S8: i32, const IMM3: u32>(a: m128i, mem_addr: *mut i8) {
2810    static_assert_simm_bits!(IMM_S8, 8);
2811    static_assert_uimm_bits!(IMM3, 3);
2812    __lsx_vstelm_h(transmute(a), mem_addr, IMM_S8, IMM3)
2813}
2814
2815#[inline]
2816#[target_feature(enable = "lsx")]
2817#[rustc_legacy_const_generics(2, 3)]
2818#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2819pub unsafe fn lsx_vstelm_w<const IMM_S8: i32, const IMM2: u32>(a: m128i, mem_addr: *mut i8) {
2820    static_assert_simm_bits!(IMM_S8, 8);
2821    static_assert_uimm_bits!(IMM2, 2);
2822    __lsx_vstelm_w(transmute(a), mem_addr, IMM_S8, IMM2)
2823}
2824
2825#[inline]
2826#[target_feature(enable = "lsx")]
2827#[rustc_legacy_const_generics(2, 3)]
2828#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2829pub unsafe fn lsx_vstelm_d<const IMM_S8: i32, const IMM1: u32>(a: m128i, mem_addr: *mut i8) {
2830    static_assert_simm_bits!(IMM_S8, 8);
2831    static_assert_uimm_bits!(IMM1, 1);
2832    __lsx_vstelm_d(transmute(a), mem_addr, IMM_S8, IMM1)
2833}
2834
2835#[inline]
2836#[target_feature(enable = "lsx")]
2837#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2838pub fn lsx_vaddwev_d_w(a: m128i, b: m128i) -> m128i {
2839    unsafe { transmute(__lsx_vaddwev_d_w(transmute(a), transmute(b))) }
2840}
2841
2842#[inline]
2843#[target_feature(enable = "lsx")]
2844#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2845pub fn lsx_vaddwev_w_h(a: m128i, b: m128i) -> m128i {
2846    unsafe { transmute(__lsx_vaddwev_w_h(transmute(a), transmute(b))) }
2847}
2848
2849#[inline]
2850#[target_feature(enable = "lsx")]
2851#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2852pub fn lsx_vaddwev_h_b(a: m128i, b: m128i) -> m128i {
2853    unsafe { transmute(__lsx_vaddwev_h_b(transmute(a), transmute(b))) }
2854}
2855
2856#[inline]
2857#[target_feature(enable = "lsx")]
2858#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2859pub fn lsx_vaddwod_d_w(a: m128i, b: m128i) -> m128i {
2860    unsafe { transmute(__lsx_vaddwod_d_w(transmute(a), transmute(b))) }
2861}
2862
2863#[inline]
2864#[target_feature(enable = "lsx")]
2865#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2866pub fn lsx_vaddwod_w_h(a: m128i, b: m128i) -> m128i {
2867    unsafe { transmute(__lsx_vaddwod_w_h(transmute(a), transmute(b))) }
2868}
2869
2870#[inline]
2871#[target_feature(enable = "lsx")]
2872#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2873pub fn lsx_vaddwod_h_b(a: m128i, b: m128i) -> m128i {
2874    unsafe { transmute(__lsx_vaddwod_h_b(transmute(a), transmute(b))) }
2875}
2876
2877#[inline]
2878#[target_feature(enable = "lsx")]
2879#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2880pub fn lsx_vaddwev_d_wu(a: m128i, b: m128i) -> m128i {
2881    unsafe { transmute(__lsx_vaddwev_d_wu(transmute(a), transmute(b))) }
2882}
2883
2884#[inline]
2885#[target_feature(enable = "lsx")]
2886#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2887pub fn lsx_vaddwev_w_hu(a: m128i, b: m128i) -> m128i {
2888    unsafe { transmute(__lsx_vaddwev_w_hu(transmute(a), transmute(b))) }
2889}
2890
2891#[inline]
2892#[target_feature(enable = "lsx")]
2893#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2894pub fn lsx_vaddwev_h_bu(a: m128i, b: m128i) -> m128i {
2895    unsafe { transmute(__lsx_vaddwev_h_bu(transmute(a), transmute(b))) }
2896}
2897
2898#[inline]
2899#[target_feature(enable = "lsx")]
2900#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2901pub fn lsx_vaddwod_d_wu(a: m128i, b: m128i) -> m128i {
2902    unsafe { transmute(__lsx_vaddwod_d_wu(transmute(a), transmute(b))) }
2903}
2904
2905#[inline]
2906#[target_feature(enable = "lsx")]
2907#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2908pub fn lsx_vaddwod_w_hu(a: m128i, b: m128i) -> m128i {
2909    unsafe { transmute(__lsx_vaddwod_w_hu(transmute(a), transmute(b))) }
2910}
2911
2912#[inline]
2913#[target_feature(enable = "lsx")]
2914#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2915pub fn lsx_vaddwod_h_bu(a: m128i, b: m128i) -> m128i {
2916    unsafe { transmute(__lsx_vaddwod_h_bu(transmute(a), transmute(b))) }
2917}
2918
2919#[inline]
2920#[target_feature(enable = "lsx")]
2921#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2922pub fn lsx_vaddwev_d_wu_w(a: m128i, b: m128i) -> m128i {
2923    unsafe { transmute(__lsx_vaddwev_d_wu_w(transmute(a), transmute(b))) }
2924}
2925
2926#[inline]
2927#[target_feature(enable = "lsx")]
2928#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2929pub fn lsx_vaddwev_w_hu_h(a: m128i, b: m128i) -> m128i {
2930    unsafe { transmute(__lsx_vaddwev_w_hu_h(transmute(a), transmute(b))) }
2931}
2932
2933#[inline]
2934#[target_feature(enable = "lsx")]
2935#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2936pub fn lsx_vaddwev_h_bu_b(a: m128i, b: m128i) -> m128i {
2937    unsafe { transmute(__lsx_vaddwev_h_bu_b(transmute(a), transmute(b))) }
2938}
2939
2940#[inline]
2941#[target_feature(enable = "lsx")]
2942#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2943pub fn lsx_vaddwod_d_wu_w(a: m128i, b: m128i) -> m128i {
2944    unsafe { transmute(__lsx_vaddwod_d_wu_w(transmute(a), transmute(b))) }
2945}
2946
2947#[inline]
2948#[target_feature(enable = "lsx")]
2949#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2950pub fn lsx_vaddwod_w_hu_h(a: m128i, b: m128i) -> m128i {
2951    unsafe { transmute(__lsx_vaddwod_w_hu_h(transmute(a), transmute(b))) }
2952}
2953
2954#[inline]
2955#[target_feature(enable = "lsx")]
2956#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2957pub fn lsx_vaddwod_h_bu_b(a: m128i, b: m128i) -> m128i {
2958    unsafe { transmute(__lsx_vaddwod_h_bu_b(transmute(a), transmute(b))) }
2959}
2960
2961#[inline]
2962#[target_feature(enable = "lsx")]
2963#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2964pub fn lsx_vsubwev_d_w(a: m128i, b: m128i) -> m128i {
2965    unsafe { transmute(__lsx_vsubwev_d_w(transmute(a), transmute(b))) }
2966}
2967
2968#[inline]
2969#[target_feature(enable = "lsx")]
2970#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2971pub fn lsx_vsubwev_w_h(a: m128i, b: m128i) -> m128i {
2972    unsafe { transmute(__lsx_vsubwev_w_h(transmute(a), transmute(b))) }
2973}
2974
2975#[inline]
2976#[target_feature(enable = "lsx")]
2977#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2978pub fn lsx_vsubwev_h_b(a: m128i, b: m128i) -> m128i {
2979    unsafe { transmute(__lsx_vsubwev_h_b(transmute(a), transmute(b))) }
2980}
2981
2982#[inline]
2983#[target_feature(enable = "lsx")]
2984#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2985pub fn lsx_vsubwod_d_w(a: m128i, b: m128i) -> m128i {
2986    unsafe { transmute(__lsx_vsubwod_d_w(transmute(a), transmute(b))) }
2987}
2988
2989#[inline]
2990#[target_feature(enable = "lsx")]
2991#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2992pub fn lsx_vsubwod_w_h(a: m128i, b: m128i) -> m128i {
2993    unsafe { transmute(__lsx_vsubwod_w_h(transmute(a), transmute(b))) }
2994}
2995
2996#[inline]
2997#[target_feature(enable = "lsx")]
2998#[unstable(feature = "stdarch_loongarch", issue = "117427")]
2999pub fn lsx_vsubwod_h_b(a: m128i, b: m128i) -> m128i {
3000    unsafe { transmute(__lsx_vsubwod_h_b(transmute(a), transmute(b))) }
3001}
3002
3003#[inline]
3004#[target_feature(enable = "lsx")]
3005#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3006pub fn lsx_vsubwev_d_wu(a: m128i, b: m128i) -> m128i {
3007    unsafe { transmute(__lsx_vsubwev_d_wu(transmute(a), transmute(b))) }
3008}
3009
3010#[inline]
3011#[target_feature(enable = "lsx")]
3012#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3013pub fn lsx_vsubwev_w_hu(a: m128i, b: m128i) -> m128i {
3014    unsafe { transmute(__lsx_vsubwev_w_hu(transmute(a), transmute(b))) }
3015}
3016
3017#[inline]
3018#[target_feature(enable = "lsx")]
3019#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3020pub fn lsx_vsubwev_h_bu(a: m128i, b: m128i) -> m128i {
3021    unsafe { transmute(__lsx_vsubwev_h_bu(transmute(a), transmute(b))) }
3022}
3023
3024#[inline]
3025#[target_feature(enable = "lsx")]
3026#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3027pub fn lsx_vsubwod_d_wu(a: m128i, b: m128i) -> m128i {
3028    unsafe { transmute(__lsx_vsubwod_d_wu(transmute(a), transmute(b))) }
3029}
3030
3031#[inline]
3032#[target_feature(enable = "lsx")]
3033#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3034pub fn lsx_vsubwod_w_hu(a: m128i, b: m128i) -> m128i {
3035    unsafe { transmute(__lsx_vsubwod_w_hu(transmute(a), transmute(b))) }
3036}
3037
3038#[inline]
3039#[target_feature(enable = "lsx")]
3040#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3041pub fn lsx_vsubwod_h_bu(a: m128i, b: m128i) -> m128i {
3042    unsafe { transmute(__lsx_vsubwod_h_bu(transmute(a), transmute(b))) }
3043}
3044
3045#[inline]
3046#[target_feature(enable = "lsx")]
3047#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3048pub fn lsx_vaddwev_q_d(a: m128i, b: m128i) -> m128i {
3049    unsafe { transmute(__lsx_vaddwev_q_d(transmute(a), transmute(b))) }
3050}
3051
3052#[inline]
3053#[target_feature(enable = "lsx")]
3054#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3055pub fn lsx_vaddwod_q_d(a: m128i, b: m128i) -> m128i {
3056    unsafe { transmute(__lsx_vaddwod_q_d(transmute(a), transmute(b))) }
3057}
3058
3059#[inline]
3060#[target_feature(enable = "lsx")]
3061#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3062pub fn lsx_vaddwev_q_du(a: m128i, b: m128i) -> m128i {
3063    unsafe { transmute(__lsx_vaddwev_q_du(transmute(a), transmute(b))) }
3064}
3065
3066#[inline]
3067#[target_feature(enable = "lsx")]
3068#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3069pub fn lsx_vaddwod_q_du(a: m128i, b: m128i) -> m128i {
3070    unsafe { transmute(__lsx_vaddwod_q_du(transmute(a), transmute(b))) }
3071}
3072
3073#[inline]
3074#[target_feature(enable = "lsx")]
3075#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3076pub fn lsx_vsubwev_q_d(a: m128i, b: m128i) -> m128i {
3077    unsafe { transmute(__lsx_vsubwev_q_d(transmute(a), transmute(b))) }
3078}
3079
3080#[inline]
3081#[target_feature(enable = "lsx")]
3082#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3083pub fn lsx_vsubwod_q_d(a: m128i, b: m128i) -> m128i {
3084    unsafe { transmute(__lsx_vsubwod_q_d(transmute(a), transmute(b))) }
3085}
3086
3087#[inline]
3088#[target_feature(enable = "lsx")]
3089#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3090pub fn lsx_vsubwev_q_du(a: m128i, b: m128i) -> m128i {
3091    unsafe { transmute(__lsx_vsubwev_q_du(transmute(a), transmute(b))) }
3092}
3093
3094#[inline]
3095#[target_feature(enable = "lsx")]
3096#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3097pub fn lsx_vsubwod_q_du(a: m128i, b: m128i) -> m128i {
3098    unsafe { transmute(__lsx_vsubwod_q_du(transmute(a), transmute(b))) }
3099}
3100
3101#[inline]
3102#[target_feature(enable = "lsx")]
3103#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3104pub fn lsx_vaddwev_q_du_d(a: m128i, b: m128i) -> m128i {
3105    unsafe { transmute(__lsx_vaddwev_q_du_d(transmute(a), transmute(b))) }
3106}
3107
3108#[inline]
3109#[target_feature(enable = "lsx")]
3110#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3111pub fn lsx_vaddwod_q_du_d(a: m128i, b: m128i) -> m128i {
3112    unsafe { transmute(__lsx_vaddwod_q_du_d(transmute(a), transmute(b))) }
3113}
3114
3115#[inline]
3116#[target_feature(enable = "lsx")]
3117#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3118pub fn lsx_vmulwev_d_w(a: m128i, b: m128i) -> m128i {
3119    unsafe { transmute(__lsx_vmulwev_d_w(transmute(a), transmute(b))) }
3120}
3121
3122#[inline]
3123#[target_feature(enable = "lsx")]
3124#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3125pub fn lsx_vmulwev_w_h(a: m128i, b: m128i) -> m128i {
3126    unsafe { transmute(__lsx_vmulwev_w_h(transmute(a), transmute(b))) }
3127}
3128
3129#[inline]
3130#[target_feature(enable = "lsx")]
3131#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3132pub fn lsx_vmulwev_h_b(a: m128i, b: m128i) -> m128i {
3133    unsafe { transmute(__lsx_vmulwev_h_b(transmute(a), transmute(b))) }
3134}
3135
3136#[inline]
3137#[target_feature(enable = "lsx")]
3138#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3139pub fn lsx_vmulwod_d_w(a: m128i, b: m128i) -> m128i {
3140    unsafe { transmute(__lsx_vmulwod_d_w(transmute(a), transmute(b))) }
3141}
3142
3143#[inline]
3144#[target_feature(enable = "lsx")]
3145#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3146pub fn lsx_vmulwod_w_h(a: m128i, b: m128i) -> m128i {
3147    unsafe { transmute(__lsx_vmulwod_w_h(transmute(a), transmute(b))) }
3148}
3149
3150#[inline]
3151#[target_feature(enable = "lsx")]
3152#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3153pub fn lsx_vmulwod_h_b(a: m128i, b: m128i) -> m128i {
3154    unsafe { transmute(__lsx_vmulwod_h_b(transmute(a), transmute(b))) }
3155}
3156
3157#[inline]
3158#[target_feature(enable = "lsx")]
3159#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3160pub fn lsx_vmulwev_d_wu(a: m128i, b: m128i) -> m128i {
3161    unsafe { transmute(__lsx_vmulwev_d_wu(transmute(a), transmute(b))) }
3162}
3163
3164#[inline]
3165#[target_feature(enable = "lsx")]
3166#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3167pub fn lsx_vmulwev_w_hu(a: m128i, b: m128i) -> m128i {
3168    unsafe { transmute(__lsx_vmulwev_w_hu(transmute(a), transmute(b))) }
3169}
3170
3171#[inline]
3172#[target_feature(enable = "lsx")]
3173#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3174pub fn lsx_vmulwev_h_bu(a: m128i, b: m128i) -> m128i {
3175    unsafe { transmute(__lsx_vmulwev_h_bu(transmute(a), transmute(b))) }
3176}
3177
3178#[inline]
3179#[target_feature(enable = "lsx")]
3180#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3181pub fn lsx_vmulwod_d_wu(a: m128i, b: m128i) -> m128i {
3182    unsafe { transmute(__lsx_vmulwod_d_wu(transmute(a), transmute(b))) }
3183}
3184
3185#[inline]
3186#[target_feature(enable = "lsx")]
3187#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3188pub fn lsx_vmulwod_w_hu(a: m128i, b: m128i) -> m128i {
3189    unsafe { transmute(__lsx_vmulwod_w_hu(transmute(a), transmute(b))) }
3190}
3191
3192#[inline]
3193#[target_feature(enable = "lsx")]
3194#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3195pub fn lsx_vmulwod_h_bu(a: m128i, b: m128i) -> m128i {
3196    unsafe { transmute(__lsx_vmulwod_h_bu(transmute(a), transmute(b))) }
3197}
3198
3199#[inline]
3200#[target_feature(enable = "lsx")]
3201#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3202pub fn lsx_vmulwev_d_wu_w(a: m128i, b: m128i) -> m128i {
3203    unsafe { transmute(__lsx_vmulwev_d_wu_w(transmute(a), transmute(b))) }
3204}
3205
3206#[inline]
3207#[target_feature(enable = "lsx")]
3208#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3209pub fn lsx_vmulwev_w_hu_h(a: m128i, b: m128i) -> m128i {
3210    unsafe { transmute(__lsx_vmulwev_w_hu_h(transmute(a), transmute(b))) }
3211}
3212
3213#[inline]
3214#[target_feature(enable = "lsx")]
3215#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3216pub fn lsx_vmulwev_h_bu_b(a: m128i, b: m128i) -> m128i {
3217    unsafe { transmute(__lsx_vmulwev_h_bu_b(transmute(a), transmute(b))) }
3218}
3219
3220#[inline]
3221#[target_feature(enable = "lsx")]
3222#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3223pub fn lsx_vmulwod_d_wu_w(a: m128i, b: m128i) -> m128i {
3224    unsafe { transmute(__lsx_vmulwod_d_wu_w(transmute(a), transmute(b))) }
3225}
3226
3227#[inline]
3228#[target_feature(enable = "lsx")]
3229#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3230pub fn lsx_vmulwod_w_hu_h(a: m128i, b: m128i) -> m128i {
3231    unsafe { transmute(__lsx_vmulwod_w_hu_h(transmute(a), transmute(b))) }
3232}
3233
3234#[inline]
3235#[target_feature(enable = "lsx")]
3236#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3237pub fn lsx_vmulwod_h_bu_b(a: m128i, b: m128i) -> m128i {
3238    unsafe { transmute(__lsx_vmulwod_h_bu_b(transmute(a), transmute(b))) }
3239}
3240
3241#[inline]
3242#[target_feature(enable = "lsx")]
3243#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3244pub fn lsx_vmulwev_q_d(a: m128i, b: m128i) -> m128i {
3245    unsafe { transmute(__lsx_vmulwev_q_d(transmute(a), transmute(b))) }
3246}
3247
3248#[inline]
3249#[target_feature(enable = "lsx")]
3250#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3251pub fn lsx_vmulwod_q_d(a: m128i, b: m128i) -> m128i {
3252    unsafe { transmute(__lsx_vmulwod_q_d(transmute(a), transmute(b))) }
3253}
3254
3255#[inline]
3256#[target_feature(enable = "lsx")]
3257#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3258pub fn lsx_vmulwev_q_du(a: m128i, b: m128i) -> m128i {
3259    unsafe { transmute(__lsx_vmulwev_q_du(transmute(a), transmute(b))) }
3260}
3261
3262#[inline]
3263#[target_feature(enable = "lsx")]
3264#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3265pub fn lsx_vmulwod_q_du(a: m128i, b: m128i) -> m128i {
3266    unsafe { transmute(__lsx_vmulwod_q_du(transmute(a), transmute(b))) }
3267}
3268
3269#[inline]
3270#[target_feature(enable = "lsx")]
3271#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3272pub fn lsx_vmulwev_q_du_d(a: m128i, b: m128i) -> m128i {
3273    unsafe { transmute(__lsx_vmulwev_q_du_d(transmute(a), transmute(b))) }
3274}
3275
3276#[inline]
3277#[target_feature(enable = "lsx")]
3278#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3279pub fn lsx_vmulwod_q_du_d(a: m128i, b: m128i) -> m128i {
3280    unsafe { transmute(__lsx_vmulwod_q_du_d(transmute(a), transmute(b))) }
3281}
3282
3283#[inline]
3284#[target_feature(enable = "lsx")]
3285#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3286pub fn lsx_vhaddw_q_d(a: m128i, b: m128i) -> m128i {
3287    unsafe { transmute(__lsx_vhaddw_q_d(transmute(a), transmute(b))) }
3288}
3289
3290#[inline]
3291#[target_feature(enable = "lsx")]
3292#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3293pub fn lsx_vhaddw_qu_du(a: m128i, b: m128i) -> m128i {
3294    unsafe { transmute(__lsx_vhaddw_qu_du(transmute(a), transmute(b))) }
3295}
3296
3297#[inline]
3298#[target_feature(enable = "lsx")]
3299#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3300pub fn lsx_vhsubw_q_d(a: m128i, b: m128i) -> m128i {
3301    unsafe { transmute(__lsx_vhsubw_q_d(transmute(a), transmute(b))) }
3302}
3303
3304#[inline]
3305#[target_feature(enable = "lsx")]
3306#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3307pub fn lsx_vhsubw_qu_du(a: m128i, b: m128i) -> m128i {
3308    unsafe { transmute(__lsx_vhsubw_qu_du(transmute(a), transmute(b))) }
3309}
3310
3311#[inline]
3312#[target_feature(enable = "lsx")]
3313#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3314pub fn lsx_vmaddwev_d_w(a: m128i, b: m128i, c: m128i) -> m128i {
3315    unsafe { transmute(__lsx_vmaddwev_d_w(transmute(a), transmute(b), transmute(c))) }
3316}
3317
3318#[inline]
3319#[target_feature(enable = "lsx")]
3320#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3321pub fn lsx_vmaddwev_w_h(a: m128i, b: m128i, c: m128i) -> m128i {
3322    unsafe { transmute(__lsx_vmaddwev_w_h(transmute(a), transmute(b), transmute(c))) }
3323}
3324
3325#[inline]
3326#[target_feature(enable = "lsx")]
3327#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3328pub fn lsx_vmaddwev_h_b(a: m128i, b: m128i, c: m128i) -> m128i {
3329    unsafe { transmute(__lsx_vmaddwev_h_b(transmute(a), transmute(b), transmute(c))) }
3330}
3331
3332#[inline]
3333#[target_feature(enable = "lsx")]
3334#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3335pub fn lsx_vmaddwev_d_wu(a: m128i, b: m128i, c: m128i) -> m128i {
3336    unsafe { transmute(__lsx_vmaddwev_d_wu(transmute(a), transmute(b), transmute(c))) }
3337}
3338
3339#[inline]
3340#[target_feature(enable = "lsx")]
3341#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3342pub fn lsx_vmaddwev_w_hu(a: m128i, b: m128i, c: m128i) -> m128i {
3343    unsafe { transmute(__lsx_vmaddwev_w_hu(transmute(a), transmute(b), transmute(c))) }
3344}
3345
3346#[inline]
3347#[target_feature(enable = "lsx")]
3348#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3349pub fn lsx_vmaddwev_h_bu(a: m128i, b: m128i, c: m128i) -> m128i {
3350    unsafe { transmute(__lsx_vmaddwev_h_bu(transmute(a), transmute(b), transmute(c))) }
3351}
3352
3353#[inline]
3354#[target_feature(enable = "lsx")]
3355#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3356pub fn lsx_vmaddwod_d_w(a: m128i, b: m128i, c: m128i) -> m128i {
3357    unsafe { transmute(__lsx_vmaddwod_d_w(transmute(a), transmute(b), transmute(c))) }
3358}
3359
3360#[inline]
3361#[target_feature(enable = "lsx")]
3362#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3363pub fn lsx_vmaddwod_w_h(a: m128i, b: m128i, c: m128i) -> m128i {
3364    unsafe { transmute(__lsx_vmaddwod_w_h(transmute(a), transmute(b), transmute(c))) }
3365}
3366
3367#[inline]
3368#[target_feature(enable = "lsx")]
3369#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3370pub fn lsx_vmaddwod_h_b(a: m128i, b: m128i, c: m128i) -> m128i {
3371    unsafe { transmute(__lsx_vmaddwod_h_b(transmute(a), transmute(b), transmute(c))) }
3372}
3373
3374#[inline]
3375#[target_feature(enable = "lsx")]
3376#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3377pub fn lsx_vmaddwod_d_wu(a: m128i, b: m128i, c: m128i) -> m128i {
3378    unsafe { transmute(__lsx_vmaddwod_d_wu(transmute(a), transmute(b), transmute(c))) }
3379}
3380
3381#[inline]
3382#[target_feature(enable = "lsx")]
3383#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3384pub fn lsx_vmaddwod_w_hu(a: m128i, b: m128i, c: m128i) -> m128i {
3385    unsafe { transmute(__lsx_vmaddwod_w_hu(transmute(a), transmute(b), transmute(c))) }
3386}
3387
3388#[inline]
3389#[target_feature(enable = "lsx")]
3390#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3391pub fn lsx_vmaddwod_h_bu(a: m128i, b: m128i, c: m128i) -> m128i {
3392    unsafe { transmute(__lsx_vmaddwod_h_bu(transmute(a), transmute(b), transmute(c))) }
3393}
3394
3395#[inline]
3396#[target_feature(enable = "lsx")]
3397#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3398pub fn lsx_vmaddwev_d_wu_w(a: m128i, b: m128i, c: m128i) -> m128i {
3399    unsafe { transmute(__lsx_vmaddwev_d_wu_w(transmute(a), transmute(b), transmute(c))) }
3400}
3401
3402#[inline]
3403#[target_feature(enable = "lsx")]
3404#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3405pub fn lsx_vmaddwev_w_hu_h(a: m128i, b: m128i, c: m128i) -> m128i {
3406    unsafe { transmute(__lsx_vmaddwev_w_hu_h(transmute(a), transmute(b), transmute(c))) }
3407}
3408
3409#[inline]
3410#[target_feature(enable = "lsx")]
3411#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3412pub fn lsx_vmaddwev_h_bu_b(a: m128i, b: m128i, c: m128i) -> m128i {
3413    unsafe { transmute(__lsx_vmaddwev_h_bu_b(transmute(a), transmute(b), transmute(c))) }
3414}
3415
3416#[inline]
3417#[target_feature(enable = "lsx")]
3418#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3419pub fn lsx_vmaddwod_d_wu_w(a: m128i, b: m128i, c: m128i) -> m128i {
3420    unsafe { transmute(__lsx_vmaddwod_d_wu_w(transmute(a), transmute(b), transmute(c))) }
3421}
3422
3423#[inline]
3424#[target_feature(enable = "lsx")]
3425#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3426pub fn lsx_vmaddwod_w_hu_h(a: m128i, b: m128i, c: m128i) -> m128i {
3427    unsafe { transmute(__lsx_vmaddwod_w_hu_h(transmute(a), transmute(b), transmute(c))) }
3428}
3429
3430#[inline]
3431#[target_feature(enable = "lsx")]
3432#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3433pub fn lsx_vmaddwod_h_bu_b(a: m128i, b: m128i, c: m128i) -> m128i {
3434    unsafe { transmute(__lsx_vmaddwod_h_bu_b(transmute(a), transmute(b), transmute(c))) }
3435}
3436
3437#[inline]
3438#[target_feature(enable = "lsx")]
3439#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3440pub fn lsx_vmaddwev_q_d(a: m128i, b: m128i, c: m128i) -> m128i {
3441    unsafe { transmute(__lsx_vmaddwev_q_d(transmute(a), transmute(b), transmute(c))) }
3442}
3443
3444#[inline]
3445#[target_feature(enable = "lsx")]
3446#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3447pub fn lsx_vmaddwod_q_d(a: m128i, b: m128i, c: m128i) -> m128i {
3448    unsafe { transmute(__lsx_vmaddwod_q_d(transmute(a), transmute(b), transmute(c))) }
3449}
3450
3451#[inline]
3452#[target_feature(enable = "lsx")]
3453#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3454pub fn lsx_vmaddwev_q_du(a: m128i, b: m128i, c: m128i) -> m128i {
3455    unsafe { transmute(__lsx_vmaddwev_q_du(transmute(a), transmute(b), transmute(c))) }
3456}
3457
3458#[inline]
3459#[target_feature(enable = "lsx")]
3460#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3461pub fn lsx_vmaddwod_q_du(a: m128i, b: m128i, c: m128i) -> m128i {
3462    unsafe { transmute(__lsx_vmaddwod_q_du(transmute(a), transmute(b), transmute(c))) }
3463}
3464
3465#[inline]
3466#[target_feature(enable = "lsx")]
3467#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3468pub fn lsx_vmaddwev_q_du_d(a: m128i, b: m128i, c: m128i) -> m128i {
3469    unsafe { transmute(__lsx_vmaddwev_q_du_d(transmute(a), transmute(b), transmute(c))) }
3470}
3471
3472#[inline]
3473#[target_feature(enable = "lsx")]
3474#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3475pub fn lsx_vmaddwod_q_du_d(a: m128i, b: m128i, c: m128i) -> m128i {
3476    unsafe { transmute(__lsx_vmaddwod_q_du_d(transmute(a), transmute(b), transmute(c))) }
3477}
3478
3479#[inline]
3480#[target_feature(enable = "lsx")]
3481#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3482pub fn lsx_vrotr_b(a: m128i, b: m128i) -> m128i {
3483    unsafe { transmute(__lsx_vrotr_b(transmute(a), transmute(b))) }
3484}
3485
3486#[inline]
3487#[target_feature(enable = "lsx")]
3488#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3489pub fn lsx_vrotr_h(a: m128i, b: m128i) -> m128i {
3490    unsafe { transmute(__lsx_vrotr_h(transmute(a), transmute(b))) }
3491}
3492
3493#[inline]
3494#[target_feature(enable = "lsx")]
3495#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3496pub fn lsx_vrotr_w(a: m128i, b: m128i) -> m128i {
3497    unsafe { transmute(__lsx_vrotr_w(transmute(a), transmute(b))) }
3498}
3499
3500#[inline]
3501#[target_feature(enable = "lsx")]
3502#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3503pub fn lsx_vrotr_d(a: m128i, b: m128i) -> m128i {
3504    unsafe { transmute(__lsx_vrotr_d(transmute(a), transmute(b))) }
3505}
3506
3507#[inline]
3508#[target_feature(enable = "lsx")]
3509#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3510pub fn lsx_vadd_q(a: m128i, b: m128i) -> m128i {
3511    unsafe { transmute(__lsx_vadd_q(transmute(a), transmute(b))) }
3512}
3513
3514#[inline]
3515#[target_feature(enable = "lsx")]
3516#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3517pub fn lsx_vsub_q(a: m128i, b: m128i) -> m128i {
3518    unsafe { transmute(__lsx_vsub_q(transmute(a), transmute(b))) }
3519}
3520
3521#[inline]
3522#[target_feature(enable = "lsx")]
3523#[rustc_legacy_const_generics(1)]
3524#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3525pub unsafe fn lsx_vldrepl_b<const IMM_S12: i32>(mem_addr: *const i8) -> m128i {
3526    static_assert_simm_bits!(IMM_S12, 12);
3527    transmute(__lsx_vldrepl_b(mem_addr, IMM_S12))
3528}
3529
3530#[inline]
3531#[target_feature(enable = "lsx")]
3532#[rustc_legacy_const_generics(1)]
3533#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3534pub unsafe fn lsx_vldrepl_h<const IMM_S11: i32>(mem_addr: *const i8) -> m128i {
3535    static_assert_simm_bits!(IMM_S11, 11);
3536    transmute(__lsx_vldrepl_h(mem_addr, IMM_S11))
3537}
3538
3539#[inline]
3540#[target_feature(enable = "lsx")]
3541#[rustc_legacy_const_generics(1)]
3542#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3543pub unsafe fn lsx_vldrepl_w<const IMM_S10: i32>(mem_addr: *const i8) -> m128i {
3544    static_assert_simm_bits!(IMM_S10, 10);
3545    transmute(__lsx_vldrepl_w(mem_addr, IMM_S10))
3546}
3547
3548#[inline]
3549#[target_feature(enable = "lsx")]
3550#[rustc_legacy_const_generics(1)]
3551#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3552pub unsafe fn lsx_vldrepl_d<const IMM_S9: i32>(mem_addr: *const i8) -> m128i {
3553    static_assert_simm_bits!(IMM_S9, 9);
3554    transmute(__lsx_vldrepl_d(mem_addr, IMM_S9))
3555}
3556
3557#[inline]
3558#[target_feature(enable = "lsx")]
3559#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3560pub fn lsx_vmskgez_b(a: m128i) -> m128i {
3561    unsafe { transmute(__lsx_vmskgez_b(transmute(a))) }
3562}
3563
3564#[inline]
3565#[target_feature(enable = "lsx")]
3566#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3567pub fn lsx_vmsknz_b(a: m128i) -> m128i {
3568    unsafe { transmute(__lsx_vmsknz_b(transmute(a))) }
3569}
3570
3571#[inline]
3572#[target_feature(enable = "lsx")]
3573#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3574pub fn lsx_vexth_h_b(a: m128i) -> m128i {
3575    unsafe { transmute(__lsx_vexth_h_b(transmute(a))) }
3576}
3577
3578#[inline]
3579#[target_feature(enable = "lsx")]
3580#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3581pub fn lsx_vexth_w_h(a: m128i) -> m128i {
3582    unsafe { transmute(__lsx_vexth_w_h(transmute(a))) }
3583}
3584
3585#[inline]
3586#[target_feature(enable = "lsx")]
3587#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3588pub fn lsx_vexth_d_w(a: m128i) -> m128i {
3589    unsafe { transmute(__lsx_vexth_d_w(transmute(a))) }
3590}
3591
3592#[inline]
3593#[target_feature(enable = "lsx")]
3594#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3595pub fn lsx_vexth_q_d(a: m128i) -> m128i {
3596    unsafe { transmute(__lsx_vexth_q_d(transmute(a))) }
3597}
3598
3599#[inline]
3600#[target_feature(enable = "lsx")]
3601#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3602pub fn lsx_vexth_hu_bu(a: m128i) -> m128i {
3603    unsafe { transmute(__lsx_vexth_hu_bu(transmute(a))) }
3604}
3605
3606#[inline]
3607#[target_feature(enable = "lsx")]
3608#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3609pub fn lsx_vexth_wu_hu(a: m128i) -> m128i {
3610    unsafe { transmute(__lsx_vexth_wu_hu(transmute(a))) }
3611}
3612
3613#[inline]
3614#[target_feature(enable = "lsx")]
3615#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3616pub fn lsx_vexth_du_wu(a: m128i) -> m128i {
3617    unsafe { transmute(__lsx_vexth_du_wu(transmute(a))) }
3618}
3619
3620#[inline]
3621#[target_feature(enable = "lsx")]
3622#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3623pub fn lsx_vexth_qu_du(a: m128i) -> m128i {
3624    unsafe { transmute(__lsx_vexth_qu_du(transmute(a))) }
3625}
3626
3627#[inline]
3628#[target_feature(enable = "lsx")]
3629#[rustc_legacy_const_generics(1)]
3630#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3631pub fn lsx_vrotri_b<const IMM3: u32>(a: m128i) -> m128i {
3632    static_assert_uimm_bits!(IMM3, 3);
3633    unsafe { transmute(__lsx_vrotri_b(transmute(a), IMM3)) }
3634}
3635
3636#[inline]
3637#[target_feature(enable = "lsx")]
3638#[rustc_legacy_const_generics(1)]
3639#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3640pub fn lsx_vrotri_h<const IMM4: u32>(a: m128i) -> m128i {
3641    static_assert_uimm_bits!(IMM4, 4);
3642    unsafe { transmute(__lsx_vrotri_h(transmute(a), IMM4)) }
3643}
3644
3645#[inline]
3646#[target_feature(enable = "lsx")]
3647#[rustc_legacy_const_generics(1)]
3648#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3649pub fn lsx_vrotri_w<const IMM5: u32>(a: m128i) -> m128i {
3650    static_assert_uimm_bits!(IMM5, 5);
3651    unsafe { transmute(__lsx_vrotri_w(transmute(a), IMM5)) }
3652}
3653
3654#[inline]
3655#[target_feature(enable = "lsx")]
3656#[rustc_legacy_const_generics(1)]
3657#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3658pub fn lsx_vrotri_d<const IMM6: u32>(a: m128i) -> m128i {
3659    static_assert_uimm_bits!(IMM6, 6);
3660    unsafe { transmute(__lsx_vrotri_d(transmute(a), IMM6)) }
3661}
3662
3663#[inline]
3664#[target_feature(enable = "lsx")]
3665#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3666pub fn lsx_vextl_q_d(a: m128i) -> m128i {
3667    unsafe { transmute(__lsx_vextl_q_d(transmute(a))) }
3668}
3669
3670#[inline]
3671#[target_feature(enable = "lsx")]
3672#[rustc_legacy_const_generics(2)]
3673#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3674pub fn lsx_vsrlni_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3675    static_assert_uimm_bits!(IMM4, 4);
3676    unsafe { transmute(__lsx_vsrlni_b_h(transmute(a), transmute(b), IMM4)) }
3677}
3678
3679#[inline]
3680#[target_feature(enable = "lsx")]
3681#[rustc_legacy_const_generics(2)]
3682#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3683pub fn lsx_vsrlni_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3684    static_assert_uimm_bits!(IMM5, 5);
3685    unsafe { transmute(__lsx_vsrlni_h_w(transmute(a), transmute(b), IMM5)) }
3686}
3687
3688#[inline]
3689#[target_feature(enable = "lsx")]
3690#[rustc_legacy_const_generics(2)]
3691#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3692pub fn lsx_vsrlni_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3693    static_assert_uimm_bits!(IMM6, 6);
3694    unsafe { transmute(__lsx_vsrlni_w_d(transmute(a), transmute(b), IMM6)) }
3695}
3696
3697#[inline]
3698#[target_feature(enable = "lsx")]
3699#[rustc_legacy_const_generics(2)]
3700#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3701pub fn lsx_vsrlni_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3702    static_assert_uimm_bits!(IMM7, 7);
3703    unsafe { transmute(__lsx_vsrlni_d_q(transmute(a), transmute(b), IMM7)) }
3704}
3705
3706#[inline]
3707#[target_feature(enable = "lsx")]
3708#[rustc_legacy_const_generics(2)]
3709#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3710pub fn lsx_vsrlrni_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3711    static_assert_uimm_bits!(IMM4, 4);
3712    unsafe { transmute(__lsx_vsrlrni_b_h(transmute(a), transmute(b), IMM4)) }
3713}
3714
3715#[inline]
3716#[target_feature(enable = "lsx")]
3717#[rustc_legacy_const_generics(2)]
3718#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3719pub fn lsx_vsrlrni_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3720    static_assert_uimm_bits!(IMM5, 5);
3721    unsafe { transmute(__lsx_vsrlrni_h_w(transmute(a), transmute(b), IMM5)) }
3722}
3723
3724#[inline]
3725#[target_feature(enable = "lsx")]
3726#[rustc_legacy_const_generics(2)]
3727#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3728pub fn lsx_vsrlrni_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3729    static_assert_uimm_bits!(IMM6, 6);
3730    unsafe { transmute(__lsx_vsrlrni_w_d(transmute(a), transmute(b), IMM6)) }
3731}
3732
3733#[inline]
3734#[target_feature(enable = "lsx")]
3735#[rustc_legacy_const_generics(2)]
3736#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3737pub fn lsx_vsrlrni_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3738    static_assert_uimm_bits!(IMM7, 7);
3739    unsafe { transmute(__lsx_vsrlrni_d_q(transmute(a), transmute(b), IMM7)) }
3740}
3741
3742#[inline]
3743#[target_feature(enable = "lsx")]
3744#[rustc_legacy_const_generics(2)]
3745#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3746pub fn lsx_vssrlni_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3747    static_assert_uimm_bits!(IMM4, 4);
3748    unsafe { transmute(__lsx_vssrlni_b_h(transmute(a), transmute(b), IMM4)) }
3749}
3750
3751#[inline]
3752#[target_feature(enable = "lsx")]
3753#[rustc_legacy_const_generics(2)]
3754#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3755pub fn lsx_vssrlni_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3756    static_assert_uimm_bits!(IMM5, 5);
3757    unsafe { transmute(__lsx_vssrlni_h_w(transmute(a), transmute(b), IMM5)) }
3758}
3759
3760#[inline]
3761#[target_feature(enable = "lsx")]
3762#[rustc_legacy_const_generics(2)]
3763#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3764pub fn lsx_vssrlni_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3765    static_assert_uimm_bits!(IMM6, 6);
3766    unsafe { transmute(__lsx_vssrlni_w_d(transmute(a), transmute(b), IMM6)) }
3767}
3768
3769#[inline]
3770#[target_feature(enable = "lsx")]
3771#[rustc_legacy_const_generics(2)]
3772#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3773pub fn lsx_vssrlni_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3774    static_assert_uimm_bits!(IMM7, 7);
3775    unsafe { transmute(__lsx_vssrlni_d_q(transmute(a), transmute(b), IMM7)) }
3776}
3777
3778#[inline]
3779#[target_feature(enable = "lsx")]
3780#[rustc_legacy_const_generics(2)]
3781#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3782pub fn lsx_vssrlni_bu_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3783    static_assert_uimm_bits!(IMM4, 4);
3784    unsafe { transmute(__lsx_vssrlni_bu_h(transmute(a), transmute(b), IMM4)) }
3785}
3786
3787#[inline]
3788#[target_feature(enable = "lsx")]
3789#[rustc_legacy_const_generics(2)]
3790#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3791pub fn lsx_vssrlni_hu_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3792    static_assert_uimm_bits!(IMM5, 5);
3793    unsafe { transmute(__lsx_vssrlni_hu_w(transmute(a), transmute(b), IMM5)) }
3794}
3795
3796#[inline]
3797#[target_feature(enable = "lsx")]
3798#[rustc_legacy_const_generics(2)]
3799#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3800pub fn lsx_vssrlni_wu_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3801    static_assert_uimm_bits!(IMM6, 6);
3802    unsafe { transmute(__lsx_vssrlni_wu_d(transmute(a), transmute(b), IMM6)) }
3803}
3804
3805#[inline]
3806#[target_feature(enable = "lsx")]
3807#[rustc_legacy_const_generics(2)]
3808#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3809pub fn lsx_vssrlni_du_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3810    static_assert_uimm_bits!(IMM7, 7);
3811    unsafe { transmute(__lsx_vssrlni_du_q(transmute(a), transmute(b), IMM7)) }
3812}
3813
3814#[inline]
3815#[target_feature(enable = "lsx")]
3816#[rustc_legacy_const_generics(2)]
3817#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3818pub fn lsx_vssrlrni_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3819    static_assert_uimm_bits!(IMM4, 4);
3820    unsafe { transmute(__lsx_vssrlrni_b_h(transmute(a), transmute(b), IMM4)) }
3821}
3822
3823#[inline]
3824#[target_feature(enable = "lsx")]
3825#[rustc_legacy_const_generics(2)]
3826#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3827pub fn lsx_vssrlrni_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3828    static_assert_uimm_bits!(IMM5, 5);
3829    unsafe { transmute(__lsx_vssrlrni_h_w(transmute(a), transmute(b), IMM5)) }
3830}
3831
3832#[inline]
3833#[target_feature(enable = "lsx")]
3834#[rustc_legacy_const_generics(2)]
3835#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3836pub fn lsx_vssrlrni_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3837    static_assert_uimm_bits!(IMM6, 6);
3838    unsafe { transmute(__lsx_vssrlrni_w_d(transmute(a), transmute(b), IMM6)) }
3839}
3840
3841#[inline]
3842#[target_feature(enable = "lsx")]
3843#[rustc_legacy_const_generics(2)]
3844#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3845pub fn lsx_vssrlrni_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3846    static_assert_uimm_bits!(IMM7, 7);
3847    unsafe { transmute(__lsx_vssrlrni_d_q(transmute(a), transmute(b), IMM7)) }
3848}
3849
3850#[inline]
3851#[target_feature(enable = "lsx")]
3852#[rustc_legacy_const_generics(2)]
3853#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3854pub fn lsx_vssrlrni_bu_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3855    static_assert_uimm_bits!(IMM4, 4);
3856    unsafe { transmute(__lsx_vssrlrni_bu_h(transmute(a), transmute(b), IMM4)) }
3857}
3858
3859#[inline]
3860#[target_feature(enable = "lsx")]
3861#[rustc_legacy_const_generics(2)]
3862#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3863pub fn lsx_vssrlrni_hu_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3864    static_assert_uimm_bits!(IMM5, 5);
3865    unsafe { transmute(__lsx_vssrlrni_hu_w(transmute(a), transmute(b), IMM5)) }
3866}
3867
3868#[inline]
3869#[target_feature(enable = "lsx")]
3870#[rustc_legacy_const_generics(2)]
3871#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3872pub fn lsx_vssrlrni_wu_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3873    static_assert_uimm_bits!(IMM6, 6);
3874    unsafe { transmute(__lsx_vssrlrni_wu_d(transmute(a), transmute(b), IMM6)) }
3875}
3876
3877#[inline]
3878#[target_feature(enable = "lsx")]
3879#[rustc_legacy_const_generics(2)]
3880#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3881pub fn lsx_vssrlrni_du_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3882    static_assert_uimm_bits!(IMM7, 7);
3883    unsafe { transmute(__lsx_vssrlrni_du_q(transmute(a), transmute(b), IMM7)) }
3884}
3885
3886#[inline]
3887#[target_feature(enable = "lsx")]
3888#[rustc_legacy_const_generics(2)]
3889#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3890pub fn lsx_vsrani_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3891    static_assert_uimm_bits!(IMM4, 4);
3892    unsafe { transmute(__lsx_vsrani_b_h(transmute(a), transmute(b), IMM4)) }
3893}
3894
3895#[inline]
3896#[target_feature(enable = "lsx")]
3897#[rustc_legacy_const_generics(2)]
3898#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3899pub fn lsx_vsrani_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3900    static_assert_uimm_bits!(IMM5, 5);
3901    unsafe { transmute(__lsx_vsrani_h_w(transmute(a), transmute(b), IMM5)) }
3902}
3903
3904#[inline]
3905#[target_feature(enable = "lsx")]
3906#[rustc_legacy_const_generics(2)]
3907#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3908pub fn lsx_vsrani_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3909    static_assert_uimm_bits!(IMM6, 6);
3910    unsafe { transmute(__lsx_vsrani_w_d(transmute(a), transmute(b), IMM6)) }
3911}
3912
3913#[inline]
3914#[target_feature(enable = "lsx")]
3915#[rustc_legacy_const_generics(2)]
3916#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3917pub fn lsx_vsrani_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3918    static_assert_uimm_bits!(IMM7, 7);
3919    unsafe { transmute(__lsx_vsrani_d_q(transmute(a), transmute(b), IMM7)) }
3920}
3921
3922#[inline]
3923#[target_feature(enable = "lsx")]
3924#[rustc_legacy_const_generics(2)]
3925#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3926pub fn lsx_vsrarni_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3927    static_assert_uimm_bits!(IMM4, 4);
3928    unsafe { transmute(__lsx_vsrarni_b_h(transmute(a), transmute(b), IMM4)) }
3929}
3930
3931#[inline]
3932#[target_feature(enable = "lsx")]
3933#[rustc_legacy_const_generics(2)]
3934#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3935pub fn lsx_vsrarni_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3936    static_assert_uimm_bits!(IMM5, 5);
3937    unsafe { transmute(__lsx_vsrarni_h_w(transmute(a), transmute(b), IMM5)) }
3938}
3939
3940#[inline]
3941#[target_feature(enable = "lsx")]
3942#[rustc_legacy_const_generics(2)]
3943#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3944pub fn lsx_vsrarni_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3945    static_assert_uimm_bits!(IMM6, 6);
3946    unsafe { transmute(__lsx_vsrarni_w_d(transmute(a), transmute(b), IMM6)) }
3947}
3948
3949#[inline]
3950#[target_feature(enable = "lsx")]
3951#[rustc_legacy_const_generics(2)]
3952#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3953pub fn lsx_vsrarni_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3954    static_assert_uimm_bits!(IMM7, 7);
3955    unsafe { transmute(__lsx_vsrarni_d_q(transmute(a), transmute(b), IMM7)) }
3956}
3957
3958#[inline]
3959#[target_feature(enable = "lsx")]
3960#[rustc_legacy_const_generics(2)]
3961#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3962pub fn lsx_vssrani_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3963    static_assert_uimm_bits!(IMM4, 4);
3964    unsafe { transmute(__lsx_vssrani_b_h(transmute(a), transmute(b), IMM4)) }
3965}
3966
3967#[inline]
3968#[target_feature(enable = "lsx")]
3969#[rustc_legacy_const_generics(2)]
3970#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3971pub fn lsx_vssrani_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
3972    static_assert_uimm_bits!(IMM5, 5);
3973    unsafe { transmute(__lsx_vssrani_h_w(transmute(a), transmute(b), IMM5)) }
3974}
3975
3976#[inline]
3977#[target_feature(enable = "lsx")]
3978#[rustc_legacy_const_generics(2)]
3979#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3980pub fn lsx_vssrani_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
3981    static_assert_uimm_bits!(IMM6, 6);
3982    unsafe { transmute(__lsx_vssrani_w_d(transmute(a), transmute(b), IMM6)) }
3983}
3984
3985#[inline]
3986#[target_feature(enable = "lsx")]
3987#[rustc_legacy_const_generics(2)]
3988#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3989pub fn lsx_vssrani_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
3990    static_assert_uimm_bits!(IMM7, 7);
3991    unsafe { transmute(__lsx_vssrani_d_q(transmute(a), transmute(b), IMM7)) }
3992}
3993
3994#[inline]
3995#[target_feature(enable = "lsx")]
3996#[rustc_legacy_const_generics(2)]
3997#[unstable(feature = "stdarch_loongarch", issue = "117427")]
3998pub fn lsx_vssrani_bu_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
3999    static_assert_uimm_bits!(IMM4, 4);
4000    unsafe { transmute(__lsx_vssrani_bu_h(transmute(a), transmute(b), IMM4)) }
4001}
4002
4003#[inline]
4004#[target_feature(enable = "lsx")]
4005#[rustc_legacy_const_generics(2)]
4006#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4007pub fn lsx_vssrani_hu_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
4008    static_assert_uimm_bits!(IMM5, 5);
4009    unsafe { transmute(__lsx_vssrani_hu_w(transmute(a), transmute(b), IMM5)) }
4010}
4011
4012#[inline]
4013#[target_feature(enable = "lsx")]
4014#[rustc_legacy_const_generics(2)]
4015#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4016pub fn lsx_vssrani_wu_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
4017    static_assert_uimm_bits!(IMM6, 6);
4018    unsafe { transmute(__lsx_vssrani_wu_d(transmute(a), transmute(b), IMM6)) }
4019}
4020
4021#[inline]
4022#[target_feature(enable = "lsx")]
4023#[rustc_legacy_const_generics(2)]
4024#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4025pub fn lsx_vssrani_du_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
4026    static_assert_uimm_bits!(IMM7, 7);
4027    unsafe { transmute(__lsx_vssrani_du_q(transmute(a), transmute(b), IMM7)) }
4028}
4029
4030#[inline]
4031#[target_feature(enable = "lsx")]
4032#[rustc_legacy_const_generics(2)]
4033#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4034pub fn lsx_vssrarni_b_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
4035    static_assert_uimm_bits!(IMM4, 4);
4036    unsafe { transmute(__lsx_vssrarni_b_h(transmute(a), transmute(b), IMM4)) }
4037}
4038
4039#[inline]
4040#[target_feature(enable = "lsx")]
4041#[rustc_legacy_const_generics(2)]
4042#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4043pub fn lsx_vssrarni_h_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
4044    static_assert_uimm_bits!(IMM5, 5);
4045    unsafe { transmute(__lsx_vssrarni_h_w(transmute(a), transmute(b), IMM5)) }
4046}
4047
4048#[inline]
4049#[target_feature(enable = "lsx")]
4050#[rustc_legacy_const_generics(2)]
4051#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4052pub fn lsx_vssrarni_w_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
4053    static_assert_uimm_bits!(IMM6, 6);
4054    unsafe { transmute(__lsx_vssrarni_w_d(transmute(a), transmute(b), IMM6)) }
4055}
4056
4057#[inline]
4058#[target_feature(enable = "lsx")]
4059#[rustc_legacy_const_generics(2)]
4060#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4061pub fn lsx_vssrarni_d_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
4062    static_assert_uimm_bits!(IMM7, 7);
4063    unsafe { transmute(__lsx_vssrarni_d_q(transmute(a), transmute(b), IMM7)) }
4064}
4065
4066#[inline]
4067#[target_feature(enable = "lsx")]
4068#[rustc_legacy_const_generics(2)]
4069#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4070pub fn lsx_vssrarni_bu_h<const IMM4: u32>(a: m128i, b: m128i) -> m128i {
4071    static_assert_uimm_bits!(IMM4, 4);
4072    unsafe { transmute(__lsx_vssrarni_bu_h(transmute(a), transmute(b), IMM4)) }
4073}
4074
4075#[inline]
4076#[target_feature(enable = "lsx")]
4077#[rustc_legacy_const_generics(2)]
4078#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4079pub fn lsx_vssrarni_hu_w<const IMM5: u32>(a: m128i, b: m128i) -> m128i {
4080    static_assert_uimm_bits!(IMM5, 5);
4081    unsafe { transmute(__lsx_vssrarni_hu_w(transmute(a), transmute(b), IMM5)) }
4082}
4083
4084#[inline]
4085#[target_feature(enable = "lsx")]
4086#[rustc_legacy_const_generics(2)]
4087#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4088pub fn lsx_vssrarni_wu_d<const IMM6: u32>(a: m128i, b: m128i) -> m128i {
4089    static_assert_uimm_bits!(IMM6, 6);
4090    unsafe { transmute(__lsx_vssrarni_wu_d(transmute(a), transmute(b), IMM6)) }
4091}
4092
4093#[inline]
4094#[target_feature(enable = "lsx")]
4095#[rustc_legacy_const_generics(2)]
4096#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4097pub fn lsx_vssrarni_du_q<const IMM7: u32>(a: m128i, b: m128i) -> m128i {
4098    static_assert_uimm_bits!(IMM7, 7);
4099    unsafe { transmute(__lsx_vssrarni_du_q(transmute(a), transmute(b), IMM7)) }
4100}
4101
4102#[inline]
4103#[target_feature(enable = "lsx")]
4104#[rustc_legacy_const_generics(2)]
4105#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4106pub fn lsx_vpermi_w<const IMM8: u32>(a: m128i, b: m128i) -> m128i {
4107    static_assert_uimm_bits!(IMM8, 8);
4108    unsafe { transmute(__lsx_vpermi_w(transmute(a), transmute(b), IMM8)) }
4109}
4110
4111#[inline]
4112#[target_feature(enable = "lsx")]
4113#[rustc_legacy_const_generics(1)]
4114#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4115pub unsafe fn lsx_vld<const IMM_S12: i32>(mem_addr: *const i8) -> m128i {
4116    static_assert_simm_bits!(IMM_S12, 12);
4117    transmute(__lsx_vld(mem_addr, IMM_S12))
4118}
4119
4120#[inline]
4121#[target_feature(enable = "lsx")]
4122#[rustc_legacy_const_generics(2)]
4123#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4124pub unsafe fn lsx_vst<const IMM_S12: i32>(a: m128i, mem_addr: *mut i8) {
4125    static_assert_simm_bits!(IMM_S12, 12);
4126    __lsx_vst(transmute(a), mem_addr, IMM_S12)
4127}
4128
4129#[inline]
4130#[target_feature(enable = "lsx")]
4131#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4132pub fn lsx_vssrlrn_b_h(a: m128i, b: m128i) -> m128i {
4133    unsafe { transmute(__lsx_vssrlrn_b_h(transmute(a), transmute(b))) }
4134}
4135
4136#[inline]
4137#[target_feature(enable = "lsx")]
4138#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4139pub fn lsx_vssrlrn_h_w(a: m128i, b: m128i) -> m128i {
4140    unsafe { transmute(__lsx_vssrlrn_h_w(transmute(a), transmute(b))) }
4141}
4142
4143#[inline]
4144#[target_feature(enable = "lsx")]
4145#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4146pub fn lsx_vssrlrn_w_d(a: m128i, b: m128i) -> m128i {
4147    unsafe { transmute(__lsx_vssrlrn_w_d(transmute(a), transmute(b))) }
4148}
4149
4150#[inline]
4151#[target_feature(enable = "lsx")]
4152#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4153pub fn lsx_vssrln_b_h(a: m128i, b: m128i) -> m128i {
4154    unsafe { transmute(__lsx_vssrln_b_h(transmute(a), transmute(b))) }
4155}
4156
4157#[inline]
4158#[target_feature(enable = "lsx")]
4159#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4160pub fn lsx_vssrln_h_w(a: m128i, b: m128i) -> m128i {
4161    unsafe { transmute(__lsx_vssrln_h_w(transmute(a), transmute(b))) }
4162}
4163
4164#[inline]
4165#[target_feature(enable = "lsx")]
4166#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4167pub fn lsx_vssrln_w_d(a: m128i, b: m128i) -> m128i {
4168    unsafe { transmute(__lsx_vssrln_w_d(transmute(a), transmute(b))) }
4169}
4170
4171#[inline]
4172#[target_feature(enable = "lsx")]
4173#[rustc_legacy_const_generics(0)]
4174#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4175pub fn lsx_vldi<const IMM_S13: i32>() -> m128i {
4176    static_assert_simm_bits!(IMM_S13, 13);
4177    unsafe { transmute(__lsx_vldi(IMM_S13)) }
4178}
4179
4180#[inline]
4181#[target_feature(enable = "lsx")]
4182#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4183pub fn lsx_vshuf_b(a: m128i, b: m128i, c: m128i) -> m128i {
4184    unsafe { transmute(__lsx_vshuf_b(transmute(a), transmute(b), transmute(c))) }
4185}
4186
4187#[inline]
4188#[target_feature(enable = "lsx")]
4189#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4190pub unsafe fn lsx_vldx(mem_addr: *const i8, b: i64) -> m128i {
4191    transmute(__lsx_vldx(mem_addr, transmute(b)))
4192}
4193
4194#[inline]
4195#[target_feature(enable = "lsx")]
4196#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4197pub unsafe fn lsx_vstx(a: m128i, mem_addr: *mut i8, b: i64) {
4198    __lsx_vstx(transmute(a), mem_addr, transmute(b))
4199}
4200
4201#[inline]
4202#[target_feature(enable = "lsx")]
4203#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4204pub fn lsx_vextl_qu_du(a: m128i) -> m128i {
4205    unsafe { transmute(__lsx_vextl_qu_du(transmute(a))) }
4206}
4207
4208#[inline]
4209#[target_feature(enable = "lsx")]
4210#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4211pub fn lsx_bnz_b(a: m128i) -> i32 {
4212    unsafe { transmute(__lsx_bnz_b(transmute(a))) }
4213}
4214
4215#[inline]
4216#[target_feature(enable = "lsx")]
4217#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4218pub fn lsx_bnz_d(a: m128i) -> i32 {
4219    unsafe { transmute(__lsx_bnz_d(transmute(a))) }
4220}
4221
4222#[inline]
4223#[target_feature(enable = "lsx")]
4224#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4225pub fn lsx_bnz_h(a: m128i) -> i32 {
4226    unsafe { transmute(__lsx_bnz_h(transmute(a))) }
4227}
4228
4229#[inline]
4230#[target_feature(enable = "lsx")]
4231#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4232pub fn lsx_bnz_v(a: m128i) -> i32 {
4233    unsafe { transmute(__lsx_bnz_v(transmute(a))) }
4234}
4235
4236#[inline]
4237#[target_feature(enable = "lsx")]
4238#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4239pub fn lsx_bnz_w(a: m128i) -> i32 {
4240    unsafe { transmute(__lsx_bnz_w(transmute(a))) }
4241}
4242
4243#[inline]
4244#[target_feature(enable = "lsx")]
4245#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4246pub fn lsx_bz_b(a: m128i) -> i32 {
4247    unsafe { transmute(__lsx_bz_b(transmute(a))) }
4248}
4249
4250#[inline]
4251#[target_feature(enable = "lsx")]
4252#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4253pub fn lsx_bz_d(a: m128i) -> i32 {
4254    unsafe { transmute(__lsx_bz_d(transmute(a))) }
4255}
4256
4257#[inline]
4258#[target_feature(enable = "lsx")]
4259#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4260pub fn lsx_bz_h(a: m128i) -> i32 {
4261    unsafe { transmute(__lsx_bz_h(transmute(a))) }
4262}
4263
4264#[inline]
4265#[target_feature(enable = "lsx")]
4266#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4267pub fn lsx_bz_v(a: m128i) -> i32 {
4268    unsafe { transmute(__lsx_bz_v(transmute(a))) }
4269}
4270
4271#[inline]
4272#[target_feature(enable = "lsx")]
4273#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4274pub fn lsx_bz_w(a: m128i) -> i32 {
4275    unsafe { transmute(__lsx_bz_w(transmute(a))) }
4276}
4277
4278#[inline]
4279#[target_feature(enable = "lsx")]
4280#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4281pub fn lsx_vfcmp_caf_d(a: m128d, b: m128d) -> m128i {
4282    unsafe { transmute(__lsx_vfcmp_caf_d(transmute(a), transmute(b))) }
4283}
4284
4285#[inline]
4286#[target_feature(enable = "lsx")]
4287#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4288pub fn lsx_vfcmp_caf_s(a: m128, b: m128) -> m128i {
4289    unsafe { transmute(__lsx_vfcmp_caf_s(transmute(a), transmute(b))) }
4290}
4291
4292#[inline]
4293#[target_feature(enable = "lsx")]
4294#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4295pub fn lsx_vfcmp_ceq_d(a: m128d, b: m128d) -> m128i {
4296    unsafe { transmute(__lsx_vfcmp_ceq_d(transmute(a), transmute(b))) }
4297}
4298
4299#[inline]
4300#[target_feature(enable = "lsx")]
4301#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4302pub fn lsx_vfcmp_ceq_s(a: m128, b: m128) -> m128i {
4303    unsafe { transmute(__lsx_vfcmp_ceq_s(transmute(a), transmute(b))) }
4304}
4305
4306#[inline]
4307#[target_feature(enable = "lsx")]
4308#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4309pub fn lsx_vfcmp_cle_d(a: m128d, b: m128d) -> m128i {
4310    unsafe { transmute(__lsx_vfcmp_cle_d(transmute(a), transmute(b))) }
4311}
4312
4313#[inline]
4314#[target_feature(enable = "lsx")]
4315#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4316pub fn lsx_vfcmp_cle_s(a: m128, b: m128) -> m128i {
4317    unsafe { transmute(__lsx_vfcmp_cle_s(transmute(a), transmute(b))) }
4318}
4319
4320#[inline]
4321#[target_feature(enable = "lsx")]
4322#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4323pub fn lsx_vfcmp_clt_d(a: m128d, b: m128d) -> m128i {
4324    unsafe { transmute(__lsx_vfcmp_clt_d(transmute(a), transmute(b))) }
4325}
4326
4327#[inline]
4328#[target_feature(enable = "lsx")]
4329#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4330pub fn lsx_vfcmp_clt_s(a: m128, b: m128) -> m128i {
4331    unsafe { transmute(__lsx_vfcmp_clt_s(transmute(a), transmute(b))) }
4332}
4333
4334#[inline]
4335#[target_feature(enable = "lsx")]
4336#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4337pub fn lsx_vfcmp_cne_d(a: m128d, b: m128d) -> m128i {
4338    unsafe { transmute(__lsx_vfcmp_cne_d(transmute(a), transmute(b))) }
4339}
4340
4341#[inline]
4342#[target_feature(enable = "lsx")]
4343#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4344pub fn lsx_vfcmp_cne_s(a: m128, b: m128) -> m128i {
4345    unsafe { transmute(__lsx_vfcmp_cne_s(transmute(a), transmute(b))) }
4346}
4347
4348#[inline]
4349#[target_feature(enable = "lsx")]
4350#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4351pub fn lsx_vfcmp_cor_d(a: m128d, b: m128d) -> m128i {
4352    unsafe { transmute(__lsx_vfcmp_cor_d(transmute(a), transmute(b))) }
4353}
4354
4355#[inline]
4356#[target_feature(enable = "lsx")]
4357#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4358pub fn lsx_vfcmp_cor_s(a: m128, b: m128) -> m128i {
4359    unsafe { transmute(__lsx_vfcmp_cor_s(transmute(a), transmute(b))) }
4360}
4361
4362#[inline]
4363#[target_feature(enable = "lsx")]
4364#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4365pub fn lsx_vfcmp_cueq_d(a: m128d, b: m128d) -> m128i {
4366    unsafe { transmute(__lsx_vfcmp_cueq_d(transmute(a), transmute(b))) }
4367}
4368
4369#[inline]
4370#[target_feature(enable = "lsx")]
4371#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4372pub fn lsx_vfcmp_cueq_s(a: m128, b: m128) -> m128i {
4373    unsafe { transmute(__lsx_vfcmp_cueq_s(transmute(a), transmute(b))) }
4374}
4375
4376#[inline]
4377#[target_feature(enable = "lsx")]
4378#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4379pub fn lsx_vfcmp_cule_d(a: m128d, b: m128d) -> m128i {
4380    unsafe { transmute(__lsx_vfcmp_cule_d(transmute(a), transmute(b))) }
4381}
4382
4383#[inline]
4384#[target_feature(enable = "lsx")]
4385#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4386pub fn lsx_vfcmp_cule_s(a: m128, b: m128) -> m128i {
4387    unsafe { transmute(__lsx_vfcmp_cule_s(transmute(a), transmute(b))) }
4388}
4389
4390#[inline]
4391#[target_feature(enable = "lsx")]
4392#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4393pub fn lsx_vfcmp_cult_d(a: m128d, b: m128d) -> m128i {
4394    unsafe { transmute(__lsx_vfcmp_cult_d(transmute(a), transmute(b))) }
4395}
4396
4397#[inline]
4398#[target_feature(enable = "lsx")]
4399#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4400pub fn lsx_vfcmp_cult_s(a: m128, b: m128) -> m128i {
4401    unsafe { transmute(__lsx_vfcmp_cult_s(transmute(a), transmute(b))) }
4402}
4403
4404#[inline]
4405#[target_feature(enable = "lsx")]
4406#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4407pub fn lsx_vfcmp_cun_d(a: m128d, b: m128d) -> m128i {
4408    unsafe { transmute(__lsx_vfcmp_cun_d(transmute(a), transmute(b))) }
4409}
4410
4411#[inline]
4412#[target_feature(enable = "lsx")]
4413#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4414pub fn lsx_vfcmp_cune_d(a: m128d, b: m128d) -> m128i {
4415    unsafe { transmute(__lsx_vfcmp_cune_d(transmute(a), transmute(b))) }
4416}
4417
4418#[inline]
4419#[target_feature(enable = "lsx")]
4420#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4421pub fn lsx_vfcmp_cune_s(a: m128, b: m128) -> m128i {
4422    unsafe { transmute(__lsx_vfcmp_cune_s(transmute(a), transmute(b))) }
4423}
4424
4425#[inline]
4426#[target_feature(enable = "lsx")]
4427#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4428pub fn lsx_vfcmp_cun_s(a: m128, b: m128) -> m128i {
4429    unsafe { transmute(__lsx_vfcmp_cun_s(transmute(a), transmute(b))) }
4430}
4431
4432#[inline]
4433#[target_feature(enable = "lsx")]
4434#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4435pub fn lsx_vfcmp_saf_d(a: m128d, b: m128d) -> m128i {
4436    unsafe { transmute(__lsx_vfcmp_saf_d(transmute(a), transmute(b))) }
4437}
4438
4439#[inline]
4440#[target_feature(enable = "lsx")]
4441#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4442pub fn lsx_vfcmp_saf_s(a: m128, b: m128) -> m128i {
4443    unsafe { transmute(__lsx_vfcmp_saf_s(transmute(a), transmute(b))) }
4444}
4445
4446#[inline]
4447#[target_feature(enable = "lsx")]
4448#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4449pub fn lsx_vfcmp_seq_d(a: m128d, b: m128d) -> m128i {
4450    unsafe { transmute(__lsx_vfcmp_seq_d(transmute(a), transmute(b))) }
4451}
4452
4453#[inline]
4454#[target_feature(enable = "lsx")]
4455#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4456pub fn lsx_vfcmp_seq_s(a: m128, b: m128) -> m128i {
4457    unsafe { transmute(__lsx_vfcmp_seq_s(transmute(a), transmute(b))) }
4458}
4459
4460#[inline]
4461#[target_feature(enable = "lsx")]
4462#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4463pub fn lsx_vfcmp_sle_d(a: m128d, b: m128d) -> m128i {
4464    unsafe { transmute(__lsx_vfcmp_sle_d(transmute(a), transmute(b))) }
4465}
4466
4467#[inline]
4468#[target_feature(enable = "lsx")]
4469#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4470pub fn lsx_vfcmp_sle_s(a: m128, b: m128) -> m128i {
4471    unsafe { transmute(__lsx_vfcmp_sle_s(transmute(a), transmute(b))) }
4472}
4473
4474#[inline]
4475#[target_feature(enable = "lsx")]
4476#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4477pub fn lsx_vfcmp_slt_d(a: m128d, b: m128d) -> m128i {
4478    unsafe { transmute(__lsx_vfcmp_slt_d(transmute(a), transmute(b))) }
4479}
4480
4481#[inline]
4482#[target_feature(enable = "lsx")]
4483#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4484pub fn lsx_vfcmp_slt_s(a: m128, b: m128) -> m128i {
4485    unsafe { transmute(__lsx_vfcmp_slt_s(transmute(a), transmute(b))) }
4486}
4487
4488#[inline]
4489#[target_feature(enable = "lsx")]
4490#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4491pub fn lsx_vfcmp_sne_d(a: m128d, b: m128d) -> m128i {
4492    unsafe { transmute(__lsx_vfcmp_sne_d(transmute(a), transmute(b))) }
4493}
4494
4495#[inline]
4496#[target_feature(enable = "lsx")]
4497#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4498pub fn lsx_vfcmp_sne_s(a: m128, b: m128) -> m128i {
4499    unsafe { transmute(__lsx_vfcmp_sne_s(transmute(a), transmute(b))) }
4500}
4501
4502#[inline]
4503#[target_feature(enable = "lsx")]
4504#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4505pub fn lsx_vfcmp_sor_d(a: m128d, b: m128d) -> m128i {
4506    unsafe { transmute(__lsx_vfcmp_sor_d(transmute(a), transmute(b))) }
4507}
4508
4509#[inline]
4510#[target_feature(enable = "lsx")]
4511#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4512pub fn lsx_vfcmp_sor_s(a: m128, b: m128) -> m128i {
4513    unsafe { transmute(__lsx_vfcmp_sor_s(transmute(a), transmute(b))) }
4514}
4515
4516#[inline]
4517#[target_feature(enable = "lsx")]
4518#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4519pub fn lsx_vfcmp_sueq_d(a: m128d, b: m128d) -> m128i {
4520    unsafe { transmute(__lsx_vfcmp_sueq_d(transmute(a), transmute(b))) }
4521}
4522
4523#[inline]
4524#[target_feature(enable = "lsx")]
4525#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4526pub fn lsx_vfcmp_sueq_s(a: m128, b: m128) -> m128i {
4527    unsafe { transmute(__lsx_vfcmp_sueq_s(transmute(a), transmute(b))) }
4528}
4529
4530#[inline]
4531#[target_feature(enable = "lsx")]
4532#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4533pub fn lsx_vfcmp_sule_d(a: m128d, b: m128d) -> m128i {
4534    unsafe { transmute(__lsx_vfcmp_sule_d(transmute(a), transmute(b))) }
4535}
4536
4537#[inline]
4538#[target_feature(enable = "lsx")]
4539#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4540pub fn lsx_vfcmp_sule_s(a: m128, b: m128) -> m128i {
4541    unsafe { transmute(__lsx_vfcmp_sule_s(transmute(a), transmute(b))) }
4542}
4543
4544#[inline]
4545#[target_feature(enable = "lsx")]
4546#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4547pub fn lsx_vfcmp_sult_d(a: m128d, b: m128d) -> m128i {
4548    unsafe { transmute(__lsx_vfcmp_sult_d(transmute(a), transmute(b))) }
4549}
4550
4551#[inline]
4552#[target_feature(enable = "lsx")]
4553#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4554pub fn lsx_vfcmp_sult_s(a: m128, b: m128) -> m128i {
4555    unsafe { transmute(__lsx_vfcmp_sult_s(transmute(a), transmute(b))) }
4556}
4557
4558#[inline]
4559#[target_feature(enable = "lsx")]
4560#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4561pub fn lsx_vfcmp_sun_d(a: m128d, b: m128d) -> m128i {
4562    unsafe { transmute(__lsx_vfcmp_sun_d(transmute(a), transmute(b))) }
4563}
4564
4565#[inline]
4566#[target_feature(enable = "lsx")]
4567#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4568pub fn lsx_vfcmp_sune_d(a: m128d, b: m128d) -> m128i {
4569    unsafe { transmute(__lsx_vfcmp_sune_d(transmute(a), transmute(b))) }
4570}
4571
4572#[inline]
4573#[target_feature(enable = "lsx")]
4574#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4575pub fn lsx_vfcmp_sune_s(a: m128, b: m128) -> m128i {
4576    unsafe { transmute(__lsx_vfcmp_sune_s(transmute(a), transmute(b))) }
4577}
4578
4579#[inline]
4580#[target_feature(enable = "lsx")]
4581#[unstable(feature = "stdarch_loongarch", issue = "117427")]
4582pub fn lsx_vfcmp_sun_s(a: m128, b: m128) -> m128i {
4583    unsafe { transmute(__lsx_vfcmp_sun_s(transmute(a), transmute(b))) }
4584}