1 /* LARCH Loongson ASX intrinsics include file. 2 3 Copyright (C) 2018-2024 Free Software Foundation, Inc. 4 5 This file is part of GCC. 6 7 GCC is free software; you can redistribute it and/or modify it 8 under the terms of the GNU General Public License as published 9 by the Free Software Foundation; either version 3, or (at your 10 option) any later version. 11 12 GCC is distributed in the hope that it will be useful, but WITHOUT 13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15 License for more details. 16 17 Under Section 7 of GPL version 3, you are granted additional 18 permissions described in the GCC Runtime Library Exception, version 19 3.1, as published by the Free Software Foundation. 20 21 You should have received a copy of the GNU General Public License and 22 a copy of the GCC Runtime Library Exception along with this program; 23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24 <http://www.gnu.org/licenses/>. */ 25 26 #ifndef _GCC_LOONGSON_ASXINTRIN_H 27 #define _GCC_LOONGSON_ASXINTRIN_H 1 28 29 #if defined(__loongarch_asx) 30 31 typedef signed char v32i8 __attribute__ ((vector_size(32), aligned(32))); 32 typedef signed char v32i8_b __attribute__ ((vector_size(32), aligned(1))); 33 typedef unsigned char v32u8 __attribute__ ((vector_size(32), aligned(32))); 34 typedef unsigned char v32u8_b __attribute__ ((vector_size(32), aligned(1))); 35 typedef short v16i16 __attribute__ ((vector_size(32), aligned(32))); 36 typedef short v16i16_h __attribute__ ((vector_size(32), aligned(2))); 37 typedef unsigned short v16u16 __attribute__ ((vector_size(32), aligned(32))); 38 typedef unsigned short v16u16_h __attribute__ ((vector_size(32), aligned(2))); 39 typedef int v8i32 __attribute__ ((vector_size(32), aligned(32))); 40 typedef int v8i32_w __attribute__ ((vector_size(32), aligned(4))); 41 typedef unsigned int v8u32 __attribute__ ((vector_size(32), aligned(32))); 42 typedef unsigned int v8u32_w __attribute__ ((vector_size(32), aligned(4))); 43 typedef long long v4i64 __attribute__ ((vector_size(32), aligned(32))); 44 typedef long long v4i64_d __attribute__ ((vector_size(32), aligned(8))); 45 typedef unsigned long long v4u64 __attribute__ ((vector_size(32), aligned(32))); 46 typedef unsigned long long v4u64_d __attribute__ ((vector_size(32), aligned(8))); 47 typedef float v8f32 __attribute__ ((vector_size(32), aligned(32))); 48 typedef float v8f32_w __attribute__ ((vector_size(32), aligned(4))); 49 typedef double v4f64 __attribute__ ((vector_size(32), aligned(32))); 50 typedef double v4f64_d __attribute__ ((vector_size(32), aligned(8))); 51 typedef float __m256 __attribute__ ((__vector_size__ (32), 52 __may_alias__)); 53 typedef long long __m256i __attribute__ ((__vector_size__ (32), 54 __may_alias__)); 55 typedef double __m256d __attribute__ ((__vector_size__ (32), 56 __may_alias__)); 57 58 /* Assembly instruction format: xd, xj, xk. */ 59 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 60 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 61 __m256i __lasx_xvsll_b (__m256i _1, __m256i _2) 62 { 63 return (__m256i)__builtin_lasx_xvsll_b ((v32i8)_1, (v32i8)_2); 64 } 65 66 /* Assembly instruction format: xd, xj, xk. */ 67 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 68 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 69 __m256i __lasx_xvsll_h (__m256i _1, __m256i _2) 70 { 71 return (__m256i)__builtin_lasx_xvsll_h ((v16i16)_1, (v16i16)_2); 72 } 73 74 /* Assembly instruction format: xd, xj, xk. */ 75 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 76 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 77 __m256i __lasx_xvsll_w (__m256i _1, __m256i _2) 78 { 79 return (__m256i)__builtin_lasx_xvsll_w ((v8i32)_1, (v8i32)_2); 80 } 81 82 /* Assembly instruction format: xd, xj, xk. */ 83 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 84 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 85 __m256i __lasx_xvsll_d (__m256i _1, __m256i _2) 86 { 87 return (__m256i)__builtin_lasx_xvsll_d ((v4i64)_1, (v4i64)_2); 88 } 89 90 /* Assembly instruction format: xd, xj, ui3. */ 91 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 92 #define __lasx_xvslli_b(/*__m256i*/ _1, /*ui3*/ _2) \ 93 ((__m256i)__builtin_lasx_xvslli_b ((v32i8)(_1), (_2))) 94 95 /* Assembly instruction format: xd, xj, ui4. */ 96 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 97 #define __lasx_xvslli_h(/*__m256i*/ _1, /*ui4*/ _2) \ 98 ((__m256i)__builtin_lasx_xvslli_h ((v16i16)(_1), (_2))) 99 100 /* Assembly instruction format: xd, xj, ui5. */ 101 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 102 #define __lasx_xvslli_w(/*__m256i*/ _1, /*ui5*/ _2) \ 103 ((__m256i)__builtin_lasx_xvslli_w ((v8i32)(_1), (_2))) 104 105 /* Assembly instruction format: xd, xj, ui6. */ 106 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 107 #define __lasx_xvslli_d(/*__m256i*/ _1, /*ui6*/ _2) \ 108 ((__m256i)__builtin_lasx_xvslli_d ((v4i64)(_1), (_2))) 109 110 /* Assembly instruction format: xd, xj, xk. */ 111 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 112 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 113 __m256i __lasx_xvsra_b (__m256i _1, __m256i _2) 114 { 115 return (__m256i)__builtin_lasx_xvsra_b ((v32i8)_1, (v32i8)_2); 116 } 117 118 /* Assembly instruction format: xd, xj, xk. */ 119 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 120 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 121 __m256i __lasx_xvsra_h (__m256i _1, __m256i _2) 122 { 123 return (__m256i)__builtin_lasx_xvsra_h ((v16i16)_1, (v16i16)_2); 124 } 125 126 /* Assembly instruction format: xd, xj, xk. */ 127 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 128 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 129 __m256i __lasx_xvsra_w (__m256i _1, __m256i _2) 130 { 131 return (__m256i)__builtin_lasx_xvsra_w ((v8i32)_1, (v8i32)_2); 132 } 133 134 /* Assembly instruction format: xd, xj, xk. */ 135 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 136 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 137 __m256i __lasx_xvsra_d (__m256i _1, __m256i _2) 138 { 139 return (__m256i)__builtin_lasx_xvsra_d ((v4i64)_1, (v4i64)_2); 140 } 141 142 /* Assembly instruction format: xd, xj, ui3. */ 143 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 144 #define __lasx_xvsrai_b(/*__m256i*/ _1, /*ui3*/ _2) \ 145 ((__m256i)__builtin_lasx_xvsrai_b ((v32i8)(_1), (_2))) 146 147 /* Assembly instruction format: xd, xj, ui4. */ 148 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 149 #define __lasx_xvsrai_h(/*__m256i*/ _1, /*ui4*/ _2) \ 150 ((__m256i)__builtin_lasx_xvsrai_h ((v16i16)(_1), (_2))) 151 152 /* Assembly instruction format: xd, xj, ui5. */ 153 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 154 #define __lasx_xvsrai_w(/*__m256i*/ _1, /*ui5*/ _2) \ 155 ((__m256i)__builtin_lasx_xvsrai_w ((v8i32)(_1), (_2))) 156 157 /* Assembly instruction format: xd, xj, ui6. */ 158 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 159 #define __lasx_xvsrai_d(/*__m256i*/ _1, /*ui6*/ _2) \ 160 ((__m256i)__builtin_lasx_xvsrai_d ((v4i64)(_1), (_2))) 161 162 /* Assembly instruction format: xd, xj, xk. */ 163 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 164 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 165 __m256i __lasx_xvsrar_b (__m256i _1, __m256i _2) 166 { 167 return (__m256i)__builtin_lasx_xvsrar_b ((v32i8)_1, (v32i8)_2); 168 } 169 170 /* Assembly instruction format: xd, xj, xk. */ 171 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 172 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 173 __m256i __lasx_xvsrar_h (__m256i _1, __m256i _2) 174 { 175 return (__m256i)__builtin_lasx_xvsrar_h ((v16i16)_1, (v16i16)_2); 176 } 177 178 /* Assembly instruction format: xd, xj, xk. */ 179 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 180 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 181 __m256i __lasx_xvsrar_w (__m256i _1, __m256i _2) 182 { 183 return (__m256i)__builtin_lasx_xvsrar_w ((v8i32)_1, (v8i32)_2); 184 } 185 186 /* Assembly instruction format: xd, xj, xk. */ 187 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 188 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 189 __m256i __lasx_xvsrar_d (__m256i _1, __m256i _2) 190 { 191 return (__m256i)__builtin_lasx_xvsrar_d ((v4i64)_1, (v4i64)_2); 192 } 193 194 /* Assembly instruction format: xd, xj, ui3. */ 195 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 196 #define __lasx_xvsrari_b(/*__m256i*/ _1, /*ui3*/ _2) \ 197 ((__m256i)__builtin_lasx_xvsrari_b ((v32i8)(_1), (_2))) 198 199 /* Assembly instruction format: xd, xj, ui4. */ 200 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 201 #define __lasx_xvsrari_h(/*__m256i*/ _1, /*ui4*/ _2) \ 202 ((__m256i)__builtin_lasx_xvsrari_h ((v16i16)(_1), (_2))) 203 204 /* Assembly instruction format: xd, xj, ui5. */ 205 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 206 #define __lasx_xvsrari_w(/*__m256i*/ _1, /*ui5*/ _2) \ 207 ((__m256i)__builtin_lasx_xvsrari_w ((v8i32)(_1), (_2))) 208 209 /* Assembly instruction format: xd, xj, ui6. */ 210 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 211 #define __lasx_xvsrari_d(/*__m256i*/ _1, /*ui6*/ _2) \ 212 ((__m256i)__builtin_lasx_xvsrari_d ((v4i64)(_1), (_2))) 213 214 /* Assembly instruction format: xd, xj, xk. */ 215 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 216 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 217 __m256i __lasx_xvsrl_b (__m256i _1, __m256i _2) 218 { 219 return (__m256i)__builtin_lasx_xvsrl_b ((v32i8)_1, (v32i8)_2); 220 } 221 222 /* Assembly instruction format: xd, xj, xk. */ 223 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 224 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 225 __m256i __lasx_xvsrl_h (__m256i _1, __m256i _2) 226 { 227 return (__m256i)__builtin_lasx_xvsrl_h ((v16i16)_1, (v16i16)_2); 228 } 229 230 /* Assembly instruction format: xd, xj, xk. */ 231 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 232 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 233 __m256i __lasx_xvsrl_w (__m256i _1, __m256i _2) 234 { 235 return (__m256i)__builtin_lasx_xvsrl_w ((v8i32)_1, (v8i32)_2); 236 } 237 238 /* Assembly instruction format: xd, xj, xk. */ 239 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 240 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 241 __m256i __lasx_xvsrl_d (__m256i _1, __m256i _2) 242 { 243 return (__m256i)__builtin_lasx_xvsrl_d ((v4i64)_1, (v4i64)_2); 244 } 245 246 /* Assembly instruction format: xd, xj, ui3. */ 247 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 248 #define __lasx_xvsrli_b(/*__m256i*/ _1, /*ui3*/ _2) \ 249 ((__m256i)__builtin_lasx_xvsrli_b ((v32i8)(_1), (_2))) 250 251 /* Assembly instruction format: xd, xj, ui4. */ 252 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 253 #define __lasx_xvsrli_h(/*__m256i*/ _1, /*ui4*/ _2) \ 254 ((__m256i)__builtin_lasx_xvsrli_h ((v16i16)(_1), (_2))) 255 256 /* Assembly instruction format: xd, xj, ui5. */ 257 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 258 #define __lasx_xvsrli_w(/*__m256i*/ _1, /*ui5*/ _2) \ 259 ((__m256i)__builtin_lasx_xvsrli_w ((v8i32)(_1), (_2))) 260 261 /* Assembly instruction format: xd, xj, ui6. */ 262 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 263 #define __lasx_xvsrli_d(/*__m256i*/ _1, /*ui6*/ _2) \ 264 ((__m256i)__builtin_lasx_xvsrli_d ((v4i64)(_1), (_2))) 265 266 /* Assembly instruction format: xd, xj, xk. */ 267 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 268 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 269 __m256i __lasx_xvsrlr_b (__m256i _1, __m256i _2) 270 { 271 return (__m256i)__builtin_lasx_xvsrlr_b ((v32i8)_1, (v32i8)_2); 272 } 273 274 /* Assembly instruction format: xd, xj, xk. */ 275 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 276 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 277 __m256i __lasx_xvsrlr_h (__m256i _1, __m256i _2) 278 { 279 return (__m256i)__builtin_lasx_xvsrlr_h ((v16i16)_1, (v16i16)_2); 280 } 281 282 /* Assembly instruction format: xd, xj, xk. */ 283 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 284 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 285 __m256i __lasx_xvsrlr_w (__m256i _1, __m256i _2) 286 { 287 return (__m256i)__builtin_lasx_xvsrlr_w ((v8i32)_1, (v8i32)_2); 288 } 289 290 /* Assembly instruction format: xd, xj, xk. */ 291 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 292 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 293 __m256i __lasx_xvsrlr_d (__m256i _1, __m256i _2) 294 { 295 return (__m256i)__builtin_lasx_xvsrlr_d ((v4i64)_1, (v4i64)_2); 296 } 297 298 /* Assembly instruction format: xd, xj, ui3. */ 299 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 300 #define __lasx_xvsrlri_b(/*__m256i*/ _1, /*ui3*/ _2) \ 301 ((__m256i)__builtin_lasx_xvsrlri_b ((v32i8)(_1), (_2))) 302 303 /* Assembly instruction format: xd, xj, ui4. */ 304 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 305 #define __lasx_xvsrlri_h(/*__m256i*/ _1, /*ui4*/ _2) \ 306 ((__m256i)__builtin_lasx_xvsrlri_h ((v16i16)(_1), (_2))) 307 308 /* Assembly instruction format: xd, xj, ui5. */ 309 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 310 #define __lasx_xvsrlri_w(/*__m256i*/ _1, /*ui5*/ _2) \ 311 ((__m256i)__builtin_lasx_xvsrlri_w ((v8i32)(_1), (_2))) 312 313 /* Assembly instruction format: xd, xj, ui6. */ 314 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 315 #define __lasx_xvsrlri_d(/*__m256i*/ _1, /*ui6*/ _2) \ 316 ((__m256i)__builtin_lasx_xvsrlri_d ((v4i64)(_1), (_2))) 317 318 /* Assembly instruction format: xd, xj, xk. */ 319 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 320 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 321 __m256i __lasx_xvbitclr_b (__m256i _1, __m256i _2) 322 { 323 return (__m256i)__builtin_lasx_xvbitclr_b ((v32u8)_1, (v32u8)_2); 324 } 325 326 /* Assembly instruction format: xd, xj, xk. */ 327 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 328 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 329 __m256i __lasx_xvbitclr_h (__m256i _1, __m256i _2) 330 { 331 return (__m256i)__builtin_lasx_xvbitclr_h ((v16u16)_1, (v16u16)_2); 332 } 333 334 /* Assembly instruction format: xd, xj, xk. */ 335 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 336 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 337 __m256i __lasx_xvbitclr_w (__m256i _1, __m256i _2) 338 { 339 return (__m256i)__builtin_lasx_xvbitclr_w ((v8u32)_1, (v8u32)_2); 340 } 341 342 /* Assembly instruction format: xd, xj, xk. */ 343 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 344 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 345 __m256i __lasx_xvbitclr_d (__m256i _1, __m256i _2) 346 { 347 return (__m256i)__builtin_lasx_xvbitclr_d ((v4u64)_1, (v4u64)_2); 348 } 349 350 /* Assembly instruction format: xd, xj, ui3. */ 351 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 352 #define __lasx_xvbitclri_b(/*__m256i*/ _1, /*ui3*/ _2) \ 353 ((__m256i)__builtin_lasx_xvbitclri_b ((v32u8)(_1), (_2))) 354 355 /* Assembly instruction format: xd, xj, ui4. */ 356 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */ 357 #define __lasx_xvbitclri_h(/*__m256i*/ _1, /*ui4*/ _2) \ 358 ((__m256i)__builtin_lasx_xvbitclri_h ((v16u16)(_1), (_2))) 359 360 /* Assembly instruction format: xd, xj, ui5. */ 361 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */ 362 #define __lasx_xvbitclri_w(/*__m256i*/ _1, /*ui5*/ _2) \ 363 ((__m256i)__builtin_lasx_xvbitclri_w ((v8u32)(_1), (_2))) 364 365 /* Assembly instruction format: xd, xj, ui6. */ 366 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */ 367 #define __lasx_xvbitclri_d(/*__m256i*/ _1, /*ui6*/ _2) \ 368 ((__m256i)__builtin_lasx_xvbitclri_d ((v4u64)(_1), (_2))) 369 370 /* Assembly instruction format: xd, xj, xk. */ 371 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 372 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 373 __m256i __lasx_xvbitset_b (__m256i _1, __m256i _2) 374 { 375 return (__m256i)__builtin_lasx_xvbitset_b ((v32u8)_1, (v32u8)_2); 376 } 377 378 /* Assembly instruction format: xd, xj, xk. */ 379 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 380 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 381 __m256i __lasx_xvbitset_h (__m256i _1, __m256i _2) 382 { 383 return (__m256i)__builtin_lasx_xvbitset_h ((v16u16)_1, (v16u16)_2); 384 } 385 386 /* Assembly instruction format: xd, xj, xk. */ 387 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 388 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 389 __m256i __lasx_xvbitset_w (__m256i _1, __m256i _2) 390 { 391 return (__m256i)__builtin_lasx_xvbitset_w ((v8u32)_1, (v8u32)_2); 392 } 393 394 /* Assembly instruction format: xd, xj, xk. */ 395 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 396 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 397 __m256i __lasx_xvbitset_d (__m256i _1, __m256i _2) 398 { 399 return (__m256i)__builtin_lasx_xvbitset_d ((v4u64)_1, (v4u64)_2); 400 } 401 402 /* Assembly instruction format: xd, xj, ui3. */ 403 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 404 #define __lasx_xvbitseti_b(/*__m256i*/ _1, /*ui3*/ _2) \ 405 ((__m256i)__builtin_lasx_xvbitseti_b ((v32u8)(_1), (_2))) 406 407 /* Assembly instruction format: xd, xj, ui4. */ 408 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */ 409 #define __lasx_xvbitseti_h(/*__m256i*/ _1, /*ui4*/ _2) \ 410 ((__m256i)__builtin_lasx_xvbitseti_h ((v16u16)(_1), (_2))) 411 412 /* Assembly instruction format: xd, xj, ui5. */ 413 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */ 414 #define __lasx_xvbitseti_w(/*__m256i*/ _1, /*ui5*/ _2) \ 415 ((__m256i)__builtin_lasx_xvbitseti_w ((v8u32)(_1), (_2))) 416 417 /* Assembly instruction format: xd, xj, ui6. */ 418 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */ 419 #define __lasx_xvbitseti_d(/*__m256i*/ _1, /*ui6*/ _2) \ 420 ((__m256i)__builtin_lasx_xvbitseti_d ((v4u64)(_1), (_2))) 421 422 /* Assembly instruction format: xd, xj, xk. */ 423 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 424 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 425 __m256i __lasx_xvbitrev_b (__m256i _1, __m256i _2) 426 { 427 return (__m256i)__builtin_lasx_xvbitrev_b ((v32u8)_1, (v32u8)_2); 428 } 429 430 /* Assembly instruction format: xd, xj, xk. */ 431 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 432 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 433 __m256i __lasx_xvbitrev_h (__m256i _1, __m256i _2) 434 { 435 return (__m256i)__builtin_lasx_xvbitrev_h ((v16u16)_1, (v16u16)_2); 436 } 437 438 /* Assembly instruction format: xd, xj, xk. */ 439 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 440 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 441 __m256i __lasx_xvbitrev_w (__m256i _1, __m256i _2) 442 { 443 return (__m256i)__builtin_lasx_xvbitrev_w ((v8u32)_1, (v8u32)_2); 444 } 445 446 /* Assembly instruction format: xd, xj, xk. */ 447 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 448 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 449 __m256i __lasx_xvbitrev_d (__m256i _1, __m256i _2) 450 { 451 return (__m256i)__builtin_lasx_xvbitrev_d ((v4u64)_1, (v4u64)_2); 452 } 453 454 /* Assembly instruction format: xd, xj, ui3. */ 455 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 456 #define __lasx_xvbitrevi_b(/*__m256i*/ _1, /*ui3*/ _2) \ 457 ((__m256i)__builtin_lasx_xvbitrevi_b ((v32u8)(_1), (_2))) 458 459 /* Assembly instruction format: xd, xj, ui4. */ 460 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */ 461 #define __lasx_xvbitrevi_h(/*__m256i*/ _1, /*ui4*/ _2) \ 462 ((__m256i)__builtin_lasx_xvbitrevi_h ((v16u16)(_1), (_2))) 463 464 /* Assembly instruction format: xd, xj, ui5. */ 465 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */ 466 #define __lasx_xvbitrevi_w(/*__m256i*/ _1, /*ui5*/ _2) \ 467 ((__m256i)__builtin_lasx_xvbitrevi_w ((v8u32)(_1), (_2))) 468 469 /* Assembly instruction format: xd, xj, ui6. */ 470 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */ 471 #define __lasx_xvbitrevi_d(/*__m256i*/ _1, /*ui6*/ _2) \ 472 ((__m256i)__builtin_lasx_xvbitrevi_d ((v4u64)(_1), (_2))) 473 474 /* Assembly instruction format: xd, xj, xk. */ 475 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 476 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 477 __m256i __lasx_xvadd_b (__m256i _1, __m256i _2) 478 { 479 return (__m256i)__builtin_lasx_xvadd_b ((v32i8)_1, (v32i8)_2); 480 } 481 482 /* Assembly instruction format: xd, xj, xk. */ 483 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 484 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 485 __m256i __lasx_xvadd_h (__m256i _1, __m256i _2) 486 { 487 return (__m256i)__builtin_lasx_xvadd_h ((v16i16)_1, (v16i16)_2); 488 } 489 490 /* Assembly instruction format: xd, xj, xk. */ 491 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 492 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 493 __m256i __lasx_xvadd_w (__m256i _1, __m256i _2) 494 { 495 return (__m256i)__builtin_lasx_xvadd_w ((v8i32)_1, (v8i32)_2); 496 } 497 498 /* Assembly instruction format: xd, xj, xk. */ 499 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 500 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 501 __m256i __lasx_xvadd_d (__m256i _1, __m256i _2) 502 { 503 return (__m256i)__builtin_lasx_xvadd_d ((v4i64)_1, (v4i64)_2); 504 } 505 506 /* Assembly instruction format: xd, xj, ui5. */ 507 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 508 #define __lasx_xvaddi_bu(/*__m256i*/ _1, /*ui5*/ _2) \ 509 ((__m256i)__builtin_lasx_xvaddi_bu ((v32i8)(_1), (_2))) 510 511 /* Assembly instruction format: xd, xj, ui5. */ 512 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 513 #define __lasx_xvaddi_hu(/*__m256i*/ _1, /*ui5*/ _2) \ 514 ((__m256i)__builtin_lasx_xvaddi_hu ((v16i16)(_1), (_2))) 515 516 /* Assembly instruction format: xd, xj, ui5. */ 517 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 518 #define __lasx_xvaddi_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 519 ((__m256i)__builtin_lasx_xvaddi_wu ((v8i32)(_1), (_2))) 520 521 /* Assembly instruction format: xd, xj, ui5. */ 522 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 523 #define __lasx_xvaddi_du(/*__m256i*/ _1, /*ui5*/ _2) \ 524 ((__m256i)__builtin_lasx_xvaddi_du ((v4i64)(_1), (_2))) 525 526 /* Assembly instruction format: xd, xj, xk. */ 527 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 528 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 529 __m256i __lasx_xvsub_b (__m256i _1, __m256i _2) 530 { 531 return (__m256i)__builtin_lasx_xvsub_b ((v32i8)_1, (v32i8)_2); 532 } 533 534 /* Assembly instruction format: xd, xj, xk. */ 535 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 536 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 537 __m256i __lasx_xvsub_h (__m256i _1, __m256i _2) 538 { 539 return (__m256i)__builtin_lasx_xvsub_h ((v16i16)_1, (v16i16)_2); 540 } 541 542 /* Assembly instruction format: xd, xj, xk. */ 543 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 544 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 545 __m256i __lasx_xvsub_w (__m256i _1, __m256i _2) 546 { 547 return (__m256i)__builtin_lasx_xvsub_w ((v8i32)_1, (v8i32)_2); 548 } 549 550 /* Assembly instruction format: xd, xj, xk. */ 551 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 552 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 553 __m256i __lasx_xvsub_d (__m256i _1, __m256i _2) 554 { 555 return (__m256i)__builtin_lasx_xvsub_d ((v4i64)_1, (v4i64)_2); 556 } 557 558 /* Assembly instruction format: xd, xj, ui5. */ 559 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 560 #define __lasx_xvsubi_bu(/*__m256i*/ _1, /*ui5*/ _2) \ 561 ((__m256i)__builtin_lasx_xvsubi_bu ((v32i8)(_1), (_2))) 562 563 /* Assembly instruction format: xd, xj, ui5. */ 564 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 565 #define __lasx_xvsubi_hu(/*__m256i*/ _1, /*ui5*/ _2) \ 566 ((__m256i)__builtin_lasx_xvsubi_hu ((v16i16)(_1), (_2))) 567 568 /* Assembly instruction format: xd, xj, ui5. */ 569 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 570 #define __lasx_xvsubi_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 571 ((__m256i)__builtin_lasx_xvsubi_wu ((v8i32)(_1), (_2))) 572 573 /* Assembly instruction format: xd, xj, ui5. */ 574 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 575 #define __lasx_xvsubi_du(/*__m256i*/ _1, /*ui5*/ _2) \ 576 ((__m256i)__builtin_lasx_xvsubi_du ((v4i64)(_1), (_2))) 577 578 /* Assembly instruction format: xd, xj, xk. */ 579 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 580 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 581 __m256i __lasx_xvmax_b (__m256i _1, __m256i _2) 582 { 583 return (__m256i)__builtin_lasx_xvmax_b ((v32i8)_1, (v32i8)_2); 584 } 585 586 /* Assembly instruction format: xd, xj, xk. */ 587 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 588 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 589 __m256i __lasx_xvmax_h (__m256i _1, __m256i _2) 590 { 591 return (__m256i)__builtin_lasx_xvmax_h ((v16i16)_1, (v16i16)_2); 592 } 593 594 /* Assembly instruction format: xd, xj, xk. */ 595 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 596 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 597 __m256i __lasx_xvmax_w (__m256i _1, __m256i _2) 598 { 599 return (__m256i)__builtin_lasx_xvmax_w ((v8i32)_1, (v8i32)_2); 600 } 601 602 /* Assembly instruction format: xd, xj, xk. */ 603 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 604 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 605 __m256i __lasx_xvmax_d (__m256i _1, __m256i _2) 606 { 607 return (__m256i)__builtin_lasx_xvmax_d ((v4i64)_1, (v4i64)_2); 608 } 609 610 /* Assembly instruction format: xd, xj, si5. */ 611 /* Data types in instruction templates: V32QI, V32QI, QI. */ 612 #define __lasx_xvmaxi_b(/*__m256i*/ _1, /*si5*/ _2) \ 613 ((__m256i)__builtin_lasx_xvmaxi_b ((v32i8)(_1), (_2))) 614 615 /* Assembly instruction format: xd, xj, si5. */ 616 /* Data types in instruction templates: V16HI, V16HI, QI. */ 617 #define __lasx_xvmaxi_h(/*__m256i*/ _1, /*si5*/ _2) \ 618 ((__m256i)__builtin_lasx_xvmaxi_h ((v16i16)(_1), (_2))) 619 620 /* Assembly instruction format: xd, xj, si5. */ 621 /* Data types in instruction templates: V8SI, V8SI, QI. */ 622 #define __lasx_xvmaxi_w(/*__m256i*/ _1, /*si5*/ _2) \ 623 ((__m256i)__builtin_lasx_xvmaxi_w ((v8i32)(_1), (_2))) 624 625 /* Assembly instruction format: xd, xj, si5. */ 626 /* Data types in instruction templates: V4DI, V4DI, QI. */ 627 #define __lasx_xvmaxi_d(/*__m256i*/ _1, /*si5*/ _2) \ 628 ((__m256i)__builtin_lasx_xvmaxi_d ((v4i64)(_1), (_2))) 629 630 /* Assembly instruction format: xd, xj, xk. */ 631 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 632 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 633 __m256i __lasx_xvmax_bu (__m256i _1, __m256i _2) 634 { 635 return (__m256i)__builtin_lasx_xvmax_bu ((v32u8)_1, (v32u8)_2); 636 } 637 638 /* Assembly instruction format: xd, xj, xk. */ 639 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 640 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 641 __m256i __lasx_xvmax_hu (__m256i _1, __m256i _2) 642 { 643 return (__m256i)__builtin_lasx_xvmax_hu ((v16u16)_1, (v16u16)_2); 644 } 645 646 /* Assembly instruction format: xd, xj, xk. */ 647 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 648 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 649 __m256i __lasx_xvmax_wu (__m256i _1, __m256i _2) 650 { 651 return (__m256i)__builtin_lasx_xvmax_wu ((v8u32)_1, (v8u32)_2); 652 } 653 654 /* Assembly instruction format: xd, xj, xk. */ 655 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 656 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 657 __m256i __lasx_xvmax_du (__m256i _1, __m256i _2) 658 { 659 return (__m256i)__builtin_lasx_xvmax_du ((v4u64)_1, (v4u64)_2); 660 } 661 662 /* Assembly instruction format: xd, xj, ui5. */ 663 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 664 #define __lasx_xvmaxi_bu(/*__m256i*/ _1, /*ui5*/ _2) \ 665 ((__m256i)__builtin_lasx_xvmaxi_bu ((v32u8)(_1), (_2))) 666 667 /* Assembly instruction format: xd, xj, ui5. */ 668 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */ 669 #define __lasx_xvmaxi_hu(/*__m256i*/ _1, /*ui5*/ _2) \ 670 ((__m256i)__builtin_lasx_xvmaxi_hu ((v16u16)(_1), (_2))) 671 672 /* Assembly instruction format: xd, xj, ui5. */ 673 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */ 674 #define __lasx_xvmaxi_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 675 ((__m256i)__builtin_lasx_xvmaxi_wu ((v8u32)(_1), (_2))) 676 677 /* Assembly instruction format: xd, xj, ui5. */ 678 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */ 679 #define __lasx_xvmaxi_du(/*__m256i*/ _1, /*ui5*/ _2) \ 680 ((__m256i)__builtin_lasx_xvmaxi_du ((v4u64)(_1), (_2))) 681 682 /* Assembly instruction format: xd, xj, xk. */ 683 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 684 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 685 __m256i __lasx_xvmin_b (__m256i _1, __m256i _2) 686 { 687 return (__m256i)__builtin_lasx_xvmin_b ((v32i8)_1, (v32i8)_2); 688 } 689 690 /* Assembly instruction format: xd, xj, xk. */ 691 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 692 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 693 __m256i __lasx_xvmin_h (__m256i _1, __m256i _2) 694 { 695 return (__m256i)__builtin_lasx_xvmin_h ((v16i16)_1, (v16i16)_2); 696 } 697 698 /* Assembly instruction format: xd, xj, xk. */ 699 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 700 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 701 __m256i __lasx_xvmin_w (__m256i _1, __m256i _2) 702 { 703 return (__m256i)__builtin_lasx_xvmin_w ((v8i32)_1, (v8i32)_2); 704 } 705 706 /* Assembly instruction format: xd, xj, xk. */ 707 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 708 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 709 __m256i __lasx_xvmin_d (__m256i _1, __m256i _2) 710 { 711 return (__m256i)__builtin_lasx_xvmin_d ((v4i64)_1, (v4i64)_2); 712 } 713 714 /* Assembly instruction format: xd, xj, si5. */ 715 /* Data types in instruction templates: V32QI, V32QI, QI. */ 716 #define __lasx_xvmini_b(/*__m256i*/ _1, /*si5*/ _2) \ 717 ((__m256i)__builtin_lasx_xvmini_b ((v32i8)(_1), (_2))) 718 719 /* Assembly instruction format: xd, xj, si5. */ 720 /* Data types in instruction templates: V16HI, V16HI, QI. */ 721 #define __lasx_xvmini_h(/*__m256i*/ _1, /*si5*/ _2) \ 722 ((__m256i)__builtin_lasx_xvmini_h ((v16i16)(_1), (_2))) 723 724 /* Assembly instruction format: xd, xj, si5. */ 725 /* Data types in instruction templates: V8SI, V8SI, QI. */ 726 #define __lasx_xvmini_w(/*__m256i*/ _1, /*si5*/ _2) \ 727 ((__m256i)__builtin_lasx_xvmini_w ((v8i32)(_1), (_2))) 728 729 /* Assembly instruction format: xd, xj, si5. */ 730 /* Data types in instruction templates: V4DI, V4DI, QI. */ 731 #define __lasx_xvmini_d(/*__m256i*/ _1, /*si5*/ _2) \ 732 ((__m256i)__builtin_lasx_xvmini_d ((v4i64)(_1), (_2))) 733 734 /* Assembly instruction format: xd, xj, xk. */ 735 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 736 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 737 __m256i __lasx_xvmin_bu (__m256i _1, __m256i _2) 738 { 739 return (__m256i)__builtin_lasx_xvmin_bu ((v32u8)_1, (v32u8)_2); 740 } 741 742 /* Assembly instruction format: xd, xj, xk. */ 743 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 744 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 745 __m256i __lasx_xvmin_hu (__m256i _1, __m256i _2) 746 { 747 return (__m256i)__builtin_lasx_xvmin_hu ((v16u16)_1, (v16u16)_2); 748 } 749 750 /* Assembly instruction format: xd, xj, xk. */ 751 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 752 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 753 __m256i __lasx_xvmin_wu (__m256i _1, __m256i _2) 754 { 755 return (__m256i)__builtin_lasx_xvmin_wu ((v8u32)_1, (v8u32)_2); 756 } 757 758 /* Assembly instruction format: xd, xj, xk. */ 759 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 760 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 761 __m256i __lasx_xvmin_du (__m256i _1, __m256i _2) 762 { 763 return (__m256i)__builtin_lasx_xvmin_du ((v4u64)_1, (v4u64)_2); 764 } 765 766 /* Assembly instruction format: xd, xj, ui5. */ 767 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 768 #define __lasx_xvmini_bu(/*__m256i*/ _1, /*ui5*/ _2) \ 769 ((__m256i)__builtin_lasx_xvmini_bu ((v32u8)(_1), (_2))) 770 771 /* Assembly instruction format: xd, xj, ui5. */ 772 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */ 773 #define __lasx_xvmini_hu(/*__m256i*/ _1, /*ui5*/ _2) \ 774 ((__m256i)__builtin_lasx_xvmini_hu ((v16u16)(_1), (_2))) 775 776 /* Assembly instruction format: xd, xj, ui5. */ 777 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */ 778 #define __lasx_xvmini_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 779 ((__m256i)__builtin_lasx_xvmini_wu ((v8u32)(_1), (_2))) 780 781 /* Assembly instruction format: xd, xj, ui5. */ 782 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */ 783 #define __lasx_xvmini_du(/*__m256i*/ _1, /*ui5*/ _2) \ 784 ((__m256i)__builtin_lasx_xvmini_du ((v4u64)(_1), (_2))) 785 786 /* Assembly instruction format: xd, xj, xk. */ 787 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 788 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 789 __m256i __lasx_xvseq_b (__m256i _1, __m256i _2) 790 { 791 return (__m256i)__builtin_lasx_xvseq_b ((v32i8)_1, (v32i8)_2); 792 } 793 794 /* Assembly instruction format: xd, xj, xk. */ 795 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 796 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 797 __m256i __lasx_xvseq_h (__m256i _1, __m256i _2) 798 { 799 return (__m256i)__builtin_lasx_xvseq_h ((v16i16)_1, (v16i16)_2); 800 } 801 802 /* Assembly instruction format: xd, xj, xk. */ 803 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 804 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 805 __m256i __lasx_xvseq_w (__m256i _1, __m256i _2) 806 { 807 return (__m256i)__builtin_lasx_xvseq_w ((v8i32)_1, (v8i32)_2); 808 } 809 810 /* Assembly instruction format: xd, xj, xk. */ 811 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 812 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 813 __m256i __lasx_xvseq_d (__m256i _1, __m256i _2) 814 { 815 return (__m256i)__builtin_lasx_xvseq_d ((v4i64)_1, (v4i64)_2); 816 } 817 818 /* Assembly instruction format: xd, xj, si5. */ 819 /* Data types in instruction templates: V32QI, V32QI, QI. */ 820 #define __lasx_xvseqi_b(/*__m256i*/ _1, /*si5*/ _2) \ 821 ((__m256i)__builtin_lasx_xvseqi_b ((v32i8)(_1), (_2))) 822 823 /* Assembly instruction format: xd, xj, si5. */ 824 /* Data types in instruction templates: V16HI, V16HI, QI. */ 825 #define __lasx_xvseqi_h(/*__m256i*/ _1, /*si5*/ _2) \ 826 ((__m256i)__builtin_lasx_xvseqi_h ((v16i16)(_1), (_2))) 827 828 /* Assembly instruction format: xd, xj, si5. */ 829 /* Data types in instruction templates: V8SI, V8SI, QI. */ 830 #define __lasx_xvseqi_w(/*__m256i*/ _1, /*si5*/ _2) \ 831 ((__m256i)__builtin_lasx_xvseqi_w ((v8i32)(_1), (_2))) 832 833 /* Assembly instruction format: xd, xj, si5. */ 834 /* Data types in instruction templates: V4DI, V4DI, QI. */ 835 #define __lasx_xvseqi_d(/*__m256i*/ _1, /*si5*/ _2) \ 836 ((__m256i)__builtin_lasx_xvseqi_d ((v4i64)(_1), (_2))) 837 838 /* Assembly instruction format: xd, xj, xk. */ 839 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 840 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 841 __m256i __lasx_xvslt_b (__m256i _1, __m256i _2) 842 { 843 return (__m256i)__builtin_lasx_xvslt_b ((v32i8)_1, (v32i8)_2); 844 } 845 846 /* Assembly instruction format: xd, xj, xk. */ 847 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 848 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 849 __m256i __lasx_xvslt_h (__m256i _1, __m256i _2) 850 { 851 return (__m256i)__builtin_lasx_xvslt_h ((v16i16)_1, (v16i16)_2); 852 } 853 854 /* Assembly instruction format: xd, xj, xk. */ 855 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 856 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 857 __m256i __lasx_xvslt_w (__m256i _1, __m256i _2) 858 { 859 return (__m256i)__builtin_lasx_xvslt_w ((v8i32)_1, (v8i32)_2); 860 } 861 862 /* Assembly instruction format: xd, xj, xk. */ 863 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 864 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 865 __m256i __lasx_xvslt_d (__m256i _1, __m256i _2) 866 { 867 return (__m256i)__builtin_lasx_xvslt_d ((v4i64)_1, (v4i64)_2); 868 } 869 870 /* Assembly instruction format: xd, xj, si5. */ 871 /* Data types in instruction templates: V32QI, V32QI, QI. */ 872 #define __lasx_xvslti_b(/*__m256i*/ _1, /*si5*/ _2) \ 873 ((__m256i)__builtin_lasx_xvslti_b ((v32i8)(_1), (_2))) 874 875 /* Assembly instruction format: xd, xj, si5. */ 876 /* Data types in instruction templates: V16HI, V16HI, QI. */ 877 #define __lasx_xvslti_h(/*__m256i*/ _1, /*si5*/ _2) \ 878 ((__m256i)__builtin_lasx_xvslti_h ((v16i16)(_1), (_2))) 879 880 /* Assembly instruction format: xd, xj, si5. */ 881 /* Data types in instruction templates: V8SI, V8SI, QI. */ 882 #define __lasx_xvslti_w(/*__m256i*/ _1, /*si5*/ _2) \ 883 ((__m256i)__builtin_lasx_xvslti_w ((v8i32)(_1), (_2))) 884 885 /* Assembly instruction format: xd, xj, si5. */ 886 /* Data types in instruction templates: V4DI, V4DI, QI. */ 887 #define __lasx_xvslti_d(/*__m256i*/ _1, /*si5*/ _2) \ 888 ((__m256i)__builtin_lasx_xvslti_d ((v4i64)(_1), (_2))) 889 890 /* Assembly instruction format: xd, xj, xk. */ 891 /* Data types in instruction templates: V32QI, UV32QI, UV32QI. */ 892 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 893 __m256i __lasx_xvslt_bu (__m256i _1, __m256i _2) 894 { 895 return (__m256i)__builtin_lasx_xvslt_bu ((v32u8)_1, (v32u8)_2); 896 } 897 898 /* Assembly instruction format: xd, xj, xk. */ 899 /* Data types in instruction templates: V16HI, UV16HI, UV16HI. */ 900 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 901 __m256i __lasx_xvslt_hu (__m256i _1, __m256i _2) 902 { 903 return (__m256i)__builtin_lasx_xvslt_hu ((v16u16)_1, (v16u16)_2); 904 } 905 906 /* Assembly instruction format: xd, xj, xk. */ 907 /* Data types in instruction templates: V8SI, UV8SI, UV8SI. */ 908 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 909 __m256i __lasx_xvslt_wu (__m256i _1, __m256i _2) 910 { 911 return (__m256i)__builtin_lasx_xvslt_wu ((v8u32)_1, (v8u32)_2); 912 } 913 914 /* Assembly instruction format: xd, xj, xk. */ 915 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 916 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 917 __m256i __lasx_xvslt_du (__m256i _1, __m256i _2) 918 { 919 return (__m256i)__builtin_lasx_xvslt_du ((v4u64)_1, (v4u64)_2); 920 } 921 922 /* Assembly instruction format: xd, xj, ui5. */ 923 /* Data types in instruction templates: V32QI, UV32QI, UQI. */ 924 #define __lasx_xvslti_bu(/*__m256i*/ _1, /*ui5*/ _2) \ 925 ((__m256i)__builtin_lasx_xvslti_bu ((v32u8)(_1), (_2))) 926 927 /* Assembly instruction format: xd, xj, ui5. */ 928 /* Data types in instruction templates: V16HI, UV16HI, UQI. */ 929 #define __lasx_xvslti_hu(/*__m256i*/ _1, /*ui5*/ _2) \ 930 ((__m256i)__builtin_lasx_xvslti_hu ((v16u16)(_1), (_2))) 931 932 /* Assembly instruction format: xd, xj, ui5. */ 933 /* Data types in instruction templates: V8SI, UV8SI, UQI. */ 934 #define __lasx_xvslti_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 935 ((__m256i)__builtin_lasx_xvslti_wu ((v8u32)(_1), (_2))) 936 937 /* Assembly instruction format: xd, xj, ui5. */ 938 /* Data types in instruction templates: V4DI, UV4DI, UQI. */ 939 #define __lasx_xvslti_du(/*__m256i*/ _1, /*ui5*/ _2) \ 940 ((__m256i)__builtin_lasx_xvslti_du ((v4u64)(_1), (_2))) 941 942 /* Assembly instruction format: xd, xj, xk. */ 943 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 944 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 945 __m256i __lasx_xvsle_b (__m256i _1, __m256i _2) 946 { 947 return (__m256i)__builtin_lasx_xvsle_b ((v32i8)_1, (v32i8)_2); 948 } 949 950 /* Assembly instruction format: xd, xj, xk. */ 951 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 952 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 953 __m256i __lasx_xvsle_h (__m256i _1, __m256i _2) 954 { 955 return (__m256i)__builtin_lasx_xvsle_h ((v16i16)_1, (v16i16)_2); 956 } 957 958 /* Assembly instruction format: xd, xj, xk. */ 959 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 960 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 961 __m256i __lasx_xvsle_w (__m256i _1, __m256i _2) 962 { 963 return (__m256i)__builtin_lasx_xvsle_w ((v8i32)_1, (v8i32)_2); 964 } 965 966 /* Assembly instruction format: xd, xj, xk. */ 967 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 968 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 969 __m256i __lasx_xvsle_d (__m256i _1, __m256i _2) 970 { 971 return (__m256i)__builtin_lasx_xvsle_d ((v4i64)_1, (v4i64)_2); 972 } 973 974 /* Assembly instruction format: xd, xj, si5. */ 975 /* Data types in instruction templates: V32QI, V32QI, QI. */ 976 #define __lasx_xvslei_b(/*__m256i*/ _1, /*si5*/ _2) \ 977 ((__m256i)__builtin_lasx_xvslei_b ((v32i8)(_1), (_2))) 978 979 /* Assembly instruction format: xd, xj, si5. */ 980 /* Data types in instruction templates: V16HI, V16HI, QI. */ 981 #define __lasx_xvslei_h(/*__m256i*/ _1, /*si5*/ _2) \ 982 ((__m256i)__builtin_lasx_xvslei_h ((v16i16)(_1), (_2))) 983 984 /* Assembly instruction format: xd, xj, si5. */ 985 /* Data types in instruction templates: V8SI, V8SI, QI. */ 986 #define __lasx_xvslei_w(/*__m256i*/ _1, /*si5*/ _2) \ 987 ((__m256i)__builtin_lasx_xvslei_w ((v8i32)(_1), (_2))) 988 989 /* Assembly instruction format: xd, xj, si5. */ 990 /* Data types in instruction templates: V4DI, V4DI, QI. */ 991 #define __lasx_xvslei_d(/*__m256i*/ _1, /*si5*/ _2) \ 992 ((__m256i)__builtin_lasx_xvslei_d ((v4i64)(_1), (_2))) 993 994 /* Assembly instruction format: xd, xj, xk. */ 995 /* Data types in instruction templates: V32QI, UV32QI, UV32QI. */ 996 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 997 __m256i __lasx_xvsle_bu (__m256i _1, __m256i _2) 998 { 999 return (__m256i)__builtin_lasx_xvsle_bu ((v32u8)_1, (v32u8)_2); 1000 } 1001 1002 /* Assembly instruction format: xd, xj, xk. */ 1003 /* Data types in instruction templates: V16HI, UV16HI, UV16HI. */ 1004 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1005 __m256i __lasx_xvsle_hu (__m256i _1, __m256i _2) 1006 { 1007 return (__m256i)__builtin_lasx_xvsle_hu ((v16u16)_1, (v16u16)_2); 1008 } 1009 1010 /* Assembly instruction format: xd, xj, xk. */ 1011 /* Data types in instruction templates: V8SI, UV8SI, UV8SI. */ 1012 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1013 __m256i __lasx_xvsle_wu (__m256i _1, __m256i _2) 1014 { 1015 return (__m256i)__builtin_lasx_xvsle_wu ((v8u32)_1, (v8u32)_2); 1016 } 1017 1018 /* Assembly instruction format: xd, xj, xk. */ 1019 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 1020 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1021 __m256i __lasx_xvsle_du (__m256i _1, __m256i _2) 1022 { 1023 return (__m256i)__builtin_lasx_xvsle_du ((v4u64)_1, (v4u64)_2); 1024 } 1025 1026 /* Assembly instruction format: xd, xj, ui5. */ 1027 /* Data types in instruction templates: V32QI, UV32QI, UQI. */ 1028 #define __lasx_xvslei_bu(/*__m256i*/ _1, /*ui5*/ _2) \ 1029 ((__m256i)__builtin_lasx_xvslei_bu ((v32u8)(_1), (_2))) 1030 1031 /* Assembly instruction format: xd, xj, ui5. */ 1032 /* Data types in instruction templates: V16HI, UV16HI, UQI. */ 1033 #define __lasx_xvslei_hu(/*__m256i*/ _1, /*ui5*/ _2) \ 1034 ((__m256i)__builtin_lasx_xvslei_hu ((v16u16)(_1), (_2))) 1035 1036 /* Assembly instruction format: xd, xj, ui5. */ 1037 /* Data types in instruction templates: V8SI, UV8SI, UQI. */ 1038 #define __lasx_xvslei_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 1039 ((__m256i)__builtin_lasx_xvslei_wu ((v8u32)(_1), (_2))) 1040 1041 /* Assembly instruction format: xd, xj, ui5. */ 1042 /* Data types in instruction templates: V4DI, UV4DI, UQI. */ 1043 #define __lasx_xvslei_du(/*__m256i*/ _1, /*ui5*/ _2) \ 1044 ((__m256i)__builtin_lasx_xvslei_du ((v4u64)(_1), (_2))) 1045 1046 /* Assembly instruction format: xd, xj, ui3. */ 1047 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 1048 #define __lasx_xvsat_b(/*__m256i*/ _1, /*ui3*/ _2) \ 1049 ((__m256i)__builtin_lasx_xvsat_b ((v32i8)(_1), (_2))) 1050 1051 /* Assembly instruction format: xd, xj, ui4. */ 1052 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 1053 #define __lasx_xvsat_h(/*__m256i*/ _1, /*ui4*/ _2) \ 1054 ((__m256i)__builtin_lasx_xvsat_h ((v16i16)(_1), (_2))) 1055 1056 /* Assembly instruction format: xd, xj, ui5. */ 1057 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 1058 #define __lasx_xvsat_w(/*__m256i*/ _1, /*ui5*/ _2) \ 1059 ((__m256i)__builtin_lasx_xvsat_w ((v8i32)(_1), (_2))) 1060 1061 /* Assembly instruction format: xd, xj, ui6. */ 1062 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 1063 #define __lasx_xvsat_d(/*__m256i*/ _1, /*ui6*/ _2) \ 1064 ((__m256i)__builtin_lasx_xvsat_d ((v4i64)(_1), (_2))) 1065 1066 /* Assembly instruction format: xd, xj, ui3. */ 1067 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 1068 #define __lasx_xvsat_bu(/*__m256i*/ _1, /*ui3*/ _2) \ 1069 ((__m256i)__builtin_lasx_xvsat_bu ((v32u8)(_1), (_2))) 1070 1071 /* Assembly instruction format: xd, xj, ui4. */ 1072 /* Data types in instruction templates: UV16HI, UV16HI, UQI. */ 1073 #define __lasx_xvsat_hu(/*__m256i*/ _1, /*ui4*/ _2) \ 1074 ((__m256i)__builtin_lasx_xvsat_hu ((v16u16)(_1), (_2))) 1075 1076 /* Assembly instruction format: xd, xj, ui5. */ 1077 /* Data types in instruction templates: UV8SI, UV8SI, UQI. */ 1078 #define __lasx_xvsat_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 1079 ((__m256i)__builtin_lasx_xvsat_wu ((v8u32)(_1), (_2))) 1080 1081 /* Assembly instruction format: xd, xj, ui6. */ 1082 /* Data types in instruction templates: UV4DI, UV4DI, UQI. */ 1083 #define __lasx_xvsat_du(/*__m256i*/ _1, /*ui6*/ _2) \ 1084 ((__m256i)__builtin_lasx_xvsat_du ((v4u64)(_1), (_2))) 1085 1086 /* Assembly instruction format: xd, xj, xk. */ 1087 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1088 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1089 __m256i __lasx_xvadda_b (__m256i _1, __m256i _2) 1090 { 1091 return (__m256i)__builtin_lasx_xvadda_b ((v32i8)_1, (v32i8)_2); 1092 } 1093 1094 /* Assembly instruction format: xd, xj, xk. */ 1095 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1096 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1097 __m256i __lasx_xvadda_h (__m256i _1, __m256i _2) 1098 { 1099 return (__m256i)__builtin_lasx_xvadda_h ((v16i16)_1, (v16i16)_2); 1100 } 1101 1102 /* Assembly instruction format: xd, xj, xk. */ 1103 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1104 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1105 __m256i __lasx_xvadda_w (__m256i _1, __m256i _2) 1106 { 1107 return (__m256i)__builtin_lasx_xvadda_w ((v8i32)_1, (v8i32)_2); 1108 } 1109 1110 /* Assembly instruction format: xd, xj, xk. */ 1111 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1112 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1113 __m256i __lasx_xvadda_d (__m256i _1, __m256i _2) 1114 { 1115 return (__m256i)__builtin_lasx_xvadda_d ((v4i64)_1, (v4i64)_2); 1116 } 1117 1118 /* Assembly instruction format: xd, xj, xk. */ 1119 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1120 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1121 __m256i __lasx_xvsadd_b (__m256i _1, __m256i _2) 1122 { 1123 return (__m256i)__builtin_lasx_xvsadd_b ((v32i8)_1, (v32i8)_2); 1124 } 1125 1126 /* Assembly instruction format: xd, xj, xk. */ 1127 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1128 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1129 __m256i __lasx_xvsadd_h (__m256i _1, __m256i _2) 1130 { 1131 return (__m256i)__builtin_lasx_xvsadd_h ((v16i16)_1, (v16i16)_2); 1132 } 1133 1134 /* Assembly instruction format: xd, xj, xk. */ 1135 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1136 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1137 __m256i __lasx_xvsadd_w (__m256i _1, __m256i _2) 1138 { 1139 return (__m256i)__builtin_lasx_xvsadd_w ((v8i32)_1, (v8i32)_2); 1140 } 1141 1142 /* Assembly instruction format: xd, xj, xk. */ 1143 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1144 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1145 __m256i __lasx_xvsadd_d (__m256i _1, __m256i _2) 1146 { 1147 return (__m256i)__builtin_lasx_xvsadd_d ((v4i64)_1, (v4i64)_2); 1148 } 1149 1150 /* Assembly instruction format: xd, xj, xk. */ 1151 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 1152 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1153 __m256i __lasx_xvsadd_bu (__m256i _1, __m256i _2) 1154 { 1155 return (__m256i)__builtin_lasx_xvsadd_bu ((v32u8)_1, (v32u8)_2); 1156 } 1157 1158 /* Assembly instruction format: xd, xj, xk. */ 1159 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 1160 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1161 __m256i __lasx_xvsadd_hu (__m256i _1, __m256i _2) 1162 { 1163 return (__m256i)__builtin_lasx_xvsadd_hu ((v16u16)_1, (v16u16)_2); 1164 } 1165 1166 /* Assembly instruction format: xd, xj, xk. */ 1167 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 1168 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1169 __m256i __lasx_xvsadd_wu (__m256i _1, __m256i _2) 1170 { 1171 return (__m256i)__builtin_lasx_xvsadd_wu ((v8u32)_1, (v8u32)_2); 1172 } 1173 1174 /* Assembly instruction format: xd, xj, xk. */ 1175 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 1176 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1177 __m256i __lasx_xvsadd_du (__m256i _1, __m256i _2) 1178 { 1179 return (__m256i)__builtin_lasx_xvsadd_du ((v4u64)_1, (v4u64)_2); 1180 } 1181 1182 /* Assembly instruction format: xd, xj, xk. */ 1183 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1184 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1185 __m256i __lasx_xvavg_b (__m256i _1, __m256i _2) 1186 { 1187 return (__m256i)__builtin_lasx_xvavg_b ((v32i8)_1, (v32i8)_2); 1188 } 1189 1190 /* Assembly instruction format: xd, xj, xk. */ 1191 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1192 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1193 __m256i __lasx_xvavg_h (__m256i _1, __m256i _2) 1194 { 1195 return (__m256i)__builtin_lasx_xvavg_h ((v16i16)_1, (v16i16)_2); 1196 } 1197 1198 /* Assembly instruction format: xd, xj, xk. */ 1199 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1200 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1201 __m256i __lasx_xvavg_w (__m256i _1, __m256i _2) 1202 { 1203 return (__m256i)__builtin_lasx_xvavg_w ((v8i32)_1, (v8i32)_2); 1204 } 1205 1206 /* Assembly instruction format: xd, xj, xk. */ 1207 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1208 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1209 __m256i __lasx_xvavg_d (__m256i _1, __m256i _2) 1210 { 1211 return (__m256i)__builtin_lasx_xvavg_d ((v4i64)_1, (v4i64)_2); 1212 } 1213 1214 /* Assembly instruction format: xd, xj, xk. */ 1215 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 1216 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1217 __m256i __lasx_xvavg_bu (__m256i _1, __m256i _2) 1218 { 1219 return (__m256i)__builtin_lasx_xvavg_bu ((v32u8)_1, (v32u8)_2); 1220 } 1221 1222 /* Assembly instruction format: xd, xj, xk. */ 1223 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 1224 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1225 __m256i __lasx_xvavg_hu (__m256i _1, __m256i _2) 1226 { 1227 return (__m256i)__builtin_lasx_xvavg_hu ((v16u16)_1, (v16u16)_2); 1228 } 1229 1230 /* Assembly instruction format: xd, xj, xk. */ 1231 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 1232 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1233 __m256i __lasx_xvavg_wu (__m256i _1, __m256i _2) 1234 { 1235 return (__m256i)__builtin_lasx_xvavg_wu ((v8u32)_1, (v8u32)_2); 1236 } 1237 1238 /* Assembly instruction format: xd, xj, xk. */ 1239 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 1240 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1241 __m256i __lasx_xvavg_du (__m256i _1, __m256i _2) 1242 { 1243 return (__m256i)__builtin_lasx_xvavg_du ((v4u64)_1, (v4u64)_2); 1244 } 1245 1246 /* Assembly instruction format: xd, xj, xk. */ 1247 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1248 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1249 __m256i __lasx_xvavgr_b (__m256i _1, __m256i _2) 1250 { 1251 return (__m256i)__builtin_lasx_xvavgr_b ((v32i8)_1, (v32i8)_2); 1252 } 1253 1254 /* Assembly instruction format: xd, xj, xk. */ 1255 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1256 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1257 __m256i __lasx_xvavgr_h (__m256i _1, __m256i _2) 1258 { 1259 return (__m256i)__builtin_lasx_xvavgr_h ((v16i16)_1, (v16i16)_2); 1260 } 1261 1262 /* Assembly instruction format: xd, xj, xk. */ 1263 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1264 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1265 __m256i __lasx_xvavgr_w (__m256i _1, __m256i _2) 1266 { 1267 return (__m256i)__builtin_lasx_xvavgr_w ((v8i32)_1, (v8i32)_2); 1268 } 1269 1270 /* Assembly instruction format: xd, xj, xk. */ 1271 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1272 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1273 __m256i __lasx_xvavgr_d (__m256i _1, __m256i _2) 1274 { 1275 return (__m256i)__builtin_lasx_xvavgr_d ((v4i64)_1, (v4i64)_2); 1276 } 1277 1278 /* Assembly instruction format: xd, xj, xk. */ 1279 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 1280 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1281 __m256i __lasx_xvavgr_bu (__m256i _1, __m256i _2) 1282 { 1283 return (__m256i)__builtin_lasx_xvavgr_bu ((v32u8)_1, (v32u8)_2); 1284 } 1285 1286 /* Assembly instruction format: xd, xj, xk. */ 1287 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 1288 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1289 __m256i __lasx_xvavgr_hu (__m256i _1, __m256i _2) 1290 { 1291 return (__m256i)__builtin_lasx_xvavgr_hu ((v16u16)_1, (v16u16)_2); 1292 } 1293 1294 /* Assembly instruction format: xd, xj, xk. */ 1295 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 1296 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1297 __m256i __lasx_xvavgr_wu (__m256i _1, __m256i _2) 1298 { 1299 return (__m256i)__builtin_lasx_xvavgr_wu ((v8u32)_1, (v8u32)_2); 1300 } 1301 1302 /* Assembly instruction format: xd, xj, xk. */ 1303 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 1304 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1305 __m256i __lasx_xvavgr_du (__m256i _1, __m256i _2) 1306 { 1307 return (__m256i)__builtin_lasx_xvavgr_du ((v4u64)_1, (v4u64)_2); 1308 } 1309 1310 /* Assembly instruction format: xd, xj, xk. */ 1311 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1312 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1313 __m256i __lasx_xvssub_b (__m256i _1, __m256i _2) 1314 { 1315 return (__m256i)__builtin_lasx_xvssub_b ((v32i8)_1, (v32i8)_2); 1316 } 1317 1318 /* Assembly instruction format: xd, xj, xk. */ 1319 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1320 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1321 __m256i __lasx_xvssub_h (__m256i _1, __m256i _2) 1322 { 1323 return (__m256i)__builtin_lasx_xvssub_h ((v16i16)_1, (v16i16)_2); 1324 } 1325 1326 /* Assembly instruction format: xd, xj, xk. */ 1327 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1328 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1329 __m256i __lasx_xvssub_w (__m256i _1, __m256i _2) 1330 { 1331 return (__m256i)__builtin_lasx_xvssub_w ((v8i32)_1, (v8i32)_2); 1332 } 1333 1334 /* Assembly instruction format: xd, xj, xk. */ 1335 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1336 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1337 __m256i __lasx_xvssub_d (__m256i _1, __m256i _2) 1338 { 1339 return (__m256i)__builtin_lasx_xvssub_d ((v4i64)_1, (v4i64)_2); 1340 } 1341 1342 /* Assembly instruction format: xd, xj, xk. */ 1343 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 1344 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1345 __m256i __lasx_xvssub_bu (__m256i _1, __m256i _2) 1346 { 1347 return (__m256i)__builtin_lasx_xvssub_bu ((v32u8)_1, (v32u8)_2); 1348 } 1349 1350 /* Assembly instruction format: xd, xj, xk. */ 1351 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 1352 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1353 __m256i __lasx_xvssub_hu (__m256i _1, __m256i _2) 1354 { 1355 return (__m256i)__builtin_lasx_xvssub_hu ((v16u16)_1, (v16u16)_2); 1356 } 1357 1358 /* Assembly instruction format: xd, xj, xk. */ 1359 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 1360 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1361 __m256i __lasx_xvssub_wu (__m256i _1, __m256i _2) 1362 { 1363 return (__m256i)__builtin_lasx_xvssub_wu ((v8u32)_1, (v8u32)_2); 1364 } 1365 1366 /* Assembly instruction format: xd, xj, xk. */ 1367 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 1368 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1369 __m256i __lasx_xvssub_du (__m256i _1, __m256i _2) 1370 { 1371 return (__m256i)__builtin_lasx_xvssub_du ((v4u64)_1, (v4u64)_2); 1372 } 1373 1374 /* Assembly instruction format: xd, xj, xk. */ 1375 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1376 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1377 __m256i __lasx_xvabsd_b (__m256i _1, __m256i _2) 1378 { 1379 return (__m256i)__builtin_lasx_xvabsd_b ((v32i8)_1, (v32i8)_2); 1380 } 1381 1382 /* Assembly instruction format: xd, xj, xk. */ 1383 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1384 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1385 __m256i __lasx_xvabsd_h (__m256i _1, __m256i _2) 1386 { 1387 return (__m256i)__builtin_lasx_xvabsd_h ((v16i16)_1, (v16i16)_2); 1388 } 1389 1390 /* Assembly instruction format: xd, xj, xk. */ 1391 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1392 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1393 __m256i __lasx_xvabsd_w (__m256i _1, __m256i _2) 1394 { 1395 return (__m256i)__builtin_lasx_xvabsd_w ((v8i32)_1, (v8i32)_2); 1396 } 1397 1398 /* Assembly instruction format: xd, xj, xk. */ 1399 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1400 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1401 __m256i __lasx_xvabsd_d (__m256i _1, __m256i _2) 1402 { 1403 return (__m256i)__builtin_lasx_xvabsd_d ((v4i64)_1, (v4i64)_2); 1404 } 1405 1406 /* Assembly instruction format: xd, xj, xk. */ 1407 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 1408 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1409 __m256i __lasx_xvabsd_bu (__m256i _1, __m256i _2) 1410 { 1411 return (__m256i)__builtin_lasx_xvabsd_bu ((v32u8)_1, (v32u8)_2); 1412 } 1413 1414 /* Assembly instruction format: xd, xj, xk. */ 1415 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 1416 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1417 __m256i __lasx_xvabsd_hu (__m256i _1, __m256i _2) 1418 { 1419 return (__m256i)__builtin_lasx_xvabsd_hu ((v16u16)_1, (v16u16)_2); 1420 } 1421 1422 /* Assembly instruction format: xd, xj, xk. */ 1423 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 1424 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1425 __m256i __lasx_xvabsd_wu (__m256i _1, __m256i _2) 1426 { 1427 return (__m256i)__builtin_lasx_xvabsd_wu ((v8u32)_1, (v8u32)_2); 1428 } 1429 1430 /* Assembly instruction format: xd, xj, xk. */ 1431 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 1432 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1433 __m256i __lasx_xvabsd_du (__m256i _1, __m256i _2) 1434 { 1435 return (__m256i)__builtin_lasx_xvabsd_du ((v4u64)_1, (v4u64)_2); 1436 } 1437 1438 /* Assembly instruction format: xd, xj, xk. */ 1439 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1440 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1441 __m256i __lasx_xvmul_b (__m256i _1, __m256i _2) 1442 { 1443 return (__m256i)__builtin_lasx_xvmul_b ((v32i8)_1, (v32i8)_2); 1444 } 1445 1446 /* Assembly instruction format: xd, xj, xk. */ 1447 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1448 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1449 __m256i __lasx_xvmul_h (__m256i _1, __m256i _2) 1450 { 1451 return (__m256i)__builtin_lasx_xvmul_h ((v16i16)_1, (v16i16)_2); 1452 } 1453 1454 /* Assembly instruction format: xd, xj, xk. */ 1455 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1456 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1457 __m256i __lasx_xvmul_w (__m256i _1, __m256i _2) 1458 { 1459 return (__m256i)__builtin_lasx_xvmul_w ((v8i32)_1, (v8i32)_2); 1460 } 1461 1462 /* Assembly instruction format: xd, xj, xk. */ 1463 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1464 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1465 __m256i __lasx_xvmul_d (__m256i _1, __m256i _2) 1466 { 1467 return (__m256i)__builtin_lasx_xvmul_d ((v4i64)_1, (v4i64)_2); 1468 } 1469 1470 /* Assembly instruction format: xd, xj, xk. */ 1471 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */ 1472 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1473 __m256i __lasx_xvmadd_b (__m256i _1, __m256i _2, __m256i _3) 1474 { 1475 return (__m256i)__builtin_lasx_xvmadd_b ((v32i8)_1, (v32i8)_2, (v32i8)_3); 1476 } 1477 1478 /* Assembly instruction format: xd, xj, xk. */ 1479 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */ 1480 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1481 __m256i __lasx_xvmadd_h (__m256i _1, __m256i _2, __m256i _3) 1482 { 1483 return (__m256i)__builtin_lasx_xvmadd_h ((v16i16)_1, (v16i16)_2, (v16i16)_3); 1484 } 1485 1486 /* Assembly instruction format: xd, xj, xk. */ 1487 /* Data types in instruction templates: V8SI, V8SI, V8SI, V8SI. */ 1488 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1489 __m256i __lasx_xvmadd_w (__m256i _1, __m256i _2, __m256i _3) 1490 { 1491 return (__m256i)__builtin_lasx_xvmadd_w ((v8i32)_1, (v8i32)_2, (v8i32)_3); 1492 } 1493 1494 /* Assembly instruction format: xd, xj, xk. */ 1495 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */ 1496 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1497 __m256i __lasx_xvmadd_d (__m256i _1, __m256i _2, __m256i _3) 1498 { 1499 return (__m256i)__builtin_lasx_xvmadd_d ((v4i64)_1, (v4i64)_2, (v4i64)_3); 1500 } 1501 1502 /* Assembly instruction format: xd, xj, xk. */ 1503 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */ 1504 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1505 __m256i __lasx_xvmsub_b (__m256i _1, __m256i _2, __m256i _3) 1506 { 1507 return (__m256i)__builtin_lasx_xvmsub_b ((v32i8)_1, (v32i8)_2, (v32i8)_3); 1508 } 1509 1510 /* Assembly instruction format: xd, xj, xk. */ 1511 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */ 1512 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1513 __m256i __lasx_xvmsub_h (__m256i _1, __m256i _2, __m256i _3) 1514 { 1515 return (__m256i)__builtin_lasx_xvmsub_h ((v16i16)_1, (v16i16)_2, (v16i16)_3); 1516 } 1517 1518 /* Assembly instruction format: xd, xj, xk. */ 1519 /* Data types in instruction templates: V8SI, V8SI, V8SI, V8SI. */ 1520 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1521 __m256i __lasx_xvmsub_w (__m256i _1, __m256i _2, __m256i _3) 1522 { 1523 return (__m256i)__builtin_lasx_xvmsub_w ((v8i32)_1, (v8i32)_2, (v8i32)_3); 1524 } 1525 1526 /* Assembly instruction format: xd, xj, xk. */ 1527 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */ 1528 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1529 __m256i __lasx_xvmsub_d (__m256i _1, __m256i _2, __m256i _3) 1530 { 1531 return (__m256i)__builtin_lasx_xvmsub_d ((v4i64)_1, (v4i64)_2, (v4i64)_3); 1532 } 1533 1534 /* Assembly instruction format: xd, xj, xk. */ 1535 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1536 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1537 __m256i __lasx_xvdiv_b (__m256i _1, __m256i _2) 1538 { 1539 return (__m256i)__builtin_lasx_xvdiv_b ((v32i8)_1, (v32i8)_2); 1540 } 1541 1542 /* Assembly instruction format: xd, xj, xk. */ 1543 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1544 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1545 __m256i __lasx_xvdiv_h (__m256i _1, __m256i _2) 1546 { 1547 return (__m256i)__builtin_lasx_xvdiv_h ((v16i16)_1, (v16i16)_2); 1548 } 1549 1550 /* Assembly instruction format: xd, xj, xk. */ 1551 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1552 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1553 __m256i __lasx_xvdiv_w (__m256i _1, __m256i _2) 1554 { 1555 return (__m256i)__builtin_lasx_xvdiv_w ((v8i32)_1, (v8i32)_2); 1556 } 1557 1558 /* Assembly instruction format: xd, xj, xk. */ 1559 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1560 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1561 __m256i __lasx_xvdiv_d (__m256i _1, __m256i _2) 1562 { 1563 return (__m256i)__builtin_lasx_xvdiv_d ((v4i64)_1, (v4i64)_2); 1564 } 1565 1566 /* Assembly instruction format: xd, xj, xk. */ 1567 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 1568 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1569 __m256i __lasx_xvdiv_bu (__m256i _1, __m256i _2) 1570 { 1571 return (__m256i)__builtin_lasx_xvdiv_bu ((v32u8)_1, (v32u8)_2); 1572 } 1573 1574 /* Assembly instruction format: xd, xj, xk. */ 1575 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 1576 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1577 __m256i __lasx_xvdiv_hu (__m256i _1, __m256i _2) 1578 { 1579 return (__m256i)__builtin_lasx_xvdiv_hu ((v16u16)_1, (v16u16)_2); 1580 } 1581 1582 /* Assembly instruction format: xd, xj, xk. */ 1583 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 1584 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1585 __m256i __lasx_xvdiv_wu (__m256i _1, __m256i _2) 1586 { 1587 return (__m256i)__builtin_lasx_xvdiv_wu ((v8u32)_1, (v8u32)_2); 1588 } 1589 1590 /* Assembly instruction format: xd, xj, xk. */ 1591 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 1592 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1593 __m256i __lasx_xvdiv_du (__m256i _1, __m256i _2) 1594 { 1595 return (__m256i)__builtin_lasx_xvdiv_du ((v4u64)_1, (v4u64)_2); 1596 } 1597 1598 /* Assembly instruction format: xd, xj, xk. */ 1599 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 1600 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1601 __m256i __lasx_xvhaddw_h_b (__m256i _1, __m256i _2) 1602 { 1603 return (__m256i)__builtin_lasx_xvhaddw_h_b ((v32i8)_1, (v32i8)_2); 1604 } 1605 1606 /* Assembly instruction format: xd, xj, xk. */ 1607 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 1608 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1609 __m256i __lasx_xvhaddw_w_h (__m256i _1, __m256i _2) 1610 { 1611 return (__m256i)__builtin_lasx_xvhaddw_w_h ((v16i16)_1, (v16i16)_2); 1612 } 1613 1614 /* Assembly instruction format: xd, xj, xk. */ 1615 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 1616 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1617 __m256i __lasx_xvhaddw_d_w (__m256i _1, __m256i _2) 1618 { 1619 return (__m256i)__builtin_lasx_xvhaddw_d_w ((v8i32)_1, (v8i32)_2); 1620 } 1621 1622 /* Assembly instruction format: xd, xj, xk. */ 1623 /* Data types in instruction templates: UV16HI, UV32QI, UV32QI. */ 1624 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1625 __m256i __lasx_xvhaddw_hu_bu (__m256i _1, __m256i _2) 1626 { 1627 return (__m256i)__builtin_lasx_xvhaddw_hu_bu ((v32u8)_1, (v32u8)_2); 1628 } 1629 1630 /* Assembly instruction format: xd, xj, xk. */ 1631 /* Data types in instruction templates: UV8SI, UV16HI, UV16HI. */ 1632 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1633 __m256i __lasx_xvhaddw_wu_hu (__m256i _1, __m256i _2) 1634 { 1635 return (__m256i)__builtin_lasx_xvhaddw_wu_hu ((v16u16)_1, (v16u16)_2); 1636 } 1637 1638 /* Assembly instruction format: xd, xj, xk. */ 1639 /* Data types in instruction templates: UV4DI, UV8SI, UV8SI. */ 1640 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1641 __m256i __lasx_xvhaddw_du_wu (__m256i _1, __m256i _2) 1642 { 1643 return (__m256i)__builtin_lasx_xvhaddw_du_wu ((v8u32)_1, (v8u32)_2); 1644 } 1645 1646 /* Assembly instruction format: xd, xj, xk. */ 1647 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 1648 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1649 __m256i __lasx_xvhsubw_h_b (__m256i _1, __m256i _2) 1650 { 1651 return (__m256i)__builtin_lasx_xvhsubw_h_b ((v32i8)_1, (v32i8)_2); 1652 } 1653 1654 /* Assembly instruction format: xd, xj, xk. */ 1655 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 1656 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1657 __m256i __lasx_xvhsubw_w_h (__m256i _1, __m256i _2) 1658 { 1659 return (__m256i)__builtin_lasx_xvhsubw_w_h ((v16i16)_1, (v16i16)_2); 1660 } 1661 1662 /* Assembly instruction format: xd, xj, xk. */ 1663 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 1664 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1665 __m256i __lasx_xvhsubw_d_w (__m256i _1, __m256i _2) 1666 { 1667 return (__m256i)__builtin_lasx_xvhsubw_d_w ((v8i32)_1, (v8i32)_2); 1668 } 1669 1670 /* Assembly instruction format: xd, xj, xk. */ 1671 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */ 1672 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1673 __m256i __lasx_xvhsubw_hu_bu (__m256i _1, __m256i _2) 1674 { 1675 return (__m256i)__builtin_lasx_xvhsubw_hu_bu ((v32u8)_1, (v32u8)_2); 1676 } 1677 1678 /* Assembly instruction format: xd, xj, xk. */ 1679 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */ 1680 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1681 __m256i __lasx_xvhsubw_wu_hu (__m256i _1, __m256i _2) 1682 { 1683 return (__m256i)__builtin_lasx_xvhsubw_wu_hu ((v16u16)_1, (v16u16)_2); 1684 } 1685 1686 /* Assembly instruction format: xd, xj, xk. */ 1687 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */ 1688 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1689 __m256i __lasx_xvhsubw_du_wu (__m256i _1, __m256i _2) 1690 { 1691 return (__m256i)__builtin_lasx_xvhsubw_du_wu ((v8u32)_1, (v8u32)_2); 1692 } 1693 1694 /* Assembly instruction format: xd, xj, xk. */ 1695 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1696 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1697 __m256i __lasx_xvmod_b (__m256i _1, __m256i _2) 1698 { 1699 return (__m256i)__builtin_lasx_xvmod_b ((v32i8)_1, (v32i8)_2); 1700 } 1701 1702 /* Assembly instruction format: xd, xj, xk. */ 1703 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1704 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1705 __m256i __lasx_xvmod_h (__m256i _1, __m256i _2) 1706 { 1707 return (__m256i)__builtin_lasx_xvmod_h ((v16i16)_1, (v16i16)_2); 1708 } 1709 1710 /* Assembly instruction format: xd, xj, xk. */ 1711 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1712 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1713 __m256i __lasx_xvmod_w (__m256i _1, __m256i _2) 1714 { 1715 return (__m256i)__builtin_lasx_xvmod_w ((v8i32)_1, (v8i32)_2); 1716 } 1717 1718 /* Assembly instruction format: xd, xj, xk. */ 1719 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1720 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1721 __m256i __lasx_xvmod_d (__m256i _1, __m256i _2) 1722 { 1723 return (__m256i)__builtin_lasx_xvmod_d ((v4i64)_1, (v4i64)_2); 1724 } 1725 1726 /* Assembly instruction format: xd, xj, xk. */ 1727 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 1728 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1729 __m256i __lasx_xvmod_bu (__m256i _1, __m256i _2) 1730 { 1731 return (__m256i)__builtin_lasx_xvmod_bu ((v32u8)_1, (v32u8)_2); 1732 } 1733 1734 /* Assembly instruction format: xd, xj, xk. */ 1735 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 1736 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1737 __m256i __lasx_xvmod_hu (__m256i _1, __m256i _2) 1738 { 1739 return (__m256i)__builtin_lasx_xvmod_hu ((v16u16)_1, (v16u16)_2); 1740 } 1741 1742 /* Assembly instruction format: xd, xj, xk. */ 1743 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 1744 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1745 __m256i __lasx_xvmod_wu (__m256i _1, __m256i _2) 1746 { 1747 return (__m256i)__builtin_lasx_xvmod_wu ((v8u32)_1, (v8u32)_2); 1748 } 1749 1750 /* Assembly instruction format: xd, xj, xk. */ 1751 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 1752 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1753 __m256i __lasx_xvmod_du (__m256i _1, __m256i _2) 1754 { 1755 return (__m256i)__builtin_lasx_xvmod_du ((v4u64)_1, (v4u64)_2); 1756 } 1757 1758 /* Assembly instruction format: xd, xj, ui4. */ 1759 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 1760 #define __lasx_xvrepl128vei_b(/*__m256i*/ _1, /*ui4*/ _2) \ 1761 ((__m256i)__builtin_lasx_xvrepl128vei_b ((v32i8)(_1), (_2))) 1762 1763 /* Assembly instruction format: xd, xj, ui3. */ 1764 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 1765 #define __lasx_xvrepl128vei_h(/*__m256i*/ _1, /*ui3*/ _2) \ 1766 ((__m256i)__builtin_lasx_xvrepl128vei_h ((v16i16)(_1), (_2))) 1767 1768 /* Assembly instruction format: xd, xj, ui2. */ 1769 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 1770 #define __lasx_xvrepl128vei_w(/*__m256i*/ _1, /*ui2*/ _2) \ 1771 ((__m256i)__builtin_lasx_xvrepl128vei_w ((v8i32)(_1), (_2))) 1772 1773 /* Assembly instruction format: xd, xj, ui1. */ 1774 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 1775 #define __lasx_xvrepl128vei_d(/*__m256i*/ _1, /*ui1*/ _2) \ 1776 ((__m256i)__builtin_lasx_xvrepl128vei_d ((v4i64)(_1), (_2))) 1777 1778 /* Assembly instruction format: xd, xj, xk. */ 1779 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1780 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1781 __m256i __lasx_xvpickev_b (__m256i _1, __m256i _2) 1782 { 1783 return (__m256i)__builtin_lasx_xvpickev_b ((v32i8)_1, (v32i8)_2); 1784 } 1785 1786 /* Assembly instruction format: xd, xj, xk. */ 1787 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1788 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1789 __m256i __lasx_xvpickev_h (__m256i _1, __m256i _2) 1790 { 1791 return (__m256i)__builtin_lasx_xvpickev_h ((v16i16)_1, (v16i16)_2); 1792 } 1793 1794 /* Assembly instruction format: xd, xj, xk. */ 1795 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1796 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1797 __m256i __lasx_xvpickev_w (__m256i _1, __m256i _2) 1798 { 1799 return (__m256i)__builtin_lasx_xvpickev_w ((v8i32)_1, (v8i32)_2); 1800 } 1801 1802 /* Assembly instruction format: xd, xj, xk. */ 1803 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1804 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1805 __m256i __lasx_xvpickev_d (__m256i _1, __m256i _2) 1806 { 1807 return (__m256i)__builtin_lasx_xvpickev_d ((v4i64)_1, (v4i64)_2); 1808 } 1809 1810 /* Assembly instruction format: xd, xj, xk. */ 1811 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1812 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1813 __m256i __lasx_xvpickod_b (__m256i _1, __m256i _2) 1814 { 1815 return (__m256i)__builtin_lasx_xvpickod_b ((v32i8)_1, (v32i8)_2); 1816 } 1817 1818 /* Assembly instruction format: xd, xj, xk. */ 1819 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1820 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1821 __m256i __lasx_xvpickod_h (__m256i _1, __m256i _2) 1822 { 1823 return (__m256i)__builtin_lasx_xvpickod_h ((v16i16)_1, (v16i16)_2); 1824 } 1825 1826 /* Assembly instruction format: xd, xj, xk. */ 1827 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1828 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1829 __m256i __lasx_xvpickod_w (__m256i _1, __m256i _2) 1830 { 1831 return (__m256i)__builtin_lasx_xvpickod_w ((v8i32)_1, (v8i32)_2); 1832 } 1833 1834 /* Assembly instruction format: xd, xj, xk. */ 1835 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1836 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1837 __m256i __lasx_xvpickod_d (__m256i _1, __m256i _2) 1838 { 1839 return (__m256i)__builtin_lasx_xvpickod_d ((v4i64)_1, (v4i64)_2); 1840 } 1841 1842 /* Assembly instruction format: xd, xj, xk. */ 1843 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1844 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1845 __m256i __lasx_xvilvh_b (__m256i _1, __m256i _2) 1846 { 1847 return (__m256i)__builtin_lasx_xvilvh_b ((v32i8)_1, (v32i8)_2); 1848 } 1849 1850 /* Assembly instruction format: xd, xj, xk. */ 1851 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1852 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1853 __m256i __lasx_xvilvh_h (__m256i _1, __m256i _2) 1854 { 1855 return (__m256i)__builtin_lasx_xvilvh_h ((v16i16)_1, (v16i16)_2); 1856 } 1857 1858 /* Assembly instruction format: xd, xj, xk. */ 1859 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1860 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1861 __m256i __lasx_xvilvh_w (__m256i _1, __m256i _2) 1862 { 1863 return (__m256i)__builtin_lasx_xvilvh_w ((v8i32)_1, (v8i32)_2); 1864 } 1865 1866 /* Assembly instruction format: xd, xj, xk. */ 1867 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1868 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1869 __m256i __lasx_xvilvh_d (__m256i _1, __m256i _2) 1870 { 1871 return (__m256i)__builtin_lasx_xvilvh_d ((v4i64)_1, (v4i64)_2); 1872 } 1873 1874 /* Assembly instruction format: xd, xj, xk. */ 1875 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1876 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1877 __m256i __lasx_xvilvl_b (__m256i _1, __m256i _2) 1878 { 1879 return (__m256i)__builtin_lasx_xvilvl_b ((v32i8)_1, (v32i8)_2); 1880 } 1881 1882 /* Assembly instruction format: xd, xj, xk. */ 1883 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1884 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1885 __m256i __lasx_xvilvl_h (__m256i _1, __m256i _2) 1886 { 1887 return (__m256i)__builtin_lasx_xvilvl_h ((v16i16)_1, (v16i16)_2); 1888 } 1889 1890 /* Assembly instruction format: xd, xj, xk. */ 1891 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1892 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1893 __m256i __lasx_xvilvl_w (__m256i _1, __m256i _2) 1894 { 1895 return (__m256i)__builtin_lasx_xvilvl_w ((v8i32)_1, (v8i32)_2); 1896 } 1897 1898 /* Assembly instruction format: xd, xj, xk. */ 1899 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1900 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1901 __m256i __lasx_xvilvl_d (__m256i _1, __m256i _2) 1902 { 1903 return (__m256i)__builtin_lasx_xvilvl_d ((v4i64)_1, (v4i64)_2); 1904 } 1905 1906 /* Assembly instruction format: xd, xj, xk. */ 1907 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1908 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1909 __m256i __lasx_xvpackev_b (__m256i _1, __m256i _2) 1910 { 1911 return (__m256i)__builtin_lasx_xvpackev_b ((v32i8)_1, (v32i8)_2); 1912 } 1913 1914 /* Assembly instruction format: xd, xj, xk. */ 1915 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1916 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1917 __m256i __lasx_xvpackev_h (__m256i _1, __m256i _2) 1918 { 1919 return (__m256i)__builtin_lasx_xvpackev_h ((v16i16)_1, (v16i16)_2); 1920 } 1921 1922 /* Assembly instruction format: xd, xj, xk. */ 1923 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1924 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1925 __m256i __lasx_xvpackev_w (__m256i _1, __m256i _2) 1926 { 1927 return (__m256i)__builtin_lasx_xvpackev_w ((v8i32)_1, (v8i32)_2); 1928 } 1929 1930 /* Assembly instruction format: xd, xj, xk. */ 1931 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1932 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1933 __m256i __lasx_xvpackev_d (__m256i _1, __m256i _2) 1934 { 1935 return (__m256i)__builtin_lasx_xvpackev_d ((v4i64)_1, (v4i64)_2); 1936 } 1937 1938 /* Assembly instruction format: xd, xj, xk. */ 1939 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 1940 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1941 __m256i __lasx_xvpackod_b (__m256i _1, __m256i _2) 1942 { 1943 return (__m256i)__builtin_lasx_xvpackod_b ((v32i8)_1, (v32i8)_2); 1944 } 1945 1946 /* Assembly instruction format: xd, xj, xk. */ 1947 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 1948 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1949 __m256i __lasx_xvpackod_h (__m256i _1, __m256i _2) 1950 { 1951 return (__m256i)__builtin_lasx_xvpackod_h ((v16i16)_1, (v16i16)_2); 1952 } 1953 1954 /* Assembly instruction format: xd, xj, xk. */ 1955 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 1956 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1957 __m256i __lasx_xvpackod_w (__m256i _1, __m256i _2) 1958 { 1959 return (__m256i)__builtin_lasx_xvpackod_w ((v8i32)_1, (v8i32)_2); 1960 } 1961 1962 /* Assembly instruction format: xd, xj, xk. */ 1963 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 1964 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1965 __m256i __lasx_xvpackod_d (__m256i _1, __m256i _2) 1966 { 1967 return (__m256i)__builtin_lasx_xvpackod_d ((v4i64)_1, (v4i64)_2); 1968 } 1969 1970 /* Assembly instruction format: xd, xj, xk, xa. */ 1971 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */ 1972 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1973 __m256i __lasx_xvshuf_b (__m256i _1, __m256i _2, __m256i _3) 1974 { 1975 return (__m256i)__builtin_lasx_xvshuf_b ((v32i8)_1, (v32i8)_2, (v32i8)_3); 1976 } 1977 1978 /* Assembly instruction format: xd, xj, xk. */ 1979 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */ 1980 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1981 __m256i __lasx_xvshuf_h (__m256i _1, __m256i _2, __m256i _3) 1982 { 1983 return (__m256i)__builtin_lasx_xvshuf_h ((v16i16)_1, (v16i16)_2, (v16i16)_3); 1984 } 1985 1986 /* Assembly instruction format: xd, xj, xk. */ 1987 /* Data types in instruction templates: V8SI, V8SI, V8SI, V8SI. */ 1988 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1989 __m256i __lasx_xvshuf_w (__m256i _1, __m256i _2, __m256i _3) 1990 { 1991 return (__m256i)__builtin_lasx_xvshuf_w ((v8i32)_1, (v8i32)_2, (v8i32)_3); 1992 } 1993 1994 /* Assembly instruction format: xd, xj, xk. */ 1995 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */ 1996 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1997 __m256i __lasx_xvshuf_d (__m256i _1, __m256i _2, __m256i _3) 1998 { 1999 return (__m256i)__builtin_lasx_xvshuf_d ((v4i64)_1, (v4i64)_2, (v4i64)_3); 2000 } 2001 2002 /* Assembly instruction format: xd, xj, xk. */ 2003 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 2004 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2005 __m256i __lasx_xvand_v (__m256i _1, __m256i _2) 2006 { 2007 return (__m256i)__builtin_lasx_xvand_v ((v32u8)_1, (v32u8)_2); 2008 } 2009 2010 /* Assembly instruction format: xd, xj, ui8. */ 2011 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 2012 #define __lasx_xvandi_b(/*__m256i*/ _1, /*ui8*/ _2) \ 2013 ((__m256i)__builtin_lasx_xvandi_b ((v32u8)(_1), (_2))) 2014 2015 /* Assembly instruction format: xd, xj, xk. */ 2016 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 2017 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2018 __m256i __lasx_xvor_v (__m256i _1, __m256i _2) 2019 { 2020 return (__m256i)__builtin_lasx_xvor_v ((v32u8)_1, (v32u8)_2); 2021 } 2022 2023 /* Assembly instruction format: xd, xj, ui8. */ 2024 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 2025 #define __lasx_xvori_b(/*__m256i*/ _1, /*ui8*/ _2) \ 2026 ((__m256i)__builtin_lasx_xvori_b ((v32u8)(_1), (_2))) 2027 2028 /* Assembly instruction format: xd, xj, xk. */ 2029 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 2030 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2031 __m256i __lasx_xvnor_v (__m256i _1, __m256i _2) 2032 { 2033 return (__m256i)__builtin_lasx_xvnor_v ((v32u8)_1, (v32u8)_2); 2034 } 2035 2036 /* Assembly instruction format: xd, xj, ui8. */ 2037 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 2038 #define __lasx_xvnori_b(/*__m256i*/ _1, /*ui8*/ _2) \ 2039 ((__m256i)__builtin_lasx_xvnori_b ((v32u8)(_1), (_2))) 2040 2041 /* Assembly instruction format: xd, xj, xk. */ 2042 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 2043 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2044 __m256i __lasx_xvxor_v (__m256i _1, __m256i _2) 2045 { 2046 return (__m256i)__builtin_lasx_xvxor_v ((v32u8)_1, (v32u8)_2); 2047 } 2048 2049 /* Assembly instruction format: xd, xj, ui8. */ 2050 /* Data types in instruction templates: UV32QI, UV32QI, UQI. */ 2051 #define __lasx_xvxori_b(/*__m256i*/ _1, /*ui8*/ _2) \ 2052 ((__m256i)__builtin_lasx_xvxori_b ((v32u8)(_1), (_2))) 2053 2054 /* Assembly instruction format: xd, xj, xk, xa. */ 2055 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI, UV32QI. */ 2056 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2057 __m256i __lasx_xvbitsel_v (__m256i _1, __m256i _2, __m256i _3) 2058 { 2059 return (__m256i)__builtin_lasx_xvbitsel_v ((v32u8)_1, (v32u8)_2, (v32u8)_3); 2060 } 2061 2062 /* Assembly instruction format: xd, xj, ui8. */ 2063 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI, USI. */ 2064 #define __lasx_xvbitseli_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 2065 ((__m256i)__builtin_lasx_xvbitseli_b ((v32u8)(_1), (v32u8)(_2), (_3))) 2066 2067 /* Assembly instruction format: xd, xj, ui8. */ 2068 /* Data types in instruction templates: V32QI, V32QI, USI. */ 2069 #define __lasx_xvshuf4i_b(/*__m256i*/ _1, /*ui8*/ _2) \ 2070 ((__m256i)__builtin_lasx_xvshuf4i_b ((v32i8)(_1), (_2))) 2071 2072 /* Assembly instruction format: xd, xj, ui8. */ 2073 /* Data types in instruction templates: V16HI, V16HI, USI. */ 2074 #define __lasx_xvshuf4i_h(/*__m256i*/ _1, /*ui8*/ _2) \ 2075 ((__m256i)__builtin_lasx_xvshuf4i_h ((v16i16)(_1), (_2))) 2076 2077 /* Assembly instruction format: xd, xj, ui8. */ 2078 /* Data types in instruction templates: V8SI, V8SI, USI. */ 2079 #define __lasx_xvshuf4i_w(/*__m256i*/ _1, /*ui8*/ _2) \ 2080 ((__m256i)__builtin_lasx_xvshuf4i_w ((v8i32)(_1), (_2))) 2081 2082 /* Assembly instruction format: xd, rj. */ 2083 /* Data types in instruction templates: V32QI, SI. */ 2084 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2085 __m256i __lasx_xvreplgr2vr_b (int _1) 2086 { 2087 return (__m256i)__builtin_lasx_xvreplgr2vr_b ((int)_1); 2088 } 2089 2090 /* Assembly instruction format: xd, rj. */ 2091 /* Data types in instruction templates: V16HI, SI. */ 2092 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2093 __m256i __lasx_xvreplgr2vr_h (int _1) 2094 { 2095 return (__m256i)__builtin_lasx_xvreplgr2vr_h ((int)_1); 2096 } 2097 2098 /* Assembly instruction format: xd, rj. */ 2099 /* Data types in instruction templates: V8SI, SI. */ 2100 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2101 __m256i __lasx_xvreplgr2vr_w (int _1) 2102 { 2103 return (__m256i)__builtin_lasx_xvreplgr2vr_w ((int)_1); 2104 } 2105 2106 /* Assembly instruction format: xd, rj. */ 2107 /* Data types in instruction templates: V4DI, DI. */ 2108 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2109 __m256i __lasx_xvreplgr2vr_d (long int _1) 2110 { 2111 return (__m256i)__builtin_lasx_xvreplgr2vr_d ((long int)_1); 2112 } 2113 2114 /* Assembly instruction format: xd, xj. */ 2115 /* Data types in instruction templates: V32QI, V32QI. */ 2116 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2117 __m256i __lasx_xvpcnt_b (__m256i _1) 2118 { 2119 return (__m256i)__builtin_lasx_xvpcnt_b ((v32i8)_1); 2120 } 2121 2122 /* Assembly instruction format: xd, xj. */ 2123 /* Data types in instruction templates: V16HI, V16HI. */ 2124 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2125 __m256i __lasx_xvpcnt_h (__m256i _1) 2126 { 2127 return (__m256i)__builtin_lasx_xvpcnt_h ((v16i16)_1); 2128 } 2129 2130 /* Assembly instruction format: xd, xj. */ 2131 /* Data types in instruction templates: V8SI, V8SI. */ 2132 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2133 __m256i __lasx_xvpcnt_w (__m256i _1) 2134 { 2135 return (__m256i)__builtin_lasx_xvpcnt_w ((v8i32)_1); 2136 } 2137 2138 /* Assembly instruction format: xd, xj. */ 2139 /* Data types in instruction templates: V4DI, V4DI. */ 2140 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2141 __m256i __lasx_xvpcnt_d (__m256i _1) 2142 { 2143 return (__m256i)__builtin_lasx_xvpcnt_d ((v4i64)_1); 2144 } 2145 2146 /* Assembly instruction format: xd, xj. */ 2147 /* Data types in instruction templates: V32QI, V32QI. */ 2148 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2149 __m256i __lasx_xvclo_b (__m256i _1) 2150 { 2151 return (__m256i)__builtin_lasx_xvclo_b ((v32i8)_1); 2152 } 2153 2154 /* Assembly instruction format: xd, xj. */ 2155 /* Data types in instruction templates: V16HI, V16HI. */ 2156 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2157 __m256i __lasx_xvclo_h (__m256i _1) 2158 { 2159 return (__m256i)__builtin_lasx_xvclo_h ((v16i16)_1); 2160 } 2161 2162 /* Assembly instruction format: xd, xj. */ 2163 /* Data types in instruction templates: V8SI, V8SI. */ 2164 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2165 __m256i __lasx_xvclo_w (__m256i _1) 2166 { 2167 return (__m256i)__builtin_lasx_xvclo_w ((v8i32)_1); 2168 } 2169 2170 /* Assembly instruction format: xd, xj. */ 2171 /* Data types in instruction templates: V4DI, V4DI. */ 2172 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2173 __m256i __lasx_xvclo_d (__m256i _1) 2174 { 2175 return (__m256i)__builtin_lasx_xvclo_d ((v4i64)_1); 2176 } 2177 2178 /* Assembly instruction format: xd, xj. */ 2179 /* Data types in instruction templates: V32QI, V32QI. */ 2180 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2181 __m256i __lasx_xvclz_b (__m256i _1) 2182 { 2183 return (__m256i)__builtin_lasx_xvclz_b ((v32i8)_1); 2184 } 2185 2186 /* Assembly instruction format: xd, xj. */ 2187 /* Data types in instruction templates: V16HI, V16HI. */ 2188 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2189 __m256i __lasx_xvclz_h (__m256i _1) 2190 { 2191 return (__m256i)__builtin_lasx_xvclz_h ((v16i16)_1); 2192 } 2193 2194 /* Assembly instruction format: xd, xj. */ 2195 /* Data types in instruction templates: V8SI, V8SI. */ 2196 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2197 __m256i __lasx_xvclz_w (__m256i _1) 2198 { 2199 return (__m256i)__builtin_lasx_xvclz_w ((v8i32)_1); 2200 } 2201 2202 /* Assembly instruction format: xd, xj. */ 2203 /* Data types in instruction templates: V4DI, V4DI. */ 2204 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2205 __m256i __lasx_xvclz_d (__m256i _1) 2206 { 2207 return (__m256i)__builtin_lasx_xvclz_d ((v4i64)_1); 2208 } 2209 2210 /* Assembly instruction format: xd, xj, xk. */ 2211 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2212 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2213 __m256 __lasx_xvfadd_s (__m256 _1, __m256 _2) 2214 { 2215 return (__m256)__builtin_lasx_xvfadd_s ((v8f32)_1, (v8f32)_2); 2216 } 2217 2218 /* Assembly instruction format: xd, xj, xk. */ 2219 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2220 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2221 __m256d __lasx_xvfadd_d (__m256d _1, __m256d _2) 2222 { 2223 return (__m256d)__builtin_lasx_xvfadd_d ((v4f64)_1, (v4f64)_2); 2224 } 2225 2226 /* Assembly instruction format: xd, xj, xk. */ 2227 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2228 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2229 __m256 __lasx_xvfsub_s (__m256 _1, __m256 _2) 2230 { 2231 return (__m256)__builtin_lasx_xvfsub_s ((v8f32)_1, (v8f32)_2); 2232 } 2233 2234 /* Assembly instruction format: xd, xj, xk. */ 2235 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2236 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2237 __m256d __lasx_xvfsub_d (__m256d _1, __m256d _2) 2238 { 2239 return (__m256d)__builtin_lasx_xvfsub_d ((v4f64)_1, (v4f64)_2); 2240 } 2241 2242 /* Assembly instruction format: xd, xj, xk. */ 2243 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2244 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2245 __m256 __lasx_xvfmul_s (__m256 _1, __m256 _2) 2246 { 2247 return (__m256)__builtin_lasx_xvfmul_s ((v8f32)_1, (v8f32)_2); 2248 } 2249 2250 /* Assembly instruction format: xd, xj, xk. */ 2251 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2252 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2253 __m256d __lasx_xvfmul_d (__m256d _1, __m256d _2) 2254 { 2255 return (__m256d)__builtin_lasx_xvfmul_d ((v4f64)_1, (v4f64)_2); 2256 } 2257 2258 /* Assembly instruction format: xd, xj, xk. */ 2259 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2260 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2261 __m256 __lasx_xvfdiv_s (__m256 _1, __m256 _2) 2262 { 2263 return (__m256)__builtin_lasx_xvfdiv_s ((v8f32)_1, (v8f32)_2); 2264 } 2265 2266 /* Assembly instruction format: xd, xj, xk. */ 2267 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2268 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2269 __m256d __lasx_xvfdiv_d (__m256d _1, __m256d _2) 2270 { 2271 return (__m256d)__builtin_lasx_xvfdiv_d ((v4f64)_1, (v4f64)_2); 2272 } 2273 2274 /* Assembly instruction format: xd, xj, xk. */ 2275 /* Data types in instruction templates: V16HI, V8SF, V8SF. */ 2276 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2277 __m256i __lasx_xvfcvt_h_s (__m256 _1, __m256 _2) 2278 { 2279 return (__m256i)__builtin_lasx_xvfcvt_h_s ((v8f32)_1, (v8f32)_2); 2280 } 2281 2282 /* Assembly instruction format: xd, xj, xk. */ 2283 /* Data types in instruction templates: V8SF, V4DF, V4DF. */ 2284 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2285 __m256 __lasx_xvfcvt_s_d (__m256d _1, __m256d _2) 2286 { 2287 return (__m256)__builtin_lasx_xvfcvt_s_d ((v4f64)_1, (v4f64)_2); 2288 } 2289 2290 /* Assembly instruction format: xd, xj, xk. */ 2291 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2292 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2293 __m256 __lasx_xvfmin_s (__m256 _1, __m256 _2) 2294 { 2295 return (__m256)__builtin_lasx_xvfmin_s ((v8f32)_1, (v8f32)_2); 2296 } 2297 2298 /* Assembly instruction format: xd, xj, xk. */ 2299 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2300 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2301 __m256d __lasx_xvfmin_d (__m256d _1, __m256d _2) 2302 { 2303 return (__m256d)__builtin_lasx_xvfmin_d ((v4f64)_1, (v4f64)_2); 2304 } 2305 2306 /* Assembly instruction format: xd, xj, xk. */ 2307 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2308 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2309 __m256 __lasx_xvfmina_s (__m256 _1, __m256 _2) 2310 { 2311 return (__m256)__builtin_lasx_xvfmina_s ((v8f32)_1, (v8f32)_2); 2312 } 2313 2314 /* Assembly instruction format: xd, xj, xk. */ 2315 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2316 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2317 __m256d __lasx_xvfmina_d (__m256d _1, __m256d _2) 2318 { 2319 return (__m256d)__builtin_lasx_xvfmina_d ((v4f64)_1, (v4f64)_2); 2320 } 2321 2322 /* Assembly instruction format: xd, xj, xk. */ 2323 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2324 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2325 __m256 __lasx_xvfmax_s (__m256 _1, __m256 _2) 2326 { 2327 return (__m256)__builtin_lasx_xvfmax_s ((v8f32)_1, (v8f32)_2); 2328 } 2329 2330 /* Assembly instruction format: xd, xj, xk. */ 2331 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2332 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2333 __m256d __lasx_xvfmax_d (__m256d _1, __m256d _2) 2334 { 2335 return (__m256d)__builtin_lasx_xvfmax_d ((v4f64)_1, (v4f64)_2); 2336 } 2337 2338 /* Assembly instruction format: xd, xj, xk. */ 2339 /* Data types in instruction templates: V8SF, V8SF, V8SF. */ 2340 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2341 __m256 __lasx_xvfmaxa_s (__m256 _1, __m256 _2) 2342 { 2343 return (__m256)__builtin_lasx_xvfmaxa_s ((v8f32)_1, (v8f32)_2); 2344 } 2345 2346 /* Assembly instruction format: xd, xj, xk. */ 2347 /* Data types in instruction templates: V4DF, V4DF, V4DF. */ 2348 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2349 __m256d __lasx_xvfmaxa_d (__m256d _1, __m256d _2) 2350 { 2351 return (__m256d)__builtin_lasx_xvfmaxa_d ((v4f64)_1, (v4f64)_2); 2352 } 2353 2354 /* Assembly instruction format: xd, xj. */ 2355 /* Data types in instruction templates: V8SI, V8SF. */ 2356 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2357 __m256i __lasx_xvfclass_s (__m256 _1) 2358 { 2359 return (__m256i)__builtin_lasx_xvfclass_s ((v8f32)_1); 2360 } 2361 2362 /* Assembly instruction format: xd, xj. */ 2363 /* Data types in instruction templates: V4DI, V4DF. */ 2364 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2365 __m256i __lasx_xvfclass_d (__m256d _1) 2366 { 2367 return (__m256i)__builtin_lasx_xvfclass_d ((v4f64)_1); 2368 } 2369 2370 /* Assembly instruction format: xd, xj. */ 2371 /* Data types in instruction templates: V8SF, V8SF. */ 2372 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2373 __m256 __lasx_xvfsqrt_s (__m256 _1) 2374 { 2375 return (__m256)__builtin_lasx_xvfsqrt_s ((v8f32)_1); 2376 } 2377 2378 /* Assembly instruction format: xd, xj. */ 2379 /* Data types in instruction templates: V4DF, V4DF. */ 2380 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2381 __m256d __lasx_xvfsqrt_d (__m256d _1) 2382 { 2383 return (__m256d)__builtin_lasx_xvfsqrt_d ((v4f64)_1); 2384 } 2385 2386 /* Assembly instruction format: xd, xj. */ 2387 /* Data types in instruction templates: V8SF, V8SF. */ 2388 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2389 __m256 __lasx_xvfrecip_s (__m256 _1) 2390 { 2391 return (__m256)__builtin_lasx_xvfrecip_s ((v8f32)_1); 2392 } 2393 2394 /* Assembly instruction format: xd, xj. */ 2395 /* Data types in instruction templates: V4DF, V4DF. */ 2396 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2397 __m256d __lasx_xvfrecip_d (__m256d _1) 2398 { 2399 return (__m256d)__builtin_lasx_xvfrecip_d ((v4f64)_1); 2400 } 2401 2402 #if defined(__loongarch_frecipe) 2403 /* Assembly instruction format: xd, xj. */ 2404 /* Data types in instruction templates: V8SF, V8SF. */ 2405 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2406 __m256 __lasx_xvfrecipe_s (__m256 _1) 2407 { 2408 return (__m256)__builtin_lasx_xvfrecipe_s ((v8f32)_1); 2409 } 2410 2411 /* Assembly instruction format: xd, xj. */ 2412 /* Data types in instruction templates: V4DF, V4DF. */ 2413 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2414 __m256d __lasx_xvfrecipe_d (__m256d _1) 2415 { 2416 return (__m256d)__builtin_lasx_xvfrecipe_d ((v4f64)_1); 2417 } 2418 2419 /* Assembly instruction format: xd, xj. */ 2420 /* Data types in instruction templates: V8SF, V8SF. */ 2421 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2422 __m256 __lasx_xvfrsqrte_s (__m256 _1) 2423 { 2424 return (__m256)__builtin_lasx_xvfrsqrte_s ((v8f32)_1); 2425 } 2426 2427 /* Assembly instruction format: xd, xj. */ 2428 /* Data types in instruction templates: V4DF, V4DF. */ 2429 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2430 __m256d __lasx_xvfrsqrte_d (__m256d _1) 2431 { 2432 return (__m256d)__builtin_lasx_xvfrsqrte_d ((v4f64)_1); 2433 } 2434 #endif 2435 2436 /* Assembly instruction format: xd, xj. */ 2437 /* Data types in instruction templates: V8SF, V8SF. */ 2438 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2439 __m256 __lasx_xvfrint_s (__m256 _1) 2440 { 2441 return (__m256)__builtin_lasx_xvfrint_s ((v8f32)_1); 2442 } 2443 2444 /* Assembly instruction format: xd, xj. */ 2445 /* Data types in instruction templates: V4DF, V4DF. */ 2446 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2447 __m256d __lasx_xvfrint_d (__m256d _1) 2448 { 2449 return (__m256d)__builtin_lasx_xvfrint_d ((v4f64)_1); 2450 } 2451 2452 /* Assembly instruction format: xd, xj. */ 2453 /* Data types in instruction templates: V8SF, V8SF. */ 2454 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2455 __m256 __lasx_xvfrsqrt_s (__m256 _1) 2456 { 2457 return (__m256)__builtin_lasx_xvfrsqrt_s ((v8f32)_1); 2458 } 2459 2460 /* Assembly instruction format: xd, xj. */ 2461 /* Data types in instruction templates: V4DF, V4DF. */ 2462 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2463 __m256d __lasx_xvfrsqrt_d (__m256d _1) 2464 { 2465 return (__m256d)__builtin_lasx_xvfrsqrt_d ((v4f64)_1); 2466 } 2467 2468 /* Assembly instruction format: xd, xj. */ 2469 /* Data types in instruction templates: V8SF, V8SF. */ 2470 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2471 __m256 __lasx_xvflogb_s (__m256 _1) 2472 { 2473 return (__m256)__builtin_lasx_xvflogb_s ((v8f32)_1); 2474 } 2475 2476 /* Assembly instruction format: xd, xj. */ 2477 /* Data types in instruction templates: V4DF, V4DF. */ 2478 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2479 __m256d __lasx_xvflogb_d (__m256d _1) 2480 { 2481 return (__m256d)__builtin_lasx_xvflogb_d ((v4f64)_1); 2482 } 2483 2484 /* Assembly instruction format: xd, xj. */ 2485 /* Data types in instruction templates: V8SF, V16HI. */ 2486 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2487 __m256 __lasx_xvfcvth_s_h (__m256i _1) 2488 { 2489 return (__m256)__builtin_lasx_xvfcvth_s_h ((v16i16)_1); 2490 } 2491 2492 /* Assembly instruction format: xd, xj. */ 2493 /* Data types in instruction templates: V4DF, V8SF. */ 2494 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2495 __m256d __lasx_xvfcvth_d_s (__m256 _1) 2496 { 2497 return (__m256d)__builtin_lasx_xvfcvth_d_s ((v8f32)_1); 2498 } 2499 2500 /* Assembly instruction format: xd, xj. */ 2501 /* Data types in instruction templates: V8SF, V16HI. */ 2502 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2503 __m256 __lasx_xvfcvtl_s_h (__m256i _1) 2504 { 2505 return (__m256)__builtin_lasx_xvfcvtl_s_h ((v16i16)_1); 2506 } 2507 2508 /* Assembly instruction format: xd, xj. */ 2509 /* Data types in instruction templates: V4DF, V8SF. */ 2510 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2511 __m256d __lasx_xvfcvtl_d_s (__m256 _1) 2512 { 2513 return (__m256d)__builtin_lasx_xvfcvtl_d_s ((v8f32)_1); 2514 } 2515 2516 /* Assembly instruction format: xd, xj. */ 2517 /* Data types in instruction templates: V8SI, V8SF. */ 2518 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2519 __m256i __lasx_xvftint_w_s (__m256 _1) 2520 { 2521 return (__m256i)__builtin_lasx_xvftint_w_s ((v8f32)_1); 2522 } 2523 2524 /* Assembly instruction format: xd, xj. */ 2525 /* Data types in instruction templates: V4DI, V4DF. */ 2526 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2527 __m256i __lasx_xvftint_l_d (__m256d _1) 2528 { 2529 return (__m256i)__builtin_lasx_xvftint_l_d ((v4f64)_1); 2530 } 2531 2532 /* Assembly instruction format: xd, xj. */ 2533 /* Data types in instruction templates: UV8SI, V8SF. */ 2534 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2535 __m256i __lasx_xvftint_wu_s (__m256 _1) 2536 { 2537 return (__m256i)__builtin_lasx_xvftint_wu_s ((v8f32)_1); 2538 } 2539 2540 /* Assembly instruction format: xd, xj. */ 2541 /* Data types in instruction templates: UV4DI, V4DF. */ 2542 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2543 __m256i __lasx_xvftint_lu_d (__m256d _1) 2544 { 2545 return (__m256i)__builtin_lasx_xvftint_lu_d ((v4f64)_1); 2546 } 2547 2548 /* Assembly instruction format: xd, xj. */ 2549 /* Data types in instruction templates: V8SI, V8SF. */ 2550 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2551 __m256i __lasx_xvftintrz_w_s (__m256 _1) 2552 { 2553 return (__m256i)__builtin_lasx_xvftintrz_w_s ((v8f32)_1); 2554 } 2555 2556 /* Assembly instruction format: xd, xj. */ 2557 /* Data types in instruction templates: V4DI, V4DF. */ 2558 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2559 __m256i __lasx_xvftintrz_l_d (__m256d _1) 2560 { 2561 return (__m256i)__builtin_lasx_xvftintrz_l_d ((v4f64)_1); 2562 } 2563 2564 /* Assembly instruction format: xd, xj. */ 2565 /* Data types in instruction templates: UV8SI, V8SF. */ 2566 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2567 __m256i __lasx_xvftintrz_wu_s (__m256 _1) 2568 { 2569 return (__m256i)__builtin_lasx_xvftintrz_wu_s ((v8f32)_1); 2570 } 2571 2572 /* Assembly instruction format: xd, xj. */ 2573 /* Data types in instruction templates: UV4DI, V4DF. */ 2574 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2575 __m256i __lasx_xvftintrz_lu_d (__m256d _1) 2576 { 2577 return (__m256i)__builtin_lasx_xvftintrz_lu_d ((v4f64)_1); 2578 } 2579 2580 /* Assembly instruction format: xd, xj. */ 2581 /* Data types in instruction templates: V8SF, V8SI. */ 2582 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2583 __m256 __lasx_xvffint_s_w (__m256i _1) 2584 { 2585 return (__m256)__builtin_lasx_xvffint_s_w ((v8i32)_1); 2586 } 2587 2588 /* Assembly instruction format: xd, xj. */ 2589 /* Data types in instruction templates: V4DF, V4DI. */ 2590 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2591 __m256d __lasx_xvffint_d_l (__m256i _1) 2592 { 2593 return (__m256d)__builtin_lasx_xvffint_d_l ((v4i64)_1); 2594 } 2595 2596 /* Assembly instruction format: xd, xj. */ 2597 /* Data types in instruction templates: V8SF, UV8SI. */ 2598 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2599 __m256 __lasx_xvffint_s_wu (__m256i _1) 2600 { 2601 return (__m256)__builtin_lasx_xvffint_s_wu ((v8u32)_1); 2602 } 2603 2604 /* Assembly instruction format: xd, xj. */ 2605 /* Data types in instruction templates: V4DF, UV4DI. */ 2606 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2607 __m256d __lasx_xvffint_d_lu (__m256i _1) 2608 { 2609 return (__m256d)__builtin_lasx_xvffint_d_lu ((v4u64)_1); 2610 } 2611 2612 /* Assembly instruction format: xd, xj, rk. */ 2613 /* Data types in instruction templates: V32QI, V32QI, SI. */ 2614 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2615 __m256i __lasx_xvreplve_b (__m256i _1, int _2) 2616 { 2617 return (__m256i)__builtin_lasx_xvreplve_b ((v32i8)_1, (int)_2); 2618 } 2619 2620 /* Assembly instruction format: xd, xj, rk. */ 2621 /* Data types in instruction templates: V16HI, V16HI, SI. */ 2622 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2623 __m256i __lasx_xvreplve_h (__m256i _1, int _2) 2624 { 2625 return (__m256i)__builtin_lasx_xvreplve_h ((v16i16)_1, (int)_2); 2626 } 2627 2628 /* Assembly instruction format: xd, xj, rk. */ 2629 /* Data types in instruction templates: V8SI, V8SI, SI. */ 2630 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2631 __m256i __lasx_xvreplve_w (__m256i _1, int _2) 2632 { 2633 return (__m256i)__builtin_lasx_xvreplve_w ((v8i32)_1, (int)_2); 2634 } 2635 2636 /* Assembly instruction format: xd, xj, rk. */ 2637 /* Data types in instruction templates: V4DI, V4DI, SI. */ 2638 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2639 __m256i __lasx_xvreplve_d (__m256i _1, int _2) 2640 { 2641 return (__m256i)__builtin_lasx_xvreplve_d ((v4i64)_1, (int)_2); 2642 } 2643 2644 /* Assembly instruction format: xd, xj, ui8. */ 2645 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 2646 #define __lasx_xvpermi_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 2647 ((__m256i)__builtin_lasx_xvpermi_w ((v8i32)(_1), (v8i32)(_2), (_3))) 2648 2649 /* Assembly instruction format: xd, xj, xk. */ 2650 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 2651 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2652 __m256i __lasx_xvandn_v (__m256i _1, __m256i _2) 2653 { 2654 return (__m256i)__builtin_lasx_xvandn_v ((v32u8)_1, (v32u8)_2); 2655 } 2656 2657 /* Assembly instruction format: xd, xj. */ 2658 /* Data types in instruction templates: V32QI, V32QI. */ 2659 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2660 __m256i __lasx_xvneg_b (__m256i _1) 2661 { 2662 return (__m256i)__builtin_lasx_xvneg_b ((v32i8)_1); 2663 } 2664 2665 /* Assembly instruction format: xd, xj. */ 2666 /* Data types in instruction templates: V16HI, V16HI. */ 2667 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2668 __m256i __lasx_xvneg_h (__m256i _1) 2669 { 2670 return (__m256i)__builtin_lasx_xvneg_h ((v16i16)_1); 2671 } 2672 2673 /* Assembly instruction format: xd, xj. */ 2674 /* Data types in instruction templates: V8SI, V8SI. */ 2675 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2676 __m256i __lasx_xvneg_w (__m256i _1) 2677 { 2678 return (__m256i)__builtin_lasx_xvneg_w ((v8i32)_1); 2679 } 2680 2681 /* Assembly instruction format: xd, xj. */ 2682 /* Data types in instruction templates: V4DI, V4DI. */ 2683 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2684 __m256i __lasx_xvneg_d (__m256i _1) 2685 { 2686 return (__m256i)__builtin_lasx_xvneg_d ((v4i64)_1); 2687 } 2688 2689 /* Assembly instruction format: xd, xj, xk. */ 2690 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 2691 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2692 __m256i __lasx_xvmuh_b (__m256i _1, __m256i _2) 2693 { 2694 return (__m256i)__builtin_lasx_xvmuh_b ((v32i8)_1, (v32i8)_2); 2695 } 2696 2697 /* Assembly instruction format: xd, xj, xk. */ 2698 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 2699 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2700 __m256i __lasx_xvmuh_h (__m256i _1, __m256i _2) 2701 { 2702 return (__m256i)__builtin_lasx_xvmuh_h ((v16i16)_1, (v16i16)_2); 2703 } 2704 2705 /* Assembly instruction format: xd, xj, xk. */ 2706 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 2707 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2708 __m256i __lasx_xvmuh_w (__m256i _1, __m256i _2) 2709 { 2710 return (__m256i)__builtin_lasx_xvmuh_w ((v8i32)_1, (v8i32)_2); 2711 } 2712 2713 /* Assembly instruction format: xd, xj, xk. */ 2714 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 2715 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2716 __m256i __lasx_xvmuh_d (__m256i _1, __m256i _2) 2717 { 2718 return (__m256i)__builtin_lasx_xvmuh_d ((v4i64)_1, (v4i64)_2); 2719 } 2720 2721 /* Assembly instruction format: xd, xj, xk. */ 2722 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 2723 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2724 __m256i __lasx_xvmuh_bu (__m256i _1, __m256i _2) 2725 { 2726 return (__m256i)__builtin_lasx_xvmuh_bu ((v32u8)_1, (v32u8)_2); 2727 } 2728 2729 /* Assembly instruction format: xd, xj, xk. */ 2730 /* Data types in instruction templates: UV16HI, UV16HI, UV16HI. */ 2731 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2732 __m256i __lasx_xvmuh_hu (__m256i _1, __m256i _2) 2733 { 2734 return (__m256i)__builtin_lasx_xvmuh_hu ((v16u16)_1, (v16u16)_2); 2735 } 2736 2737 /* Assembly instruction format: xd, xj, xk. */ 2738 /* Data types in instruction templates: UV8SI, UV8SI, UV8SI. */ 2739 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2740 __m256i __lasx_xvmuh_wu (__m256i _1, __m256i _2) 2741 { 2742 return (__m256i)__builtin_lasx_xvmuh_wu ((v8u32)_1, (v8u32)_2); 2743 } 2744 2745 /* Assembly instruction format: xd, xj, xk. */ 2746 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 2747 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2748 __m256i __lasx_xvmuh_du (__m256i _1, __m256i _2) 2749 { 2750 return (__m256i)__builtin_lasx_xvmuh_du ((v4u64)_1, (v4u64)_2); 2751 } 2752 2753 /* Assembly instruction format: xd, xj, ui3. */ 2754 /* Data types in instruction templates: V16HI, V32QI, UQI. */ 2755 #define __lasx_xvsllwil_h_b(/*__m256i*/ _1, /*ui3*/ _2) \ 2756 ((__m256i)__builtin_lasx_xvsllwil_h_b ((v32i8)(_1), (_2))) 2757 2758 /* Assembly instruction format: xd, xj, ui4. */ 2759 /* Data types in instruction templates: V8SI, V16HI, UQI. */ 2760 #define __lasx_xvsllwil_w_h(/*__m256i*/ _1, /*ui4*/ _2) \ 2761 ((__m256i)__builtin_lasx_xvsllwil_w_h ((v16i16)(_1), (_2))) 2762 2763 /* Assembly instruction format: xd, xj, ui5. */ 2764 /* Data types in instruction templates: V4DI, V8SI, UQI. */ 2765 #define __lasx_xvsllwil_d_w(/*__m256i*/ _1, /*ui5*/ _2) \ 2766 ((__m256i)__builtin_lasx_xvsllwil_d_w ((v8i32)(_1), (_2))) 2767 2768 /* Assembly instruction format: xd, xj, ui3. */ 2769 /* Data types in instruction templates: UV16HI, UV32QI, UQI. */ 2770 #define __lasx_xvsllwil_hu_bu(/*__m256i*/ _1, /*ui3*/ _2) \ 2771 ((__m256i)__builtin_lasx_xvsllwil_hu_bu ((v32u8)(_1), (_2))) 2772 2773 /* Assembly instruction format: xd, xj, ui4. */ 2774 /* Data types in instruction templates: UV8SI, UV16HI, UQI. */ 2775 #define __lasx_xvsllwil_wu_hu(/*__m256i*/ _1, /*ui4*/ _2) \ 2776 ((__m256i)__builtin_lasx_xvsllwil_wu_hu ((v16u16)(_1), (_2))) 2777 2778 /* Assembly instruction format: xd, xj, ui5. */ 2779 /* Data types in instruction templates: UV4DI, UV8SI, UQI. */ 2780 #define __lasx_xvsllwil_du_wu(/*__m256i*/ _1, /*ui5*/ _2) \ 2781 ((__m256i)__builtin_lasx_xvsllwil_du_wu ((v8u32)(_1), (_2))) 2782 2783 /* Assembly instruction format: xd, xj, xk. */ 2784 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 2785 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2786 __m256i __lasx_xvsran_b_h (__m256i _1, __m256i _2) 2787 { 2788 return (__m256i)__builtin_lasx_xvsran_b_h ((v16i16)_1, (v16i16)_2); 2789 } 2790 2791 /* Assembly instruction format: xd, xj, xk. */ 2792 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 2793 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2794 __m256i __lasx_xvsran_h_w (__m256i _1, __m256i _2) 2795 { 2796 return (__m256i)__builtin_lasx_xvsran_h_w ((v8i32)_1, (v8i32)_2); 2797 } 2798 2799 /* Assembly instruction format: xd, xj, xk. */ 2800 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 2801 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2802 __m256i __lasx_xvsran_w_d (__m256i _1, __m256i _2) 2803 { 2804 return (__m256i)__builtin_lasx_xvsran_w_d ((v4i64)_1, (v4i64)_2); 2805 } 2806 2807 /* Assembly instruction format: xd, xj, xk. */ 2808 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 2809 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2810 __m256i __lasx_xvssran_b_h (__m256i _1, __m256i _2) 2811 { 2812 return (__m256i)__builtin_lasx_xvssran_b_h ((v16i16)_1, (v16i16)_2); 2813 } 2814 2815 /* Assembly instruction format: xd, xj, xk. */ 2816 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 2817 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2818 __m256i __lasx_xvssran_h_w (__m256i _1, __m256i _2) 2819 { 2820 return (__m256i)__builtin_lasx_xvssran_h_w ((v8i32)_1, (v8i32)_2); 2821 } 2822 2823 /* Assembly instruction format: xd, xj, xk. */ 2824 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 2825 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2826 __m256i __lasx_xvssran_w_d (__m256i _1, __m256i _2) 2827 { 2828 return (__m256i)__builtin_lasx_xvssran_w_d ((v4i64)_1, (v4i64)_2); 2829 } 2830 2831 /* Assembly instruction format: xd, xj, xk. */ 2832 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */ 2833 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2834 __m256i __lasx_xvssran_bu_h (__m256i _1, __m256i _2) 2835 { 2836 return (__m256i)__builtin_lasx_xvssran_bu_h ((v16u16)_1, (v16u16)_2); 2837 } 2838 2839 /* Assembly instruction format: xd, xj, xk. */ 2840 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */ 2841 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2842 __m256i __lasx_xvssran_hu_w (__m256i _1, __m256i _2) 2843 { 2844 return (__m256i)__builtin_lasx_xvssran_hu_w ((v8u32)_1, (v8u32)_2); 2845 } 2846 2847 /* Assembly instruction format: xd, xj, xk. */ 2848 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */ 2849 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2850 __m256i __lasx_xvssran_wu_d (__m256i _1, __m256i _2) 2851 { 2852 return (__m256i)__builtin_lasx_xvssran_wu_d ((v4u64)_1, (v4u64)_2); 2853 } 2854 2855 /* Assembly instruction format: xd, xj, xk. */ 2856 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 2857 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2858 __m256i __lasx_xvsrarn_b_h (__m256i _1, __m256i _2) 2859 { 2860 return (__m256i)__builtin_lasx_xvsrarn_b_h ((v16i16)_1, (v16i16)_2); 2861 } 2862 2863 /* Assembly instruction format: xd, xj, xk. */ 2864 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 2865 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2866 __m256i __lasx_xvsrarn_h_w (__m256i _1, __m256i _2) 2867 { 2868 return (__m256i)__builtin_lasx_xvsrarn_h_w ((v8i32)_1, (v8i32)_2); 2869 } 2870 2871 /* Assembly instruction format: xd, xj, xk. */ 2872 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 2873 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2874 __m256i __lasx_xvsrarn_w_d (__m256i _1, __m256i _2) 2875 { 2876 return (__m256i)__builtin_lasx_xvsrarn_w_d ((v4i64)_1, (v4i64)_2); 2877 } 2878 2879 /* Assembly instruction format: xd, xj, xk. */ 2880 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 2881 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2882 __m256i __lasx_xvssrarn_b_h (__m256i _1, __m256i _2) 2883 { 2884 return (__m256i)__builtin_lasx_xvssrarn_b_h ((v16i16)_1, (v16i16)_2); 2885 } 2886 2887 /* Assembly instruction format: xd, xj, xk. */ 2888 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 2889 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2890 __m256i __lasx_xvssrarn_h_w (__m256i _1, __m256i _2) 2891 { 2892 return (__m256i)__builtin_lasx_xvssrarn_h_w ((v8i32)_1, (v8i32)_2); 2893 } 2894 2895 /* Assembly instruction format: xd, xj, xk. */ 2896 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 2897 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2898 __m256i __lasx_xvssrarn_w_d (__m256i _1, __m256i _2) 2899 { 2900 return (__m256i)__builtin_lasx_xvssrarn_w_d ((v4i64)_1, (v4i64)_2); 2901 } 2902 2903 /* Assembly instruction format: xd, xj, xk. */ 2904 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */ 2905 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2906 __m256i __lasx_xvssrarn_bu_h (__m256i _1, __m256i _2) 2907 { 2908 return (__m256i)__builtin_lasx_xvssrarn_bu_h ((v16u16)_1, (v16u16)_2); 2909 } 2910 2911 /* Assembly instruction format: xd, xj, xk. */ 2912 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */ 2913 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2914 __m256i __lasx_xvssrarn_hu_w (__m256i _1, __m256i _2) 2915 { 2916 return (__m256i)__builtin_lasx_xvssrarn_hu_w ((v8u32)_1, (v8u32)_2); 2917 } 2918 2919 /* Assembly instruction format: xd, xj, xk. */ 2920 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */ 2921 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2922 __m256i __lasx_xvssrarn_wu_d (__m256i _1, __m256i _2) 2923 { 2924 return (__m256i)__builtin_lasx_xvssrarn_wu_d ((v4u64)_1, (v4u64)_2); 2925 } 2926 2927 /* Assembly instruction format: xd, xj, xk. */ 2928 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 2929 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2930 __m256i __lasx_xvsrln_b_h (__m256i _1, __m256i _2) 2931 { 2932 return (__m256i)__builtin_lasx_xvsrln_b_h ((v16i16)_1, (v16i16)_2); 2933 } 2934 2935 /* Assembly instruction format: xd, xj, xk. */ 2936 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 2937 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2938 __m256i __lasx_xvsrln_h_w (__m256i _1, __m256i _2) 2939 { 2940 return (__m256i)__builtin_lasx_xvsrln_h_w ((v8i32)_1, (v8i32)_2); 2941 } 2942 2943 /* Assembly instruction format: xd, xj, xk. */ 2944 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 2945 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2946 __m256i __lasx_xvsrln_w_d (__m256i _1, __m256i _2) 2947 { 2948 return (__m256i)__builtin_lasx_xvsrln_w_d ((v4i64)_1, (v4i64)_2); 2949 } 2950 2951 /* Assembly instruction format: xd, xj, xk. */ 2952 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */ 2953 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2954 __m256i __lasx_xvssrln_bu_h (__m256i _1, __m256i _2) 2955 { 2956 return (__m256i)__builtin_lasx_xvssrln_bu_h ((v16u16)_1, (v16u16)_2); 2957 } 2958 2959 /* Assembly instruction format: xd, xj, xk. */ 2960 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */ 2961 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2962 __m256i __lasx_xvssrln_hu_w (__m256i _1, __m256i _2) 2963 { 2964 return (__m256i)__builtin_lasx_xvssrln_hu_w ((v8u32)_1, (v8u32)_2); 2965 } 2966 2967 /* Assembly instruction format: xd, xj, xk. */ 2968 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */ 2969 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2970 __m256i __lasx_xvssrln_wu_d (__m256i _1, __m256i _2) 2971 { 2972 return (__m256i)__builtin_lasx_xvssrln_wu_d ((v4u64)_1, (v4u64)_2); 2973 } 2974 2975 /* Assembly instruction format: xd, xj, xk. */ 2976 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 2977 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2978 __m256i __lasx_xvsrlrn_b_h (__m256i _1, __m256i _2) 2979 { 2980 return (__m256i)__builtin_lasx_xvsrlrn_b_h ((v16i16)_1, (v16i16)_2); 2981 } 2982 2983 /* Assembly instruction format: xd, xj, xk. */ 2984 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 2985 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2986 __m256i __lasx_xvsrlrn_h_w (__m256i _1, __m256i _2) 2987 { 2988 return (__m256i)__builtin_lasx_xvsrlrn_h_w ((v8i32)_1, (v8i32)_2); 2989 } 2990 2991 /* Assembly instruction format: xd, xj, xk. */ 2992 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 2993 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 2994 __m256i __lasx_xvsrlrn_w_d (__m256i _1, __m256i _2) 2995 { 2996 return (__m256i)__builtin_lasx_xvsrlrn_w_d ((v4i64)_1, (v4i64)_2); 2997 } 2998 2999 /* Assembly instruction format: xd, xj, xk. */ 3000 /* Data types in instruction templates: UV32QI, UV16HI, UV16HI. */ 3001 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3002 __m256i __lasx_xvssrlrn_bu_h (__m256i _1, __m256i _2) 3003 { 3004 return (__m256i)__builtin_lasx_xvssrlrn_bu_h ((v16u16)_1, (v16u16)_2); 3005 } 3006 3007 /* Assembly instruction format: xd, xj, xk. */ 3008 /* Data types in instruction templates: UV16HI, UV8SI, UV8SI. */ 3009 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3010 __m256i __lasx_xvssrlrn_hu_w (__m256i _1, __m256i _2) 3011 { 3012 return (__m256i)__builtin_lasx_xvssrlrn_hu_w ((v8u32)_1, (v8u32)_2); 3013 } 3014 3015 /* Assembly instruction format: xd, xj, xk. */ 3016 /* Data types in instruction templates: UV8SI, UV4DI, UV4DI. */ 3017 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3018 __m256i __lasx_xvssrlrn_wu_d (__m256i _1, __m256i _2) 3019 { 3020 return (__m256i)__builtin_lasx_xvssrlrn_wu_d ((v4u64)_1, (v4u64)_2); 3021 } 3022 3023 /* Assembly instruction format: xd, xj, ui5. */ 3024 /* Data types in instruction templates: V32QI, V32QI, V32QI, UQI. */ 3025 #define __lasx_xvfrstpi_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 3026 ((__m256i)__builtin_lasx_xvfrstpi_b ((v32i8)(_1), (v32i8)(_2), (_3))) 3027 3028 /* Assembly instruction format: xd, xj, ui5. */ 3029 /* Data types in instruction templates: V16HI, V16HI, V16HI, UQI. */ 3030 #define __lasx_xvfrstpi_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 3031 ((__m256i)__builtin_lasx_xvfrstpi_h ((v16i16)(_1), (v16i16)(_2), (_3))) 3032 3033 /* Assembly instruction format: xd, xj, xk. */ 3034 /* Data types in instruction templates: V32QI, V32QI, V32QI, V32QI. */ 3035 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3036 __m256i __lasx_xvfrstp_b (__m256i _1, __m256i _2, __m256i _3) 3037 { 3038 return (__m256i)__builtin_lasx_xvfrstp_b ((v32i8)_1, (v32i8)_2, (v32i8)_3); 3039 } 3040 3041 /* Assembly instruction format: xd, xj, xk. */ 3042 /* Data types in instruction templates: V16HI, V16HI, V16HI, V16HI. */ 3043 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3044 __m256i __lasx_xvfrstp_h (__m256i _1, __m256i _2, __m256i _3) 3045 { 3046 return (__m256i)__builtin_lasx_xvfrstp_h ((v16i16)_1, (v16i16)_2, (v16i16)_3); 3047 } 3048 3049 /* Assembly instruction format: xd, xj, ui8. */ 3050 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 3051 #define __lasx_xvshuf4i_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 3052 ((__m256i)__builtin_lasx_xvshuf4i_d ((v4i64)(_1), (v4i64)(_2), (_3))) 3053 3054 /* Assembly instruction format: xd, xj, ui5. */ 3055 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 3056 #define __lasx_xvbsrl_v(/*__m256i*/ _1, /*ui5*/ _2) \ 3057 ((__m256i)__builtin_lasx_xvbsrl_v ((v32i8)(_1), (_2))) 3058 3059 /* Assembly instruction format: xd, xj, ui5. */ 3060 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 3061 #define __lasx_xvbsll_v(/*__m256i*/ _1, /*ui5*/ _2) \ 3062 ((__m256i)__builtin_lasx_xvbsll_v ((v32i8)(_1), (_2))) 3063 3064 /* Assembly instruction format: xd, xj, ui8. */ 3065 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 3066 #define __lasx_xvextrins_b(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 3067 ((__m256i)__builtin_lasx_xvextrins_b ((v32i8)(_1), (v32i8)(_2), (_3))) 3068 3069 /* Assembly instruction format: xd, xj, ui8. */ 3070 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 3071 #define __lasx_xvextrins_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 3072 ((__m256i)__builtin_lasx_xvextrins_h ((v16i16)(_1), (v16i16)(_2), (_3))) 3073 3074 /* Assembly instruction format: xd, xj, ui8. */ 3075 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 3076 #define __lasx_xvextrins_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 3077 ((__m256i)__builtin_lasx_xvextrins_w ((v8i32)(_1), (v8i32)(_2), (_3))) 3078 3079 /* Assembly instruction format: xd, xj, ui8. */ 3080 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 3081 #define __lasx_xvextrins_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 3082 ((__m256i)__builtin_lasx_xvextrins_d ((v4i64)(_1), (v4i64)(_2), (_3))) 3083 3084 /* Assembly instruction format: xd, xj. */ 3085 /* Data types in instruction templates: V32QI, V32QI. */ 3086 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3087 __m256i __lasx_xvmskltz_b (__m256i _1) 3088 { 3089 return (__m256i)__builtin_lasx_xvmskltz_b ((v32i8)_1); 3090 } 3091 3092 /* Assembly instruction format: xd, xj. */ 3093 /* Data types in instruction templates: V16HI, V16HI. */ 3094 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3095 __m256i __lasx_xvmskltz_h (__m256i _1) 3096 { 3097 return (__m256i)__builtin_lasx_xvmskltz_h ((v16i16)_1); 3098 } 3099 3100 /* Assembly instruction format: xd, xj. */ 3101 /* Data types in instruction templates: V8SI, V8SI. */ 3102 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3103 __m256i __lasx_xvmskltz_w (__m256i _1) 3104 { 3105 return (__m256i)__builtin_lasx_xvmskltz_w ((v8i32)_1); 3106 } 3107 3108 /* Assembly instruction format: xd, xj. */ 3109 /* Data types in instruction templates: V4DI, V4DI. */ 3110 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3111 __m256i __lasx_xvmskltz_d (__m256i _1) 3112 { 3113 return (__m256i)__builtin_lasx_xvmskltz_d ((v4i64)_1); 3114 } 3115 3116 /* Assembly instruction format: xd, xj, xk. */ 3117 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 3118 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3119 __m256i __lasx_xvsigncov_b (__m256i _1, __m256i _2) 3120 { 3121 return (__m256i)__builtin_lasx_xvsigncov_b ((v32i8)_1, (v32i8)_2); 3122 } 3123 3124 /* Assembly instruction format: xd, xj, xk. */ 3125 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 3126 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3127 __m256i __lasx_xvsigncov_h (__m256i _1, __m256i _2) 3128 { 3129 return (__m256i)__builtin_lasx_xvsigncov_h ((v16i16)_1, (v16i16)_2); 3130 } 3131 3132 /* Assembly instruction format: xd, xj, xk. */ 3133 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 3134 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3135 __m256i __lasx_xvsigncov_w (__m256i _1, __m256i _2) 3136 { 3137 return (__m256i)__builtin_lasx_xvsigncov_w ((v8i32)_1, (v8i32)_2); 3138 } 3139 3140 /* Assembly instruction format: xd, xj, xk. */ 3141 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 3142 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3143 __m256i __lasx_xvsigncov_d (__m256i _1, __m256i _2) 3144 { 3145 return (__m256i)__builtin_lasx_xvsigncov_d ((v4i64)_1, (v4i64)_2); 3146 } 3147 3148 /* Assembly instruction format: xd, xj, xk, xa. */ 3149 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */ 3150 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3151 __m256 __lasx_xvfmadd_s (__m256 _1, __m256 _2, __m256 _3) 3152 { 3153 return (__m256)__builtin_lasx_xvfmadd_s ((v8f32)_1, (v8f32)_2, (v8f32)_3); 3154 } 3155 3156 /* Assembly instruction format: xd, xj, xk, xa. */ 3157 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */ 3158 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3159 __m256d __lasx_xvfmadd_d (__m256d _1, __m256d _2, __m256d _3) 3160 { 3161 return (__m256d)__builtin_lasx_xvfmadd_d ((v4f64)_1, (v4f64)_2, (v4f64)_3); 3162 } 3163 3164 /* Assembly instruction format: xd, xj, xk, xa. */ 3165 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */ 3166 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3167 __m256 __lasx_xvfmsub_s (__m256 _1, __m256 _2, __m256 _3) 3168 { 3169 return (__m256)__builtin_lasx_xvfmsub_s ((v8f32)_1, (v8f32)_2, (v8f32)_3); 3170 } 3171 3172 /* Assembly instruction format: xd, xj, xk, xa. */ 3173 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */ 3174 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3175 __m256d __lasx_xvfmsub_d (__m256d _1, __m256d _2, __m256d _3) 3176 { 3177 return (__m256d)__builtin_lasx_xvfmsub_d ((v4f64)_1, (v4f64)_2, (v4f64)_3); 3178 } 3179 3180 /* Assembly instruction format: xd, xj, xk, xa. */ 3181 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */ 3182 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3183 __m256 __lasx_xvfnmadd_s (__m256 _1, __m256 _2, __m256 _3) 3184 { 3185 return (__m256)__builtin_lasx_xvfnmadd_s ((v8f32)_1, (v8f32)_2, (v8f32)_3); 3186 } 3187 3188 /* Assembly instruction format: xd, xj, xk, xa. */ 3189 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */ 3190 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3191 __m256d __lasx_xvfnmadd_d (__m256d _1, __m256d _2, __m256d _3) 3192 { 3193 return (__m256d)__builtin_lasx_xvfnmadd_d ((v4f64)_1, (v4f64)_2, (v4f64)_3); 3194 } 3195 3196 /* Assembly instruction format: xd, xj, xk, xa. */ 3197 /* Data types in instruction templates: V8SF, V8SF, V8SF, V8SF. */ 3198 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3199 __m256 __lasx_xvfnmsub_s (__m256 _1, __m256 _2, __m256 _3) 3200 { 3201 return (__m256)__builtin_lasx_xvfnmsub_s ((v8f32)_1, (v8f32)_2, (v8f32)_3); 3202 } 3203 3204 /* Assembly instruction format: xd, xj, xk, xa. */ 3205 /* Data types in instruction templates: V4DF, V4DF, V4DF, V4DF. */ 3206 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3207 __m256d __lasx_xvfnmsub_d (__m256d _1, __m256d _2, __m256d _3) 3208 { 3209 return (__m256d)__builtin_lasx_xvfnmsub_d ((v4f64)_1, (v4f64)_2, (v4f64)_3); 3210 } 3211 3212 /* Assembly instruction format: xd, xj. */ 3213 /* Data types in instruction templates: V8SI, V8SF. */ 3214 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3215 __m256i __lasx_xvftintrne_w_s (__m256 _1) 3216 { 3217 return (__m256i)__builtin_lasx_xvftintrne_w_s ((v8f32)_1); 3218 } 3219 3220 /* Assembly instruction format: xd, xj. */ 3221 /* Data types in instruction templates: V4DI, V4DF. */ 3222 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3223 __m256i __lasx_xvftintrne_l_d (__m256d _1) 3224 { 3225 return (__m256i)__builtin_lasx_xvftintrne_l_d ((v4f64)_1); 3226 } 3227 3228 /* Assembly instruction format: xd, xj. */ 3229 /* Data types in instruction templates: V8SI, V8SF. */ 3230 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3231 __m256i __lasx_xvftintrp_w_s (__m256 _1) 3232 { 3233 return (__m256i)__builtin_lasx_xvftintrp_w_s ((v8f32)_1); 3234 } 3235 3236 /* Assembly instruction format: xd, xj. */ 3237 /* Data types in instruction templates: V4DI, V4DF. */ 3238 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3239 __m256i __lasx_xvftintrp_l_d (__m256d _1) 3240 { 3241 return (__m256i)__builtin_lasx_xvftintrp_l_d ((v4f64)_1); 3242 } 3243 3244 /* Assembly instruction format: xd, xj. */ 3245 /* Data types in instruction templates: V8SI, V8SF. */ 3246 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3247 __m256i __lasx_xvftintrm_w_s (__m256 _1) 3248 { 3249 return (__m256i)__builtin_lasx_xvftintrm_w_s ((v8f32)_1); 3250 } 3251 3252 /* Assembly instruction format: xd, xj. */ 3253 /* Data types in instruction templates: V4DI, V4DF. */ 3254 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3255 __m256i __lasx_xvftintrm_l_d (__m256d _1) 3256 { 3257 return (__m256i)__builtin_lasx_xvftintrm_l_d ((v4f64)_1); 3258 } 3259 3260 /* Assembly instruction format: xd, xj, xk. */ 3261 /* Data types in instruction templates: V8SI, V4DF, V4DF. */ 3262 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3263 __m256i __lasx_xvftint_w_d (__m256d _1, __m256d _2) 3264 { 3265 return (__m256i)__builtin_lasx_xvftint_w_d ((v4f64)_1, (v4f64)_2); 3266 } 3267 3268 /* Assembly instruction format: xd, xj, xk. */ 3269 /* Data types in instruction templates: V8SF, V4DI, V4DI. */ 3270 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3271 __m256 __lasx_xvffint_s_l (__m256i _1, __m256i _2) 3272 { 3273 return (__m256)__builtin_lasx_xvffint_s_l ((v4i64)_1, (v4i64)_2); 3274 } 3275 3276 /* Assembly instruction format: xd, xj, xk. */ 3277 /* Data types in instruction templates: V8SI, V4DF, V4DF. */ 3278 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3279 __m256i __lasx_xvftintrz_w_d (__m256d _1, __m256d _2) 3280 { 3281 return (__m256i)__builtin_lasx_xvftintrz_w_d ((v4f64)_1, (v4f64)_2); 3282 } 3283 3284 /* Assembly instruction format: xd, xj, xk. */ 3285 /* Data types in instruction templates: V8SI, V4DF, V4DF. */ 3286 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3287 __m256i __lasx_xvftintrp_w_d (__m256d _1, __m256d _2) 3288 { 3289 return (__m256i)__builtin_lasx_xvftintrp_w_d ((v4f64)_1, (v4f64)_2); 3290 } 3291 3292 /* Assembly instruction format: xd, xj, xk. */ 3293 /* Data types in instruction templates: V8SI, V4DF, V4DF. */ 3294 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3295 __m256i __lasx_xvftintrm_w_d (__m256d _1, __m256d _2) 3296 { 3297 return (__m256i)__builtin_lasx_xvftintrm_w_d ((v4f64)_1, (v4f64)_2); 3298 } 3299 3300 /* Assembly instruction format: xd, xj, xk. */ 3301 /* Data types in instruction templates: V8SI, V4DF, V4DF. */ 3302 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3303 __m256i __lasx_xvftintrne_w_d (__m256d _1, __m256d _2) 3304 { 3305 return (__m256i)__builtin_lasx_xvftintrne_w_d ((v4f64)_1, (v4f64)_2); 3306 } 3307 3308 /* Assembly instruction format: xd, xj. */ 3309 /* Data types in instruction templates: V4DI, V8SF. */ 3310 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3311 __m256i __lasx_xvftinth_l_s (__m256 _1) 3312 { 3313 return (__m256i)__builtin_lasx_xvftinth_l_s ((v8f32)_1); 3314 } 3315 3316 /* Assembly instruction format: xd, xj. */ 3317 /* Data types in instruction templates: V4DI, V8SF. */ 3318 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3319 __m256i __lasx_xvftintl_l_s (__m256 _1) 3320 { 3321 return (__m256i)__builtin_lasx_xvftintl_l_s ((v8f32)_1); 3322 } 3323 3324 /* Assembly instruction format: xd, xj. */ 3325 /* Data types in instruction templates: V4DF, V8SI. */ 3326 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3327 __m256d __lasx_xvffinth_d_w (__m256i _1) 3328 { 3329 return (__m256d)__builtin_lasx_xvffinth_d_w ((v8i32)_1); 3330 } 3331 3332 /* Assembly instruction format: xd, xj. */ 3333 /* Data types in instruction templates: V4DF, V8SI. */ 3334 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3335 __m256d __lasx_xvffintl_d_w (__m256i _1) 3336 { 3337 return (__m256d)__builtin_lasx_xvffintl_d_w ((v8i32)_1); 3338 } 3339 3340 /* Assembly instruction format: xd, xj. */ 3341 /* Data types in instruction templates: V4DI, V8SF. */ 3342 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3343 __m256i __lasx_xvftintrzh_l_s (__m256 _1) 3344 { 3345 return (__m256i)__builtin_lasx_xvftintrzh_l_s ((v8f32)_1); 3346 } 3347 3348 /* Assembly instruction format: xd, xj. */ 3349 /* Data types in instruction templates: V4DI, V8SF. */ 3350 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3351 __m256i __lasx_xvftintrzl_l_s (__m256 _1) 3352 { 3353 return (__m256i)__builtin_lasx_xvftintrzl_l_s ((v8f32)_1); 3354 } 3355 3356 /* Assembly instruction format: xd, xj. */ 3357 /* Data types in instruction templates: V4DI, V8SF. */ 3358 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3359 __m256i __lasx_xvftintrph_l_s (__m256 _1) 3360 { 3361 return (__m256i)__builtin_lasx_xvftintrph_l_s ((v8f32)_1); 3362 } 3363 3364 /* Assembly instruction format: xd, xj. */ 3365 /* Data types in instruction templates: V4DI, V8SF. */ 3366 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3367 __m256i __lasx_xvftintrpl_l_s (__m256 _1) 3368 { 3369 return (__m256i)__builtin_lasx_xvftintrpl_l_s ((v8f32)_1); 3370 } 3371 3372 /* Assembly instruction format: xd, xj. */ 3373 /* Data types in instruction templates: V4DI, V8SF. */ 3374 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3375 __m256i __lasx_xvftintrmh_l_s (__m256 _1) 3376 { 3377 return (__m256i)__builtin_lasx_xvftintrmh_l_s ((v8f32)_1); 3378 } 3379 3380 /* Assembly instruction format: xd, xj. */ 3381 /* Data types in instruction templates: V4DI, V8SF. */ 3382 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3383 __m256i __lasx_xvftintrml_l_s (__m256 _1) 3384 { 3385 return (__m256i)__builtin_lasx_xvftintrml_l_s ((v8f32)_1); 3386 } 3387 3388 /* Assembly instruction format: xd, xj. */ 3389 /* Data types in instruction templates: V4DI, V8SF. */ 3390 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3391 __m256i __lasx_xvftintrneh_l_s (__m256 _1) 3392 { 3393 return (__m256i)__builtin_lasx_xvftintrneh_l_s ((v8f32)_1); 3394 } 3395 3396 /* Assembly instruction format: xd, xj. */ 3397 /* Data types in instruction templates: V4DI, V8SF. */ 3398 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3399 __m256i __lasx_xvftintrnel_l_s (__m256 _1) 3400 { 3401 return (__m256i)__builtin_lasx_xvftintrnel_l_s ((v8f32)_1); 3402 } 3403 3404 /* Assembly instruction format: xd, xj. */ 3405 /* Data types in instruction templates: V8SF, V8SF. */ 3406 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3407 __m256 __lasx_xvfrintrne_s (__m256 _1) 3408 { 3409 return (__m256)__builtin_lasx_xvfrintrne_s ((v8f32)_1); 3410 } 3411 3412 /* Assembly instruction format: xd, xj. */ 3413 /* Data types in instruction templates: V4DF, V4DF. */ 3414 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3415 __m256d __lasx_xvfrintrne_d (__m256d _1) 3416 { 3417 return (__m256d)__builtin_lasx_xvfrintrne_d ((v4f64)_1); 3418 } 3419 3420 /* Assembly instruction format: xd, xj. */ 3421 /* Data types in instruction templates: V8SF, V8SF. */ 3422 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3423 __m256 __lasx_xvfrintrz_s (__m256 _1) 3424 { 3425 return (__m256)__builtin_lasx_xvfrintrz_s ((v8f32)_1); 3426 } 3427 3428 /* Assembly instruction format: xd, xj. */ 3429 /* Data types in instruction templates: V4DF, V4DF. */ 3430 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3431 __m256d __lasx_xvfrintrz_d (__m256d _1) 3432 { 3433 return (__m256d)__builtin_lasx_xvfrintrz_d ((v4f64)_1); 3434 } 3435 3436 /* Assembly instruction format: xd, xj. */ 3437 /* Data types in instruction templates: V8SF, V8SF. */ 3438 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3439 __m256 __lasx_xvfrintrp_s (__m256 _1) 3440 { 3441 return (__m256)__builtin_lasx_xvfrintrp_s ((v8f32)_1); 3442 } 3443 3444 /* Assembly instruction format: xd, xj. */ 3445 /* Data types in instruction templates: V4DF, V4DF. */ 3446 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3447 __m256d __lasx_xvfrintrp_d (__m256d _1) 3448 { 3449 return (__m256d)__builtin_lasx_xvfrintrp_d ((v4f64)_1); 3450 } 3451 3452 /* Assembly instruction format: xd, xj. */ 3453 /* Data types in instruction templates: V8SF, V8SF. */ 3454 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3455 __m256 __lasx_xvfrintrm_s (__m256 _1) 3456 { 3457 return (__m256)__builtin_lasx_xvfrintrm_s ((v8f32)_1); 3458 } 3459 3460 /* Assembly instruction format: xd, xj. */ 3461 /* Data types in instruction templates: V4DF, V4DF. */ 3462 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3463 __m256d __lasx_xvfrintrm_d (__m256d _1) 3464 { 3465 return (__m256d)__builtin_lasx_xvfrintrm_d ((v4f64)_1); 3466 } 3467 3468 /* Assembly instruction format: xd, rj, si12. */ 3469 /* Data types in instruction templates: V32QI, CVPOINTER, SI. */ 3470 #define __lasx_xvld(/*void **/ _1, /*si12*/ _2) \ 3471 ((__m256i)__builtin_lasx_xvld ((void *)(_1), (_2))) 3472 3473 /* Assembly instruction format: xd, rj, si12. */ 3474 /* Data types in instruction templates: VOID, V32QI, CVPOINTER, SI. */ 3475 #define __lasx_xvst(/*__m256i*/ _1, /*void **/ _2, /*si12*/ _3) \ 3476 ((void)__builtin_lasx_xvst ((v32i8)(_1), (void *)(_2), (_3))) 3477 3478 /* Assembly instruction format: xd, rj, si8, idx. */ 3479 /* Data types in instruction templates: VOID, V32QI, CVPOINTER, SI, UQI. */ 3480 #define __lasx_xvstelm_b(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \ 3481 ((void)__builtin_lasx_xvstelm_b ((v32i8)(_1), (void *)(_2), (_3), (_4))) 3482 3483 /* Assembly instruction format: xd, rj, si8, idx. */ 3484 /* Data types in instruction templates: VOID, V16HI, CVPOINTER, SI, UQI. */ 3485 #define __lasx_xvstelm_h(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \ 3486 ((void)__builtin_lasx_xvstelm_h ((v16i16)(_1), (void *)(_2), (_3), (_4))) 3487 3488 /* Assembly instruction format: xd, rj, si8, idx. */ 3489 /* Data types in instruction templates: VOID, V8SI, CVPOINTER, SI, UQI. */ 3490 #define __lasx_xvstelm_w(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \ 3491 ((void)__builtin_lasx_xvstelm_w ((v8i32)(_1), (void *)(_2), (_3), (_4))) 3492 3493 /* Assembly instruction format: xd, rj, si8, idx. */ 3494 /* Data types in instruction templates: VOID, V4DI, CVPOINTER, SI, UQI. */ 3495 #define __lasx_xvstelm_d(/*__m256i*/ _1, /*void **/ _2, /*si8*/ _3, /*idx*/ _4) \ 3496 ((void)__builtin_lasx_xvstelm_d ((v4i64)(_1), (void *)(_2), (_3), (_4))) 3497 3498 /* Assembly instruction format: xd, xj, ui3. */ 3499 /* Data types in instruction templates: V8SI, V8SI, V8SI, UQI. */ 3500 #define __lasx_xvinsve0_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui3*/ _3) \ 3501 ((__m256i)__builtin_lasx_xvinsve0_w ((v8i32)(_1), (v8i32)(_2), (_3))) 3502 3503 /* Assembly instruction format: xd, xj, ui2. */ 3504 /* Data types in instruction templates: V4DI, V4DI, V4DI, UQI. */ 3505 #define __lasx_xvinsve0_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui2*/ _3) \ 3506 ((__m256i)__builtin_lasx_xvinsve0_d ((v4i64)(_1), (v4i64)(_2), (_3))) 3507 3508 /* Assembly instruction format: xd, xj, ui3. */ 3509 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 3510 #define __lasx_xvpickve_w(/*__m256i*/ _1, /*ui3*/ _2) \ 3511 ((__m256i)__builtin_lasx_xvpickve_w ((v8i32)(_1), (_2))) 3512 3513 /* Assembly instruction format: xd, xj, ui2. */ 3514 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 3515 #define __lasx_xvpickve_d(/*__m256i*/ _1, /*ui2*/ _2) \ 3516 ((__m256i)__builtin_lasx_xvpickve_d ((v4i64)(_1), (_2))) 3517 3518 /* Assembly instruction format: xd, xj, xk. */ 3519 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 3520 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3521 __m256i __lasx_xvssrlrn_b_h (__m256i _1, __m256i _2) 3522 { 3523 return (__m256i)__builtin_lasx_xvssrlrn_b_h ((v16i16)_1, (v16i16)_2); 3524 } 3525 3526 /* Assembly instruction format: xd, xj, xk. */ 3527 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 3528 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3529 __m256i __lasx_xvssrlrn_h_w (__m256i _1, __m256i _2) 3530 { 3531 return (__m256i)__builtin_lasx_xvssrlrn_h_w ((v8i32)_1, (v8i32)_2); 3532 } 3533 3534 /* Assembly instruction format: xd, xj, xk. */ 3535 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 3536 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3537 __m256i __lasx_xvssrlrn_w_d (__m256i _1, __m256i _2) 3538 { 3539 return (__m256i)__builtin_lasx_xvssrlrn_w_d ((v4i64)_1, (v4i64)_2); 3540 } 3541 3542 /* Assembly instruction format: xd, xj, xk. */ 3543 /* Data types in instruction templates: V32QI, V16HI, V16HI. */ 3544 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3545 __m256i __lasx_xvssrln_b_h (__m256i _1, __m256i _2) 3546 { 3547 return (__m256i)__builtin_lasx_xvssrln_b_h ((v16i16)_1, (v16i16)_2); 3548 } 3549 3550 /* Assembly instruction format: xd, xj, xk. */ 3551 /* Data types in instruction templates: V16HI, V8SI, V8SI. */ 3552 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3553 __m256i __lasx_xvssrln_h_w (__m256i _1, __m256i _2) 3554 { 3555 return (__m256i)__builtin_lasx_xvssrln_h_w ((v8i32)_1, (v8i32)_2); 3556 } 3557 3558 /* Assembly instruction format: xd, xj, xk. */ 3559 /* Data types in instruction templates: V8SI, V4DI, V4DI. */ 3560 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3561 __m256i __lasx_xvssrln_w_d (__m256i _1, __m256i _2) 3562 { 3563 return (__m256i)__builtin_lasx_xvssrln_w_d ((v4i64)_1, (v4i64)_2); 3564 } 3565 3566 /* Assembly instruction format: xd, xj, xk. */ 3567 /* Data types in instruction templates: UV32QI, UV32QI, UV32QI. */ 3568 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3569 __m256i __lasx_xvorn_v (__m256i _1, __m256i _2) 3570 { 3571 return (__m256i)__builtin_lasx_xvorn_v ((v32u8)_1, (v32u8)_2); 3572 } 3573 3574 /* Assembly instruction format: xd, i13. */ 3575 /* Data types in instruction templates: V4DI, HI. */ 3576 #define __lasx_xvldi(/*i13*/ _1) \ 3577 ((__m256i)__builtin_lasx_xvldi ((_1))) 3578 3579 /* Assembly instruction format: xd, rj, rk. */ 3580 /* Data types in instruction templates: V32QI, CVPOINTER, DI. */ 3581 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3582 __m256i __lasx_xvldx (void * _1, long int _2) 3583 { 3584 return (__m256i)__builtin_lasx_xvldx ((void *)_1, (long int)_2); 3585 } 3586 3587 /* Assembly instruction format: xd, rj, rk. */ 3588 /* Data types in instruction templates: VOID, V32QI, CVPOINTER, DI. */ 3589 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3590 void __lasx_xvstx (__m256i _1, void * _2, long int _3) 3591 { 3592 return (void)__builtin_lasx_xvstx ((v32i8)_1, (void *)_2, (long int)_3); 3593 } 3594 3595 /* Assembly instruction format: xd, xj. */ 3596 /* Data types in instruction templates: UV4DI, UV4DI. */ 3597 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3598 __m256i __lasx_xvextl_qu_du (__m256i _1) 3599 { 3600 return (__m256i)__builtin_lasx_xvextl_qu_du ((v4u64)_1); 3601 } 3602 3603 /* Assembly instruction format: xd, rj, ui3. */ 3604 /* Data types in instruction templates: V8SI, V8SI, SI, UQI. */ 3605 #define __lasx_xvinsgr2vr_w(/*__m256i*/ _1, /*int*/ _2, /*ui3*/ _3) \ 3606 ((__m256i)__builtin_lasx_xvinsgr2vr_w ((v8i32)(_1), (int)(_2), (_3))) 3607 3608 /* Assembly instruction format: xd, rj, ui2. */ 3609 /* Data types in instruction templates: V4DI, V4DI, DI, UQI. */ 3610 #define __lasx_xvinsgr2vr_d(/*__m256i*/ _1, /*long int*/ _2, /*ui2*/ _3) \ 3611 ((__m256i)__builtin_lasx_xvinsgr2vr_d ((v4i64)(_1), (long int)(_2), (_3))) 3612 3613 /* Assembly instruction format: xd, xj. */ 3614 /* Data types in instruction templates: V32QI, V32QI. */ 3615 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3616 __m256i __lasx_xvreplve0_b (__m256i _1) 3617 { 3618 return (__m256i)__builtin_lasx_xvreplve0_b ((v32i8)_1); 3619 } 3620 3621 /* Assembly instruction format: xd, xj. */ 3622 /* Data types in instruction templates: V16HI, V16HI. */ 3623 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3624 __m256i __lasx_xvreplve0_h (__m256i _1) 3625 { 3626 return (__m256i)__builtin_lasx_xvreplve0_h ((v16i16)_1); 3627 } 3628 3629 /* Assembly instruction format: xd, xj. */ 3630 /* Data types in instruction templates: V8SI, V8SI. */ 3631 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3632 __m256i __lasx_xvreplve0_w (__m256i _1) 3633 { 3634 return (__m256i)__builtin_lasx_xvreplve0_w ((v8i32)_1); 3635 } 3636 3637 /* Assembly instruction format: xd, xj. */ 3638 /* Data types in instruction templates: V4DI, V4DI. */ 3639 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3640 __m256i __lasx_xvreplve0_d (__m256i _1) 3641 { 3642 return (__m256i)__builtin_lasx_xvreplve0_d ((v4i64)_1); 3643 } 3644 3645 /* Assembly instruction format: xd, xj. */ 3646 /* Data types in instruction templates: V32QI, V32QI. */ 3647 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3648 __m256i __lasx_xvreplve0_q (__m256i _1) 3649 { 3650 return (__m256i)__builtin_lasx_xvreplve0_q ((v32i8)_1); 3651 } 3652 3653 /* Assembly instruction format: xd, xj. */ 3654 /* Data types in instruction templates: V16HI, V32QI. */ 3655 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3656 __m256i __lasx_vext2xv_h_b (__m256i _1) 3657 { 3658 return (__m256i)__builtin_lasx_vext2xv_h_b ((v32i8)_1); 3659 } 3660 3661 /* Assembly instruction format: xd, xj. */ 3662 /* Data types in instruction templates: V8SI, V16HI. */ 3663 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3664 __m256i __lasx_vext2xv_w_h (__m256i _1) 3665 { 3666 return (__m256i)__builtin_lasx_vext2xv_w_h ((v16i16)_1); 3667 } 3668 3669 /* Assembly instruction format: xd, xj. */ 3670 /* Data types in instruction templates: V4DI, V8SI. */ 3671 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3672 __m256i __lasx_vext2xv_d_w (__m256i _1) 3673 { 3674 return (__m256i)__builtin_lasx_vext2xv_d_w ((v8i32)_1); 3675 } 3676 3677 /* Assembly instruction format: xd, xj. */ 3678 /* Data types in instruction templates: V8SI, V32QI. */ 3679 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3680 __m256i __lasx_vext2xv_w_b (__m256i _1) 3681 { 3682 return (__m256i)__builtin_lasx_vext2xv_w_b ((v32i8)_1); 3683 } 3684 3685 /* Assembly instruction format: xd, xj. */ 3686 /* Data types in instruction templates: V4DI, V16HI. */ 3687 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3688 __m256i __lasx_vext2xv_d_h (__m256i _1) 3689 { 3690 return (__m256i)__builtin_lasx_vext2xv_d_h ((v16i16)_1); 3691 } 3692 3693 /* Assembly instruction format: xd, xj. */ 3694 /* Data types in instruction templates: V4DI, V32QI. */ 3695 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3696 __m256i __lasx_vext2xv_d_b (__m256i _1) 3697 { 3698 return (__m256i)__builtin_lasx_vext2xv_d_b ((v32i8)_1); 3699 } 3700 3701 /* Assembly instruction format: xd, xj. */ 3702 /* Data types in instruction templates: V16HI, V32QI. */ 3703 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3704 __m256i __lasx_vext2xv_hu_bu (__m256i _1) 3705 { 3706 return (__m256i)__builtin_lasx_vext2xv_hu_bu ((v32i8)_1); 3707 } 3708 3709 /* Assembly instruction format: xd, xj. */ 3710 /* Data types in instruction templates: V8SI, V16HI. */ 3711 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3712 __m256i __lasx_vext2xv_wu_hu (__m256i _1) 3713 { 3714 return (__m256i)__builtin_lasx_vext2xv_wu_hu ((v16i16)_1); 3715 } 3716 3717 /* Assembly instruction format: xd, xj. */ 3718 /* Data types in instruction templates: V4DI, V8SI. */ 3719 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3720 __m256i __lasx_vext2xv_du_wu (__m256i _1) 3721 { 3722 return (__m256i)__builtin_lasx_vext2xv_du_wu ((v8i32)_1); 3723 } 3724 3725 /* Assembly instruction format: xd, xj. */ 3726 /* Data types in instruction templates: V8SI, V32QI. */ 3727 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3728 __m256i __lasx_vext2xv_wu_bu (__m256i _1) 3729 { 3730 return (__m256i)__builtin_lasx_vext2xv_wu_bu ((v32i8)_1); 3731 } 3732 3733 /* Assembly instruction format: xd, xj. */ 3734 /* Data types in instruction templates: V4DI, V16HI. */ 3735 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3736 __m256i __lasx_vext2xv_du_hu (__m256i _1) 3737 { 3738 return (__m256i)__builtin_lasx_vext2xv_du_hu ((v16i16)_1); 3739 } 3740 3741 /* Assembly instruction format: xd, xj. */ 3742 /* Data types in instruction templates: V4DI, V32QI. */ 3743 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3744 __m256i __lasx_vext2xv_du_bu (__m256i _1) 3745 { 3746 return (__m256i)__builtin_lasx_vext2xv_du_bu ((v32i8)_1); 3747 } 3748 3749 /* Assembly instruction format: xd, xj, ui8. */ 3750 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 3751 #define __lasx_xvpermi_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui8*/ _3) \ 3752 ((__m256i)__builtin_lasx_xvpermi_q ((v32i8)(_1), (v32i8)(_2), (_3))) 3753 3754 /* Assembly instruction format: xd, xj, ui8. */ 3755 /* Data types in instruction templates: V4DI, V4DI, USI. */ 3756 #define __lasx_xvpermi_d(/*__m256i*/ _1, /*ui8*/ _2) \ 3757 ((__m256i)__builtin_lasx_xvpermi_d ((v4i64)(_1), (_2))) 3758 3759 /* Assembly instruction format: xd, xj, xk. */ 3760 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 3761 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3762 __m256i __lasx_xvperm_w (__m256i _1, __m256i _2) 3763 { 3764 return (__m256i)__builtin_lasx_xvperm_w ((v8i32)_1, (v8i32)_2); 3765 } 3766 3767 /* Assembly instruction format: xd, rj, si12. */ 3768 /* Data types in instruction templates: V32QI, CVPOINTER, SI. */ 3769 #define __lasx_xvldrepl_b(/*void **/ _1, /*si12*/ _2) \ 3770 ((__m256i)__builtin_lasx_xvldrepl_b ((void *)(_1), (_2))) 3771 3772 /* Assembly instruction format: xd, rj, si11. */ 3773 /* Data types in instruction templates: V16HI, CVPOINTER, SI. */ 3774 #define __lasx_xvldrepl_h(/*void **/ _1, /*si11*/ _2) \ 3775 ((__m256i)__builtin_lasx_xvldrepl_h ((void *)(_1), (_2))) 3776 3777 /* Assembly instruction format: xd, rj, si10. */ 3778 /* Data types in instruction templates: V8SI, CVPOINTER, SI. */ 3779 #define __lasx_xvldrepl_w(/*void **/ _1, /*si10*/ _2) \ 3780 ((__m256i)__builtin_lasx_xvldrepl_w ((void *)(_1), (_2))) 3781 3782 /* Assembly instruction format: xd, rj, si9. */ 3783 /* Data types in instruction templates: V4DI, CVPOINTER, SI. */ 3784 #define __lasx_xvldrepl_d(/*void **/ _1, /*si9*/ _2) \ 3785 ((__m256i)__builtin_lasx_xvldrepl_d ((void *)(_1), (_2))) 3786 3787 /* Assembly instruction format: rd, xj, ui3. */ 3788 /* Data types in instruction templates: SI, V8SI, UQI. */ 3789 #define __lasx_xvpickve2gr_w(/*__m256i*/ _1, /*ui3*/ _2) \ 3790 ((int)__builtin_lasx_xvpickve2gr_w ((v8i32)(_1), (_2))) 3791 3792 /* Assembly instruction format: rd, xj, ui3. */ 3793 /* Data types in instruction templates: USI, V8SI, UQI. */ 3794 #define __lasx_xvpickve2gr_wu(/*__m256i*/ _1, /*ui3*/ _2) \ 3795 ((unsigned int)__builtin_lasx_xvpickve2gr_wu ((v8i32)(_1), (_2))) 3796 3797 /* Assembly instruction format: rd, xj, ui2. */ 3798 /* Data types in instruction templates: DI, V4DI, UQI. */ 3799 #define __lasx_xvpickve2gr_d(/*__m256i*/ _1, /*ui2*/ _2) \ 3800 ((long int)__builtin_lasx_xvpickve2gr_d ((v4i64)(_1), (_2))) 3801 3802 /* Assembly instruction format: rd, xj, ui2. */ 3803 /* Data types in instruction templates: UDI, V4DI, UQI. */ 3804 #define __lasx_xvpickve2gr_du(/*__m256i*/ _1, /*ui2*/ _2) \ 3805 ((unsigned long int)__builtin_lasx_xvpickve2gr_du ((v4i64)(_1), (_2))) 3806 3807 /* Assembly instruction format: xd, xj, xk. */ 3808 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 3809 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3810 __m256i __lasx_xvaddwev_q_d (__m256i _1, __m256i _2) 3811 { 3812 return (__m256i)__builtin_lasx_xvaddwev_q_d ((v4i64)_1, (v4i64)_2); 3813 } 3814 3815 /* Assembly instruction format: xd, xj, xk. */ 3816 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 3817 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3818 __m256i __lasx_xvaddwev_d_w (__m256i _1, __m256i _2) 3819 { 3820 return (__m256i)__builtin_lasx_xvaddwev_d_w ((v8i32)_1, (v8i32)_2); 3821 } 3822 3823 /* Assembly instruction format: xd, xj, xk. */ 3824 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 3825 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3826 __m256i __lasx_xvaddwev_w_h (__m256i _1, __m256i _2) 3827 { 3828 return (__m256i)__builtin_lasx_xvaddwev_w_h ((v16i16)_1, (v16i16)_2); 3829 } 3830 3831 /* Assembly instruction format: xd, xj, xk. */ 3832 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 3833 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3834 __m256i __lasx_xvaddwev_h_b (__m256i _1, __m256i _2) 3835 { 3836 return (__m256i)__builtin_lasx_xvaddwev_h_b ((v32i8)_1, (v32i8)_2); 3837 } 3838 3839 /* Assembly instruction format: xd, xj, xk. */ 3840 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 3841 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3842 __m256i __lasx_xvaddwev_q_du (__m256i _1, __m256i _2) 3843 { 3844 return (__m256i)__builtin_lasx_xvaddwev_q_du ((v4u64)_1, (v4u64)_2); 3845 } 3846 3847 /* Assembly instruction format: xd, xj, xk. */ 3848 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */ 3849 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3850 __m256i __lasx_xvaddwev_d_wu (__m256i _1, __m256i _2) 3851 { 3852 return (__m256i)__builtin_lasx_xvaddwev_d_wu ((v8u32)_1, (v8u32)_2); 3853 } 3854 3855 /* Assembly instruction format: xd, xj, xk. */ 3856 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */ 3857 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3858 __m256i __lasx_xvaddwev_w_hu (__m256i _1, __m256i _2) 3859 { 3860 return (__m256i)__builtin_lasx_xvaddwev_w_hu ((v16u16)_1, (v16u16)_2); 3861 } 3862 3863 /* Assembly instruction format: xd, xj, xk. */ 3864 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */ 3865 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3866 __m256i __lasx_xvaddwev_h_bu (__m256i _1, __m256i _2) 3867 { 3868 return (__m256i)__builtin_lasx_xvaddwev_h_bu ((v32u8)_1, (v32u8)_2); 3869 } 3870 3871 /* Assembly instruction format: xd, xj, xk. */ 3872 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 3873 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3874 __m256i __lasx_xvsubwev_q_d (__m256i _1, __m256i _2) 3875 { 3876 return (__m256i)__builtin_lasx_xvsubwev_q_d ((v4i64)_1, (v4i64)_2); 3877 } 3878 3879 /* Assembly instruction format: xd, xj, xk. */ 3880 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 3881 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3882 __m256i __lasx_xvsubwev_d_w (__m256i _1, __m256i _2) 3883 { 3884 return (__m256i)__builtin_lasx_xvsubwev_d_w ((v8i32)_1, (v8i32)_2); 3885 } 3886 3887 /* Assembly instruction format: xd, xj, xk. */ 3888 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 3889 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3890 __m256i __lasx_xvsubwev_w_h (__m256i _1, __m256i _2) 3891 { 3892 return (__m256i)__builtin_lasx_xvsubwev_w_h ((v16i16)_1, (v16i16)_2); 3893 } 3894 3895 /* Assembly instruction format: xd, xj, xk. */ 3896 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 3897 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3898 __m256i __lasx_xvsubwev_h_b (__m256i _1, __m256i _2) 3899 { 3900 return (__m256i)__builtin_lasx_xvsubwev_h_b ((v32i8)_1, (v32i8)_2); 3901 } 3902 3903 /* Assembly instruction format: xd, xj, xk. */ 3904 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 3905 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3906 __m256i __lasx_xvsubwev_q_du (__m256i _1, __m256i _2) 3907 { 3908 return (__m256i)__builtin_lasx_xvsubwev_q_du ((v4u64)_1, (v4u64)_2); 3909 } 3910 3911 /* Assembly instruction format: xd, xj, xk. */ 3912 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */ 3913 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3914 __m256i __lasx_xvsubwev_d_wu (__m256i _1, __m256i _2) 3915 { 3916 return (__m256i)__builtin_lasx_xvsubwev_d_wu ((v8u32)_1, (v8u32)_2); 3917 } 3918 3919 /* Assembly instruction format: xd, xj, xk. */ 3920 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */ 3921 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3922 __m256i __lasx_xvsubwev_w_hu (__m256i _1, __m256i _2) 3923 { 3924 return (__m256i)__builtin_lasx_xvsubwev_w_hu ((v16u16)_1, (v16u16)_2); 3925 } 3926 3927 /* Assembly instruction format: xd, xj, xk. */ 3928 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */ 3929 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3930 __m256i __lasx_xvsubwev_h_bu (__m256i _1, __m256i _2) 3931 { 3932 return (__m256i)__builtin_lasx_xvsubwev_h_bu ((v32u8)_1, (v32u8)_2); 3933 } 3934 3935 /* Assembly instruction format: xd, xj, xk. */ 3936 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 3937 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3938 __m256i __lasx_xvmulwev_q_d (__m256i _1, __m256i _2) 3939 { 3940 return (__m256i)__builtin_lasx_xvmulwev_q_d ((v4i64)_1, (v4i64)_2); 3941 } 3942 3943 /* Assembly instruction format: xd, xj, xk. */ 3944 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 3945 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3946 __m256i __lasx_xvmulwev_d_w (__m256i _1, __m256i _2) 3947 { 3948 return (__m256i)__builtin_lasx_xvmulwev_d_w ((v8i32)_1, (v8i32)_2); 3949 } 3950 3951 /* Assembly instruction format: xd, xj, xk. */ 3952 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 3953 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3954 __m256i __lasx_xvmulwev_w_h (__m256i _1, __m256i _2) 3955 { 3956 return (__m256i)__builtin_lasx_xvmulwev_w_h ((v16i16)_1, (v16i16)_2); 3957 } 3958 3959 /* Assembly instruction format: xd, xj, xk. */ 3960 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 3961 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3962 __m256i __lasx_xvmulwev_h_b (__m256i _1, __m256i _2) 3963 { 3964 return (__m256i)__builtin_lasx_xvmulwev_h_b ((v32i8)_1, (v32i8)_2); 3965 } 3966 3967 /* Assembly instruction format: xd, xj, xk. */ 3968 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 3969 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3970 __m256i __lasx_xvmulwev_q_du (__m256i _1, __m256i _2) 3971 { 3972 return (__m256i)__builtin_lasx_xvmulwev_q_du ((v4u64)_1, (v4u64)_2); 3973 } 3974 3975 /* Assembly instruction format: xd, xj, xk. */ 3976 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */ 3977 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3978 __m256i __lasx_xvmulwev_d_wu (__m256i _1, __m256i _2) 3979 { 3980 return (__m256i)__builtin_lasx_xvmulwev_d_wu ((v8u32)_1, (v8u32)_2); 3981 } 3982 3983 /* Assembly instruction format: xd, xj, xk. */ 3984 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */ 3985 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3986 __m256i __lasx_xvmulwev_w_hu (__m256i _1, __m256i _2) 3987 { 3988 return (__m256i)__builtin_lasx_xvmulwev_w_hu ((v16u16)_1, (v16u16)_2); 3989 } 3990 3991 /* Assembly instruction format: xd, xj, xk. */ 3992 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */ 3993 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 3994 __m256i __lasx_xvmulwev_h_bu (__m256i _1, __m256i _2) 3995 { 3996 return (__m256i)__builtin_lasx_xvmulwev_h_bu ((v32u8)_1, (v32u8)_2); 3997 } 3998 3999 /* Assembly instruction format: xd, xj, xk. */ 4000 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4001 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4002 __m256i __lasx_xvaddwod_q_d (__m256i _1, __m256i _2) 4003 { 4004 return (__m256i)__builtin_lasx_xvaddwod_q_d ((v4i64)_1, (v4i64)_2); 4005 } 4006 4007 /* Assembly instruction format: xd, xj, xk. */ 4008 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 4009 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4010 __m256i __lasx_xvaddwod_d_w (__m256i _1, __m256i _2) 4011 { 4012 return (__m256i)__builtin_lasx_xvaddwod_d_w ((v8i32)_1, (v8i32)_2); 4013 } 4014 4015 /* Assembly instruction format: xd, xj, xk. */ 4016 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 4017 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4018 __m256i __lasx_xvaddwod_w_h (__m256i _1, __m256i _2) 4019 { 4020 return (__m256i)__builtin_lasx_xvaddwod_w_h ((v16i16)_1, (v16i16)_2); 4021 } 4022 4023 /* Assembly instruction format: xd, xj, xk. */ 4024 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 4025 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4026 __m256i __lasx_xvaddwod_h_b (__m256i _1, __m256i _2) 4027 { 4028 return (__m256i)__builtin_lasx_xvaddwod_h_b ((v32i8)_1, (v32i8)_2); 4029 } 4030 4031 /* Assembly instruction format: xd, xj, xk. */ 4032 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 4033 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4034 __m256i __lasx_xvaddwod_q_du (__m256i _1, __m256i _2) 4035 { 4036 return (__m256i)__builtin_lasx_xvaddwod_q_du ((v4u64)_1, (v4u64)_2); 4037 } 4038 4039 /* Assembly instruction format: xd, xj, xk. */ 4040 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */ 4041 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4042 __m256i __lasx_xvaddwod_d_wu (__m256i _1, __m256i _2) 4043 { 4044 return (__m256i)__builtin_lasx_xvaddwod_d_wu ((v8u32)_1, (v8u32)_2); 4045 } 4046 4047 /* Assembly instruction format: xd, xj, xk. */ 4048 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */ 4049 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4050 __m256i __lasx_xvaddwod_w_hu (__m256i _1, __m256i _2) 4051 { 4052 return (__m256i)__builtin_lasx_xvaddwod_w_hu ((v16u16)_1, (v16u16)_2); 4053 } 4054 4055 /* Assembly instruction format: xd, xj, xk. */ 4056 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */ 4057 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4058 __m256i __lasx_xvaddwod_h_bu (__m256i _1, __m256i _2) 4059 { 4060 return (__m256i)__builtin_lasx_xvaddwod_h_bu ((v32u8)_1, (v32u8)_2); 4061 } 4062 4063 /* Assembly instruction format: xd, xj, xk. */ 4064 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4065 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4066 __m256i __lasx_xvsubwod_q_d (__m256i _1, __m256i _2) 4067 { 4068 return (__m256i)__builtin_lasx_xvsubwod_q_d ((v4i64)_1, (v4i64)_2); 4069 } 4070 4071 /* Assembly instruction format: xd, xj, xk. */ 4072 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 4073 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4074 __m256i __lasx_xvsubwod_d_w (__m256i _1, __m256i _2) 4075 { 4076 return (__m256i)__builtin_lasx_xvsubwod_d_w ((v8i32)_1, (v8i32)_2); 4077 } 4078 4079 /* Assembly instruction format: xd, xj, xk. */ 4080 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 4081 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4082 __m256i __lasx_xvsubwod_w_h (__m256i _1, __m256i _2) 4083 { 4084 return (__m256i)__builtin_lasx_xvsubwod_w_h ((v16i16)_1, (v16i16)_2); 4085 } 4086 4087 /* Assembly instruction format: xd, xj, xk. */ 4088 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 4089 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4090 __m256i __lasx_xvsubwod_h_b (__m256i _1, __m256i _2) 4091 { 4092 return (__m256i)__builtin_lasx_xvsubwod_h_b ((v32i8)_1, (v32i8)_2); 4093 } 4094 4095 /* Assembly instruction format: xd, xj, xk. */ 4096 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 4097 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4098 __m256i __lasx_xvsubwod_q_du (__m256i _1, __m256i _2) 4099 { 4100 return (__m256i)__builtin_lasx_xvsubwod_q_du ((v4u64)_1, (v4u64)_2); 4101 } 4102 4103 /* Assembly instruction format: xd, xj, xk. */ 4104 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */ 4105 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4106 __m256i __lasx_xvsubwod_d_wu (__m256i _1, __m256i _2) 4107 { 4108 return (__m256i)__builtin_lasx_xvsubwod_d_wu ((v8u32)_1, (v8u32)_2); 4109 } 4110 4111 /* Assembly instruction format: xd, xj, xk. */ 4112 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */ 4113 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4114 __m256i __lasx_xvsubwod_w_hu (__m256i _1, __m256i _2) 4115 { 4116 return (__m256i)__builtin_lasx_xvsubwod_w_hu ((v16u16)_1, (v16u16)_2); 4117 } 4118 4119 /* Assembly instruction format: xd, xj, xk. */ 4120 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */ 4121 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4122 __m256i __lasx_xvsubwod_h_bu (__m256i _1, __m256i _2) 4123 { 4124 return (__m256i)__builtin_lasx_xvsubwod_h_bu ((v32u8)_1, (v32u8)_2); 4125 } 4126 4127 /* Assembly instruction format: xd, xj, xk. */ 4128 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4129 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4130 __m256i __lasx_xvmulwod_q_d (__m256i _1, __m256i _2) 4131 { 4132 return (__m256i)__builtin_lasx_xvmulwod_q_d ((v4i64)_1, (v4i64)_2); 4133 } 4134 4135 /* Assembly instruction format: xd, xj, xk. */ 4136 /* Data types in instruction templates: V4DI, V8SI, V8SI. */ 4137 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4138 __m256i __lasx_xvmulwod_d_w (__m256i _1, __m256i _2) 4139 { 4140 return (__m256i)__builtin_lasx_xvmulwod_d_w ((v8i32)_1, (v8i32)_2); 4141 } 4142 4143 /* Assembly instruction format: xd, xj, xk. */ 4144 /* Data types in instruction templates: V8SI, V16HI, V16HI. */ 4145 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4146 __m256i __lasx_xvmulwod_w_h (__m256i _1, __m256i _2) 4147 { 4148 return (__m256i)__builtin_lasx_xvmulwod_w_h ((v16i16)_1, (v16i16)_2); 4149 } 4150 4151 /* Assembly instruction format: xd, xj, xk. */ 4152 /* Data types in instruction templates: V16HI, V32QI, V32QI. */ 4153 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4154 __m256i __lasx_xvmulwod_h_b (__m256i _1, __m256i _2) 4155 { 4156 return (__m256i)__builtin_lasx_xvmulwod_h_b ((v32i8)_1, (v32i8)_2); 4157 } 4158 4159 /* Assembly instruction format: xd, xj, xk. */ 4160 /* Data types in instruction templates: V4DI, UV4DI, UV4DI. */ 4161 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4162 __m256i __lasx_xvmulwod_q_du (__m256i _1, __m256i _2) 4163 { 4164 return (__m256i)__builtin_lasx_xvmulwod_q_du ((v4u64)_1, (v4u64)_2); 4165 } 4166 4167 /* Assembly instruction format: xd, xj, xk. */ 4168 /* Data types in instruction templates: V4DI, UV8SI, UV8SI. */ 4169 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4170 __m256i __lasx_xvmulwod_d_wu (__m256i _1, __m256i _2) 4171 { 4172 return (__m256i)__builtin_lasx_xvmulwod_d_wu ((v8u32)_1, (v8u32)_2); 4173 } 4174 4175 /* Assembly instruction format: xd, xj, xk. */ 4176 /* Data types in instruction templates: V8SI, UV16HI, UV16HI. */ 4177 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4178 __m256i __lasx_xvmulwod_w_hu (__m256i _1, __m256i _2) 4179 { 4180 return (__m256i)__builtin_lasx_xvmulwod_w_hu ((v16u16)_1, (v16u16)_2); 4181 } 4182 4183 /* Assembly instruction format: xd, xj, xk. */ 4184 /* Data types in instruction templates: V16HI, UV32QI, UV32QI. */ 4185 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4186 __m256i __lasx_xvmulwod_h_bu (__m256i _1, __m256i _2) 4187 { 4188 return (__m256i)__builtin_lasx_xvmulwod_h_bu ((v32u8)_1, (v32u8)_2); 4189 } 4190 4191 /* Assembly instruction format: xd, xj, xk. */ 4192 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */ 4193 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4194 __m256i __lasx_xvaddwev_d_wu_w (__m256i _1, __m256i _2) 4195 { 4196 return (__m256i)__builtin_lasx_xvaddwev_d_wu_w ((v8u32)_1, (v8i32)_2); 4197 } 4198 4199 /* Assembly instruction format: xd, xj, xk. */ 4200 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */ 4201 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4202 __m256i __lasx_xvaddwev_w_hu_h (__m256i _1, __m256i _2) 4203 { 4204 return (__m256i)__builtin_lasx_xvaddwev_w_hu_h ((v16u16)_1, (v16i16)_2); 4205 } 4206 4207 /* Assembly instruction format: xd, xj, xk. */ 4208 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */ 4209 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4210 __m256i __lasx_xvaddwev_h_bu_b (__m256i _1, __m256i _2) 4211 { 4212 return (__m256i)__builtin_lasx_xvaddwev_h_bu_b ((v32u8)_1, (v32i8)_2); 4213 } 4214 4215 /* Assembly instruction format: xd, xj, xk. */ 4216 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */ 4217 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4218 __m256i __lasx_xvmulwev_d_wu_w (__m256i _1, __m256i _2) 4219 { 4220 return (__m256i)__builtin_lasx_xvmulwev_d_wu_w ((v8u32)_1, (v8i32)_2); 4221 } 4222 4223 /* Assembly instruction format: xd, xj, xk. */ 4224 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */ 4225 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4226 __m256i __lasx_xvmulwev_w_hu_h (__m256i _1, __m256i _2) 4227 { 4228 return (__m256i)__builtin_lasx_xvmulwev_w_hu_h ((v16u16)_1, (v16i16)_2); 4229 } 4230 4231 /* Assembly instruction format: xd, xj, xk. */ 4232 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */ 4233 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4234 __m256i __lasx_xvmulwev_h_bu_b (__m256i _1, __m256i _2) 4235 { 4236 return (__m256i)__builtin_lasx_xvmulwev_h_bu_b ((v32u8)_1, (v32i8)_2); 4237 } 4238 4239 /* Assembly instruction format: xd, xj, xk. */ 4240 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */ 4241 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4242 __m256i __lasx_xvaddwod_d_wu_w (__m256i _1, __m256i _2) 4243 { 4244 return (__m256i)__builtin_lasx_xvaddwod_d_wu_w ((v8u32)_1, (v8i32)_2); 4245 } 4246 4247 /* Assembly instruction format: xd, xj, xk. */ 4248 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */ 4249 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4250 __m256i __lasx_xvaddwod_w_hu_h (__m256i _1, __m256i _2) 4251 { 4252 return (__m256i)__builtin_lasx_xvaddwod_w_hu_h ((v16u16)_1, (v16i16)_2); 4253 } 4254 4255 /* Assembly instruction format: xd, xj, xk. */ 4256 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */ 4257 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4258 __m256i __lasx_xvaddwod_h_bu_b (__m256i _1, __m256i _2) 4259 { 4260 return (__m256i)__builtin_lasx_xvaddwod_h_bu_b ((v32u8)_1, (v32i8)_2); 4261 } 4262 4263 /* Assembly instruction format: xd, xj, xk. */ 4264 /* Data types in instruction templates: V4DI, UV8SI, V8SI. */ 4265 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4266 __m256i __lasx_xvmulwod_d_wu_w (__m256i _1, __m256i _2) 4267 { 4268 return (__m256i)__builtin_lasx_xvmulwod_d_wu_w ((v8u32)_1, (v8i32)_2); 4269 } 4270 4271 /* Assembly instruction format: xd, xj, xk. */ 4272 /* Data types in instruction templates: V8SI, UV16HI, V16HI. */ 4273 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4274 __m256i __lasx_xvmulwod_w_hu_h (__m256i _1, __m256i _2) 4275 { 4276 return (__m256i)__builtin_lasx_xvmulwod_w_hu_h ((v16u16)_1, (v16i16)_2); 4277 } 4278 4279 /* Assembly instruction format: xd, xj, xk. */ 4280 /* Data types in instruction templates: V16HI, UV32QI, V32QI. */ 4281 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4282 __m256i __lasx_xvmulwod_h_bu_b (__m256i _1, __m256i _2) 4283 { 4284 return (__m256i)__builtin_lasx_xvmulwod_h_bu_b ((v32u8)_1, (v32i8)_2); 4285 } 4286 4287 /* Assembly instruction format: xd, xj, xk. */ 4288 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4289 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4290 __m256i __lasx_xvhaddw_q_d (__m256i _1, __m256i _2) 4291 { 4292 return (__m256i)__builtin_lasx_xvhaddw_q_d ((v4i64)_1, (v4i64)_2); 4293 } 4294 4295 /* Assembly instruction format: xd, xj, xk. */ 4296 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 4297 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4298 __m256i __lasx_xvhaddw_qu_du (__m256i _1, __m256i _2) 4299 { 4300 return (__m256i)__builtin_lasx_xvhaddw_qu_du ((v4u64)_1, (v4u64)_2); 4301 } 4302 4303 /* Assembly instruction format: xd, xj, xk. */ 4304 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4305 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4306 __m256i __lasx_xvhsubw_q_d (__m256i _1, __m256i _2) 4307 { 4308 return (__m256i)__builtin_lasx_xvhsubw_q_d ((v4i64)_1, (v4i64)_2); 4309 } 4310 4311 /* Assembly instruction format: xd, xj, xk. */ 4312 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI. */ 4313 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4314 __m256i __lasx_xvhsubw_qu_du (__m256i _1, __m256i _2) 4315 { 4316 return (__m256i)__builtin_lasx_xvhsubw_qu_du ((v4u64)_1, (v4u64)_2); 4317 } 4318 4319 /* Assembly instruction format: xd, xj, xk. */ 4320 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */ 4321 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4322 __m256i __lasx_xvmaddwev_q_d (__m256i _1, __m256i _2, __m256i _3) 4323 { 4324 return (__m256i)__builtin_lasx_xvmaddwev_q_d ((v4i64)_1, (v4i64)_2, (v4i64)_3); 4325 } 4326 4327 /* Assembly instruction format: xd, xj, xk. */ 4328 /* Data types in instruction templates: V4DI, V4DI, V8SI, V8SI. */ 4329 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4330 __m256i __lasx_xvmaddwev_d_w (__m256i _1, __m256i _2, __m256i _3) 4331 { 4332 return (__m256i)__builtin_lasx_xvmaddwev_d_w ((v4i64)_1, (v8i32)_2, (v8i32)_3); 4333 } 4334 4335 /* Assembly instruction format: xd, xj, xk. */ 4336 /* Data types in instruction templates: V8SI, V8SI, V16HI, V16HI. */ 4337 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4338 __m256i __lasx_xvmaddwev_w_h (__m256i _1, __m256i _2, __m256i _3) 4339 { 4340 return (__m256i)__builtin_lasx_xvmaddwev_w_h ((v8i32)_1, (v16i16)_2, (v16i16)_3); 4341 } 4342 4343 /* Assembly instruction format: xd, xj, xk. */ 4344 /* Data types in instruction templates: V16HI, V16HI, V32QI, V32QI. */ 4345 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4346 __m256i __lasx_xvmaddwev_h_b (__m256i _1, __m256i _2, __m256i _3) 4347 { 4348 return (__m256i)__builtin_lasx_xvmaddwev_h_b ((v16i16)_1, (v32i8)_2, (v32i8)_3); 4349 } 4350 4351 /* Assembly instruction format: xd, xj, xk. */ 4352 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI, UV4DI. */ 4353 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4354 __m256i __lasx_xvmaddwev_q_du (__m256i _1, __m256i _2, __m256i _3) 4355 { 4356 return (__m256i)__builtin_lasx_xvmaddwev_q_du ((v4u64)_1, (v4u64)_2, (v4u64)_3); 4357 } 4358 4359 /* Assembly instruction format: xd, xj, xk. */ 4360 /* Data types in instruction templates: UV4DI, UV4DI, UV8SI, UV8SI. */ 4361 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4362 __m256i __lasx_xvmaddwev_d_wu (__m256i _1, __m256i _2, __m256i _3) 4363 { 4364 return (__m256i)__builtin_lasx_xvmaddwev_d_wu ((v4u64)_1, (v8u32)_2, (v8u32)_3); 4365 } 4366 4367 /* Assembly instruction format: xd, xj, xk. */ 4368 /* Data types in instruction templates: UV8SI, UV8SI, UV16HI, UV16HI. */ 4369 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4370 __m256i __lasx_xvmaddwev_w_hu (__m256i _1, __m256i _2, __m256i _3) 4371 { 4372 return (__m256i)__builtin_lasx_xvmaddwev_w_hu ((v8u32)_1, (v16u16)_2, (v16u16)_3); 4373 } 4374 4375 /* Assembly instruction format: xd, xj, xk. */ 4376 /* Data types in instruction templates: UV16HI, UV16HI, UV32QI, UV32QI. */ 4377 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4378 __m256i __lasx_xvmaddwev_h_bu (__m256i _1, __m256i _2, __m256i _3) 4379 { 4380 return (__m256i)__builtin_lasx_xvmaddwev_h_bu ((v16u16)_1, (v32u8)_2, (v32u8)_3); 4381 } 4382 4383 /* Assembly instruction format: xd, xj, xk. */ 4384 /* Data types in instruction templates: V4DI, V4DI, V4DI, V4DI. */ 4385 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4386 __m256i __lasx_xvmaddwod_q_d (__m256i _1, __m256i _2, __m256i _3) 4387 { 4388 return (__m256i)__builtin_lasx_xvmaddwod_q_d ((v4i64)_1, (v4i64)_2, (v4i64)_3); 4389 } 4390 4391 /* Assembly instruction format: xd, xj, xk. */ 4392 /* Data types in instruction templates: V4DI, V4DI, V8SI, V8SI. */ 4393 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4394 __m256i __lasx_xvmaddwod_d_w (__m256i _1, __m256i _2, __m256i _3) 4395 { 4396 return (__m256i)__builtin_lasx_xvmaddwod_d_w ((v4i64)_1, (v8i32)_2, (v8i32)_3); 4397 } 4398 4399 /* Assembly instruction format: xd, xj, xk. */ 4400 /* Data types in instruction templates: V8SI, V8SI, V16HI, V16HI. */ 4401 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4402 __m256i __lasx_xvmaddwod_w_h (__m256i _1, __m256i _2, __m256i _3) 4403 { 4404 return (__m256i)__builtin_lasx_xvmaddwod_w_h ((v8i32)_1, (v16i16)_2, (v16i16)_3); 4405 } 4406 4407 /* Assembly instruction format: xd, xj, xk. */ 4408 /* Data types in instruction templates: V16HI, V16HI, V32QI, V32QI. */ 4409 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4410 __m256i __lasx_xvmaddwod_h_b (__m256i _1, __m256i _2, __m256i _3) 4411 { 4412 return (__m256i)__builtin_lasx_xvmaddwod_h_b ((v16i16)_1, (v32i8)_2, (v32i8)_3); 4413 } 4414 4415 /* Assembly instruction format: xd, xj, xk. */ 4416 /* Data types in instruction templates: UV4DI, UV4DI, UV4DI, UV4DI. */ 4417 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4418 __m256i __lasx_xvmaddwod_q_du (__m256i _1, __m256i _2, __m256i _3) 4419 { 4420 return (__m256i)__builtin_lasx_xvmaddwod_q_du ((v4u64)_1, (v4u64)_2, (v4u64)_3); 4421 } 4422 4423 /* Assembly instruction format: xd, xj, xk. */ 4424 /* Data types in instruction templates: UV4DI, UV4DI, UV8SI, UV8SI. */ 4425 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4426 __m256i __lasx_xvmaddwod_d_wu (__m256i _1, __m256i _2, __m256i _3) 4427 { 4428 return (__m256i)__builtin_lasx_xvmaddwod_d_wu ((v4u64)_1, (v8u32)_2, (v8u32)_3); 4429 } 4430 4431 /* Assembly instruction format: xd, xj, xk. */ 4432 /* Data types in instruction templates: UV8SI, UV8SI, UV16HI, UV16HI. */ 4433 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4434 __m256i __lasx_xvmaddwod_w_hu (__m256i _1, __m256i _2, __m256i _3) 4435 { 4436 return (__m256i)__builtin_lasx_xvmaddwod_w_hu ((v8u32)_1, (v16u16)_2, (v16u16)_3); 4437 } 4438 4439 /* Assembly instruction format: xd, xj, xk. */ 4440 /* Data types in instruction templates: UV16HI, UV16HI, UV32QI, UV32QI. */ 4441 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4442 __m256i __lasx_xvmaddwod_h_bu (__m256i _1, __m256i _2, __m256i _3) 4443 { 4444 return (__m256i)__builtin_lasx_xvmaddwod_h_bu ((v16u16)_1, (v32u8)_2, (v32u8)_3); 4445 } 4446 4447 /* Assembly instruction format: xd, xj, xk. */ 4448 /* Data types in instruction templates: V4DI, V4DI, UV4DI, V4DI. */ 4449 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4450 __m256i __lasx_xvmaddwev_q_du_d (__m256i _1, __m256i _2, __m256i _3) 4451 { 4452 return (__m256i)__builtin_lasx_xvmaddwev_q_du_d ((v4i64)_1, (v4u64)_2, (v4i64)_3); 4453 } 4454 4455 /* Assembly instruction format: xd, xj, xk. */ 4456 /* Data types in instruction templates: V4DI, V4DI, UV8SI, V8SI. */ 4457 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4458 __m256i __lasx_xvmaddwev_d_wu_w (__m256i _1, __m256i _2, __m256i _3) 4459 { 4460 return (__m256i)__builtin_lasx_xvmaddwev_d_wu_w ((v4i64)_1, (v8u32)_2, (v8i32)_3); 4461 } 4462 4463 /* Assembly instruction format: xd, xj, xk. */ 4464 /* Data types in instruction templates: V8SI, V8SI, UV16HI, V16HI. */ 4465 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4466 __m256i __lasx_xvmaddwev_w_hu_h (__m256i _1, __m256i _2, __m256i _3) 4467 { 4468 return (__m256i)__builtin_lasx_xvmaddwev_w_hu_h ((v8i32)_1, (v16u16)_2, (v16i16)_3); 4469 } 4470 4471 /* Assembly instruction format: xd, xj, xk. */ 4472 /* Data types in instruction templates: V16HI, V16HI, UV32QI, V32QI. */ 4473 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4474 __m256i __lasx_xvmaddwev_h_bu_b (__m256i _1, __m256i _2, __m256i _3) 4475 { 4476 return (__m256i)__builtin_lasx_xvmaddwev_h_bu_b ((v16i16)_1, (v32u8)_2, (v32i8)_3); 4477 } 4478 4479 /* Assembly instruction format: xd, xj, xk. */ 4480 /* Data types in instruction templates: V4DI, V4DI, UV4DI, V4DI. */ 4481 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4482 __m256i __lasx_xvmaddwod_q_du_d (__m256i _1, __m256i _2, __m256i _3) 4483 { 4484 return (__m256i)__builtin_lasx_xvmaddwod_q_du_d ((v4i64)_1, (v4u64)_2, (v4i64)_3); 4485 } 4486 4487 /* Assembly instruction format: xd, xj, xk. */ 4488 /* Data types in instruction templates: V4DI, V4DI, UV8SI, V8SI. */ 4489 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4490 __m256i __lasx_xvmaddwod_d_wu_w (__m256i _1, __m256i _2, __m256i _3) 4491 { 4492 return (__m256i)__builtin_lasx_xvmaddwod_d_wu_w ((v4i64)_1, (v8u32)_2, (v8i32)_3); 4493 } 4494 4495 /* Assembly instruction format: xd, xj, xk. */ 4496 /* Data types in instruction templates: V8SI, V8SI, UV16HI, V16HI. */ 4497 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4498 __m256i __lasx_xvmaddwod_w_hu_h (__m256i _1, __m256i _2, __m256i _3) 4499 { 4500 return (__m256i)__builtin_lasx_xvmaddwod_w_hu_h ((v8i32)_1, (v16u16)_2, (v16i16)_3); 4501 } 4502 4503 /* Assembly instruction format: xd, xj, xk. */ 4504 /* Data types in instruction templates: V16HI, V16HI, UV32QI, V32QI. */ 4505 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4506 __m256i __lasx_xvmaddwod_h_bu_b (__m256i _1, __m256i _2, __m256i _3) 4507 { 4508 return (__m256i)__builtin_lasx_xvmaddwod_h_bu_b ((v16i16)_1, (v32u8)_2, (v32i8)_3); 4509 } 4510 4511 /* Assembly instruction format: xd, xj, xk. */ 4512 /* Data types in instruction templates: V32QI, V32QI, V32QI. */ 4513 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4514 __m256i __lasx_xvrotr_b (__m256i _1, __m256i _2) 4515 { 4516 return (__m256i)__builtin_lasx_xvrotr_b ((v32i8)_1, (v32i8)_2); 4517 } 4518 4519 /* Assembly instruction format: xd, xj, xk. */ 4520 /* Data types in instruction templates: V16HI, V16HI, V16HI. */ 4521 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4522 __m256i __lasx_xvrotr_h (__m256i _1, __m256i _2) 4523 { 4524 return (__m256i)__builtin_lasx_xvrotr_h ((v16i16)_1, (v16i16)_2); 4525 } 4526 4527 /* Assembly instruction format: xd, xj, xk. */ 4528 /* Data types in instruction templates: V8SI, V8SI, V8SI. */ 4529 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4530 __m256i __lasx_xvrotr_w (__m256i _1, __m256i _2) 4531 { 4532 return (__m256i)__builtin_lasx_xvrotr_w ((v8i32)_1, (v8i32)_2); 4533 } 4534 4535 /* Assembly instruction format: xd, xj, xk. */ 4536 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4537 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4538 __m256i __lasx_xvrotr_d (__m256i _1, __m256i _2) 4539 { 4540 return (__m256i)__builtin_lasx_xvrotr_d ((v4i64)_1, (v4i64)_2); 4541 } 4542 4543 /* Assembly instruction format: xd, xj, xk. */ 4544 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4545 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4546 __m256i __lasx_xvadd_q (__m256i _1, __m256i _2) 4547 { 4548 return (__m256i)__builtin_lasx_xvadd_q ((v4i64)_1, (v4i64)_2); 4549 } 4550 4551 /* Assembly instruction format: xd, xj, xk. */ 4552 /* Data types in instruction templates: V4DI, V4DI, V4DI. */ 4553 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4554 __m256i __lasx_xvsub_q (__m256i _1, __m256i _2) 4555 { 4556 return (__m256i)__builtin_lasx_xvsub_q ((v4i64)_1, (v4i64)_2); 4557 } 4558 4559 /* Assembly instruction format: xd, xj, xk. */ 4560 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */ 4561 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4562 __m256i __lasx_xvaddwev_q_du_d (__m256i _1, __m256i _2) 4563 { 4564 return (__m256i)__builtin_lasx_xvaddwev_q_du_d ((v4u64)_1, (v4i64)_2); 4565 } 4566 4567 /* Assembly instruction format: xd, xj, xk. */ 4568 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */ 4569 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4570 __m256i __lasx_xvaddwod_q_du_d (__m256i _1, __m256i _2) 4571 { 4572 return (__m256i)__builtin_lasx_xvaddwod_q_du_d ((v4u64)_1, (v4i64)_2); 4573 } 4574 4575 /* Assembly instruction format: xd, xj, xk. */ 4576 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */ 4577 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4578 __m256i __lasx_xvmulwev_q_du_d (__m256i _1, __m256i _2) 4579 { 4580 return (__m256i)__builtin_lasx_xvmulwev_q_du_d ((v4u64)_1, (v4i64)_2); 4581 } 4582 4583 /* Assembly instruction format: xd, xj, xk. */ 4584 /* Data types in instruction templates: V4DI, UV4DI, V4DI. */ 4585 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4586 __m256i __lasx_xvmulwod_q_du_d (__m256i _1, __m256i _2) 4587 { 4588 return (__m256i)__builtin_lasx_xvmulwod_q_du_d ((v4u64)_1, (v4i64)_2); 4589 } 4590 4591 /* Assembly instruction format: xd, xj. */ 4592 /* Data types in instruction templates: V32QI, V32QI. */ 4593 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4594 __m256i __lasx_xvmskgez_b (__m256i _1) 4595 { 4596 return (__m256i)__builtin_lasx_xvmskgez_b ((v32i8)_1); 4597 } 4598 4599 /* Assembly instruction format: xd, xj. */ 4600 /* Data types in instruction templates: V32QI, V32QI. */ 4601 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4602 __m256i __lasx_xvmsknz_b (__m256i _1) 4603 { 4604 return (__m256i)__builtin_lasx_xvmsknz_b ((v32i8)_1); 4605 } 4606 4607 /* Assembly instruction format: xd, xj. */ 4608 /* Data types in instruction templates: V16HI, V32QI. */ 4609 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4610 __m256i __lasx_xvexth_h_b (__m256i _1) 4611 { 4612 return (__m256i)__builtin_lasx_xvexth_h_b ((v32i8)_1); 4613 } 4614 4615 /* Assembly instruction format: xd, xj. */ 4616 /* Data types in instruction templates: V8SI, V16HI. */ 4617 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4618 __m256i __lasx_xvexth_w_h (__m256i _1) 4619 { 4620 return (__m256i)__builtin_lasx_xvexth_w_h ((v16i16)_1); 4621 } 4622 4623 /* Assembly instruction format: xd, xj. */ 4624 /* Data types in instruction templates: V4DI, V8SI. */ 4625 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4626 __m256i __lasx_xvexth_d_w (__m256i _1) 4627 { 4628 return (__m256i)__builtin_lasx_xvexth_d_w ((v8i32)_1); 4629 } 4630 4631 /* Assembly instruction format: xd, xj. */ 4632 /* Data types in instruction templates: V4DI, V4DI. */ 4633 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4634 __m256i __lasx_xvexth_q_d (__m256i _1) 4635 { 4636 return (__m256i)__builtin_lasx_xvexth_q_d ((v4i64)_1); 4637 } 4638 4639 /* Assembly instruction format: xd, xj. */ 4640 /* Data types in instruction templates: UV16HI, UV32QI. */ 4641 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4642 __m256i __lasx_xvexth_hu_bu (__m256i _1) 4643 { 4644 return (__m256i)__builtin_lasx_xvexth_hu_bu ((v32u8)_1); 4645 } 4646 4647 /* Assembly instruction format: xd, xj. */ 4648 /* Data types in instruction templates: UV8SI, UV16HI. */ 4649 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4650 __m256i __lasx_xvexth_wu_hu (__m256i _1) 4651 { 4652 return (__m256i)__builtin_lasx_xvexth_wu_hu ((v16u16)_1); 4653 } 4654 4655 /* Assembly instruction format: xd, xj. */ 4656 /* Data types in instruction templates: UV4DI, UV8SI. */ 4657 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4658 __m256i __lasx_xvexth_du_wu (__m256i _1) 4659 { 4660 return (__m256i)__builtin_lasx_xvexth_du_wu ((v8u32)_1); 4661 } 4662 4663 /* Assembly instruction format: xd, xj. */ 4664 /* Data types in instruction templates: UV4DI, UV4DI. */ 4665 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4666 __m256i __lasx_xvexth_qu_du (__m256i _1) 4667 { 4668 return (__m256i)__builtin_lasx_xvexth_qu_du ((v4u64)_1); 4669 } 4670 4671 /* Assembly instruction format: xd, xj, ui3. */ 4672 /* Data types in instruction templates: V32QI, V32QI, UQI. */ 4673 #define __lasx_xvrotri_b(/*__m256i*/ _1, /*ui3*/ _2) \ 4674 ((__m256i)__builtin_lasx_xvrotri_b ((v32i8)(_1), (_2))) 4675 4676 /* Assembly instruction format: xd, xj, ui4. */ 4677 /* Data types in instruction templates: V16HI, V16HI, UQI. */ 4678 #define __lasx_xvrotri_h(/*__m256i*/ _1, /*ui4*/ _2) \ 4679 ((__m256i)__builtin_lasx_xvrotri_h ((v16i16)(_1), (_2))) 4680 4681 /* Assembly instruction format: xd, xj, ui5. */ 4682 /* Data types in instruction templates: V8SI, V8SI, UQI. */ 4683 #define __lasx_xvrotri_w(/*__m256i*/ _1, /*ui5*/ _2) \ 4684 ((__m256i)__builtin_lasx_xvrotri_w ((v8i32)(_1), (_2))) 4685 4686 /* Assembly instruction format: xd, xj, ui6. */ 4687 /* Data types in instruction templates: V4DI, V4DI, UQI. */ 4688 #define __lasx_xvrotri_d(/*__m256i*/ _1, /*ui6*/ _2) \ 4689 ((__m256i)__builtin_lasx_xvrotri_d ((v4i64)(_1), (_2))) 4690 4691 /* Assembly instruction format: xd, xj. */ 4692 /* Data types in instruction templates: V4DI, V4DI. */ 4693 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4694 __m256i __lasx_xvextl_q_d (__m256i _1) 4695 { 4696 return (__m256i)__builtin_lasx_xvextl_q_d ((v4i64)_1); 4697 } 4698 4699 /* Assembly instruction format: xd, xj, ui4. */ 4700 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4701 #define __lasx_xvsrlni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4702 ((__m256i)__builtin_lasx_xvsrlni_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4703 4704 /* Assembly instruction format: xd, xj, ui5. */ 4705 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4706 #define __lasx_xvsrlni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4707 ((__m256i)__builtin_lasx_xvsrlni_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4708 4709 /* Assembly instruction format: xd, xj, ui6. */ 4710 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4711 #define __lasx_xvsrlni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4712 ((__m256i)__builtin_lasx_xvsrlni_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4713 4714 /* Assembly instruction format: xd, xj, ui7. */ 4715 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4716 #define __lasx_xvsrlni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4717 ((__m256i)__builtin_lasx_xvsrlni_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4718 4719 /* Assembly instruction format: xd, xj, ui4. */ 4720 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4721 #define __lasx_xvsrlrni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4722 ((__m256i)__builtin_lasx_xvsrlrni_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4723 4724 /* Assembly instruction format: xd, xj, ui5. */ 4725 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4726 #define __lasx_xvsrlrni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4727 ((__m256i)__builtin_lasx_xvsrlrni_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4728 4729 /* Assembly instruction format: xd, xj, ui6. */ 4730 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4731 #define __lasx_xvsrlrni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4732 ((__m256i)__builtin_lasx_xvsrlrni_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4733 4734 /* Assembly instruction format: xd, xj, ui7. */ 4735 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4736 #define __lasx_xvsrlrni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4737 ((__m256i)__builtin_lasx_xvsrlrni_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4738 4739 /* Assembly instruction format: xd, xj, ui4. */ 4740 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4741 #define __lasx_xvssrlni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4742 ((__m256i)__builtin_lasx_xvssrlni_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4743 4744 /* Assembly instruction format: xd, xj, ui5. */ 4745 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4746 #define __lasx_xvssrlni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4747 ((__m256i)__builtin_lasx_xvssrlni_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4748 4749 /* Assembly instruction format: xd, xj, ui6. */ 4750 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4751 #define __lasx_xvssrlni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4752 ((__m256i)__builtin_lasx_xvssrlni_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4753 4754 /* Assembly instruction format: xd, xj, ui7. */ 4755 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4756 #define __lasx_xvssrlni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4757 ((__m256i)__builtin_lasx_xvssrlni_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4758 4759 /* Assembly instruction format: xd, xj, ui4. */ 4760 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */ 4761 #define __lasx_xvssrlni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4762 ((__m256i)__builtin_lasx_xvssrlni_bu_h ((v32u8)(_1), (v32i8)(_2), (_3))) 4763 4764 /* Assembly instruction format: xd, xj, ui5. */ 4765 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */ 4766 #define __lasx_xvssrlni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4767 ((__m256i)__builtin_lasx_xvssrlni_hu_w ((v16u16)(_1), (v16i16)(_2), (_3))) 4768 4769 /* Assembly instruction format: xd, xj, ui6. */ 4770 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */ 4771 #define __lasx_xvssrlni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4772 ((__m256i)__builtin_lasx_xvssrlni_wu_d ((v8u32)(_1), (v8i32)(_2), (_3))) 4773 4774 /* Assembly instruction format: xd, xj, ui7. */ 4775 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */ 4776 #define __lasx_xvssrlni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4777 ((__m256i)__builtin_lasx_xvssrlni_du_q ((v4u64)(_1), (v4i64)(_2), (_3))) 4778 4779 /* Assembly instruction format: xd, xj, ui4. */ 4780 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4781 #define __lasx_xvssrlrni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4782 ((__m256i)__builtin_lasx_xvssrlrni_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4783 4784 /* Assembly instruction format: xd, xj, ui5. */ 4785 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4786 #define __lasx_xvssrlrni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4787 ((__m256i)__builtin_lasx_xvssrlrni_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4788 4789 /* Assembly instruction format: xd, xj, ui6. */ 4790 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4791 #define __lasx_xvssrlrni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4792 ((__m256i)__builtin_lasx_xvssrlrni_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4793 4794 /* Assembly instruction format: xd, xj, ui7. */ 4795 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4796 #define __lasx_xvssrlrni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4797 ((__m256i)__builtin_lasx_xvssrlrni_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4798 4799 /* Assembly instruction format: xd, xj, ui4. */ 4800 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */ 4801 #define __lasx_xvssrlrni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4802 ((__m256i)__builtin_lasx_xvssrlrni_bu_h ((v32u8)(_1), (v32i8)(_2), (_3))) 4803 4804 /* Assembly instruction format: xd, xj, ui5. */ 4805 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */ 4806 #define __lasx_xvssrlrni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4807 ((__m256i)__builtin_lasx_xvssrlrni_hu_w ((v16u16)(_1), (v16i16)(_2), (_3))) 4808 4809 /* Assembly instruction format: xd, xj, ui6. */ 4810 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */ 4811 #define __lasx_xvssrlrni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4812 ((__m256i)__builtin_lasx_xvssrlrni_wu_d ((v8u32)(_1), (v8i32)(_2), (_3))) 4813 4814 /* Assembly instruction format: xd, xj, ui7. */ 4815 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */ 4816 #define __lasx_xvssrlrni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4817 ((__m256i)__builtin_lasx_xvssrlrni_du_q ((v4u64)(_1), (v4i64)(_2), (_3))) 4818 4819 /* Assembly instruction format: xd, xj, ui4. */ 4820 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4821 #define __lasx_xvsrani_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4822 ((__m256i)__builtin_lasx_xvsrani_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4823 4824 /* Assembly instruction format: xd, xj, ui5. */ 4825 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4826 #define __lasx_xvsrani_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4827 ((__m256i)__builtin_lasx_xvsrani_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4828 4829 /* Assembly instruction format: xd, xj, ui6. */ 4830 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4831 #define __lasx_xvsrani_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4832 ((__m256i)__builtin_lasx_xvsrani_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4833 4834 /* Assembly instruction format: xd, xj, ui7. */ 4835 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4836 #define __lasx_xvsrani_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4837 ((__m256i)__builtin_lasx_xvsrani_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4838 4839 /* Assembly instruction format: xd, xj, ui4. */ 4840 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4841 #define __lasx_xvsrarni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4842 ((__m256i)__builtin_lasx_xvsrarni_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4843 4844 /* Assembly instruction format: xd, xj, ui5. */ 4845 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4846 #define __lasx_xvsrarni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4847 ((__m256i)__builtin_lasx_xvsrarni_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4848 4849 /* Assembly instruction format: xd, xj, ui6. */ 4850 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4851 #define __lasx_xvsrarni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4852 ((__m256i)__builtin_lasx_xvsrarni_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4853 4854 /* Assembly instruction format: xd, xj, ui7. */ 4855 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4856 #define __lasx_xvsrarni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4857 ((__m256i)__builtin_lasx_xvsrarni_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4858 4859 /* Assembly instruction format: xd, xj, ui4. */ 4860 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4861 #define __lasx_xvssrani_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4862 ((__m256i)__builtin_lasx_xvssrani_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4863 4864 /* Assembly instruction format: xd, xj, ui5. */ 4865 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4866 #define __lasx_xvssrani_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4867 ((__m256i)__builtin_lasx_xvssrani_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4868 4869 /* Assembly instruction format: xd, xj, ui6. */ 4870 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4871 #define __lasx_xvssrani_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4872 ((__m256i)__builtin_lasx_xvssrani_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4873 4874 /* Assembly instruction format: xd, xj, ui7. */ 4875 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4876 #define __lasx_xvssrani_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4877 ((__m256i)__builtin_lasx_xvssrani_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4878 4879 /* Assembly instruction format: xd, xj, ui4. */ 4880 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */ 4881 #define __lasx_xvssrani_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4882 ((__m256i)__builtin_lasx_xvssrani_bu_h ((v32u8)(_1), (v32i8)(_2), (_3))) 4883 4884 /* Assembly instruction format: xd, xj, ui5. */ 4885 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */ 4886 #define __lasx_xvssrani_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4887 ((__m256i)__builtin_lasx_xvssrani_hu_w ((v16u16)(_1), (v16i16)(_2), (_3))) 4888 4889 /* Assembly instruction format: xd, xj, ui6. */ 4890 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */ 4891 #define __lasx_xvssrani_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4892 ((__m256i)__builtin_lasx_xvssrani_wu_d ((v8u32)(_1), (v8i32)(_2), (_3))) 4893 4894 /* Assembly instruction format: xd, xj, ui7. */ 4895 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */ 4896 #define __lasx_xvssrani_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4897 ((__m256i)__builtin_lasx_xvssrani_du_q ((v4u64)(_1), (v4i64)(_2), (_3))) 4898 4899 /* Assembly instruction format: xd, xj, ui4. */ 4900 /* Data types in instruction templates: V32QI, V32QI, V32QI, USI. */ 4901 #define __lasx_xvssrarni_b_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4902 ((__m256i)__builtin_lasx_xvssrarni_b_h ((v32i8)(_1), (v32i8)(_2), (_3))) 4903 4904 /* Assembly instruction format: xd, xj, ui5. */ 4905 /* Data types in instruction templates: V16HI, V16HI, V16HI, USI. */ 4906 #define __lasx_xvssrarni_h_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4907 ((__m256i)__builtin_lasx_xvssrarni_h_w ((v16i16)(_1), (v16i16)(_2), (_3))) 4908 4909 /* Assembly instruction format: xd, xj, ui6. */ 4910 /* Data types in instruction templates: V8SI, V8SI, V8SI, USI. */ 4911 #define __lasx_xvssrarni_w_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4912 ((__m256i)__builtin_lasx_xvssrarni_w_d ((v8i32)(_1), (v8i32)(_2), (_3))) 4913 4914 /* Assembly instruction format: xd, xj, ui7. */ 4915 /* Data types in instruction templates: V4DI, V4DI, V4DI, USI. */ 4916 #define __lasx_xvssrarni_d_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4917 ((__m256i)__builtin_lasx_xvssrarni_d_q ((v4i64)(_1), (v4i64)(_2), (_3))) 4918 4919 /* Assembly instruction format: xd, xj, ui4. */ 4920 /* Data types in instruction templates: UV32QI, UV32QI, V32QI, USI. */ 4921 #define __lasx_xvssrarni_bu_h(/*__m256i*/ _1, /*__m256i*/ _2, /*ui4*/ _3) \ 4922 ((__m256i)__builtin_lasx_xvssrarni_bu_h ((v32u8)(_1), (v32i8)(_2), (_3))) 4923 4924 /* Assembly instruction format: xd, xj, ui5. */ 4925 /* Data types in instruction templates: UV16HI, UV16HI, V16HI, USI. */ 4926 #define __lasx_xvssrarni_hu_w(/*__m256i*/ _1, /*__m256i*/ _2, /*ui5*/ _3) \ 4927 ((__m256i)__builtin_lasx_xvssrarni_hu_w ((v16u16)(_1), (v16i16)(_2), (_3))) 4928 4929 /* Assembly instruction format: xd, xj, ui6. */ 4930 /* Data types in instruction templates: UV8SI, UV8SI, V8SI, USI. */ 4931 #define __lasx_xvssrarni_wu_d(/*__m256i*/ _1, /*__m256i*/ _2, /*ui6*/ _3) \ 4932 ((__m256i)__builtin_lasx_xvssrarni_wu_d ((v8u32)(_1), (v8i32)(_2), (_3))) 4933 4934 /* Assembly instruction format: xd, xj, ui7. */ 4935 /* Data types in instruction templates: UV4DI, UV4DI, V4DI, USI. */ 4936 #define __lasx_xvssrarni_du_q(/*__m256i*/ _1, /*__m256i*/ _2, /*ui7*/ _3) \ 4937 ((__m256i)__builtin_lasx_xvssrarni_du_q ((v4u64)(_1), (v4i64)(_2), (_3))) 4938 4939 /* Assembly instruction format: cd, xj. */ 4940 /* Data types in instruction templates: SI, UV32QI. */ 4941 #define __lasx_xbnz_b(/*__m256i*/ _1) \ 4942 ((int)__builtin_lasx_xbnz_b ((v32u8)(_1))) 4943 4944 /* Assembly instruction format: cd, xj. */ 4945 /* Data types in instruction templates: SI, UV4DI. */ 4946 #define __lasx_xbnz_d(/*__m256i*/ _1) \ 4947 ((int)__builtin_lasx_xbnz_d ((v4u64)(_1))) 4948 4949 /* Assembly instruction format: cd, xj. */ 4950 /* Data types in instruction templates: SI, UV16HI. */ 4951 #define __lasx_xbnz_h(/*__m256i*/ _1) \ 4952 ((int)__builtin_lasx_xbnz_h ((v16u16)(_1))) 4953 4954 /* Assembly instruction format: cd, xj. */ 4955 /* Data types in instruction templates: SI, UV32QI. */ 4956 #define __lasx_xbnz_v(/*__m256i*/ _1) \ 4957 ((int)__builtin_lasx_xbnz_v ((v32u8)(_1))) 4958 4959 /* Assembly instruction format: cd, xj. */ 4960 /* Data types in instruction templates: SI, UV8SI. */ 4961 #define __lasx_xbnz_w(/*__m256i*/ _1) \ 4962 ((int)__builtin_lasx_xbnz_w ((v8u32)(_1))) 4963 4964 /* Assembly instruction format: cd, xj. */ 4965 /* Data types in instruction templates: SI, UV32QI. */ 4966 #define __lasx_xbz_b(/*__m256i*/ _1) \ 4967 ((int)__builtin_lasx_xbz_b ((v32u8)(_1))) 4968 4969 /* Assembly instruction format: cd, xj. */ 4970 /* Data types in instruction templates: SI, UV4DI. */ 4971 #define __lasx_xbz_d(/*__m256i*/ _1) \ 4972 ((int)__builtin_lasx_xbz_d ((v4u64)(_1))) 4973 4974 /* Assembly instruction format: cd, xj. */ 4975 /* Data types in instruction templates: SI, UV16HI. */ 4976 #define __lasx_xbz_h(/*__m256i*/ _1) \ 4977 ((int)__builtin_lasx_xbz_h ((v16u16)(_1))) 4978 4979 /* Assembly instruction format: cd, xj. */ 4980 /* Data types in instruction templates: SI, UV32QI. */ 4981 #define __lasx_xbz_v(/*__m256i*/ _1) \ 4982 ((int)__builtin_lasx_xbz_v ((v32u8)(_1))) 4983 4984 /* Assembly instruction format: cd, xj. */ 4985 /* Data types in instruction templates: SI, UV8SI. */ 4986 #define __lasx_xbz_w(/*__m256i*/ _1) \ 4987 ((int)__builtin_lasx_xbz_w ((v8u32)(_1))) 4988 4989 /* Assembly instruction format: xd, xj, xk. */ 4990 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 4991 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 4992 __m256i __lasx_xvfcmp_caf_d (__m256d _1, __m256d _2) 4993 { 4994 return (__m256i)__builtin_lasx_xvfcmp_caf_d ((v4f64)_1, (v4f64)_2); 4995 } 4996 4997 /* Assembly instruction format: xd, xj, xk. */ 4998 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 4999 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5000 __m256i __lasx_xvfcmp_caf_s (__m256 _1, __m256 _2) 5001 { 5002 return (__m256i)__builtin_lasx_xvfcmp_caf_s ((v8f32)_1, (v8f32)_2); 5003 } 5004 5005 /* Assembly instruction format: xd, xj, xk. */ 5006 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5007 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5008 __m256i __lasx_xvfcmp_ceq_d (__m256d _1, __m256d _2) 5009 { 5010 return (__m256i)__builtin_lasx_xvfcmp_ceq_d ((v4f64)_1, (v4f64)_2); 5011 } 5012 5013 /* Assembly instruction format: xd, xj, xk. */ 5014 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5015 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5016 __m256i __lasx_xvfcmp_ceq_s (__m256 _1, __m256 _2) 5017 { 5018 return (__m256i)__builtin_lasx_xvfcmp_ceq_s ((v8f32)_1, (v8f32)_2); 5019 } 5020 5021 /* Assembly instruction format: xd, xj, xk. */ 5022 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5023 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5024 __m256i __lasx_xvfcmp_cle_d (__m256d _1, __m256d _2) 5025 { 5026 return (__m256i)__builtin_lasx_xvfcmp_cle_d ((v4f64)_1, (v4f64)_2); 5027 } 5028 5029 /* Assembly instruction format: xd, xj, xk. */ 5030 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5031 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5032 __m256i __lasx_xvfcmp_cle_s (__m256 _1, __m256 _2) 5033 { 5034 return (__m256i)__builtin_lasx_xvfcmp_cle_s ((v8f32)_1, (v8f32)_2); 5035 } 5036 5037 /* Assembly instruction format: xd, xj, xk. */ 5038 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5039 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5040 __m256i __lasx_xvfcmp_clt_d (__m256d _1, __m256d _2) 5041 { 5042 return (__m256i)__builtin_lasx_xvfcmp_clt_d ((v4f64)_1, (v4f64)_2); 5043 } 5044 5045 /* Assembly instruction format: xd, xj, xk. */ 5046 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5047 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5048 __m256i __lasx_xvfcmp_clt_s (__m256 _1, __m256 _2) 5049 { 5050 return (__m256i)__builtin_lasx_xvfcmp_clt_s ((v8f32)_1, (v8f32)_2); 5051 } 5052 5053 /* Assembly instruction format: xd, xj, xk. */ 5054 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5055 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5056 __m256i __lasx_xvfcmp_cne_d (__m256d _1, __m256d _2) 5057 { 5058 return (__m256i)__builtin_lasx_xvfcmp_cne_d ((v4f64)_1, (v4f64)_2); 5059 } 5060 5061 /* Assembly instruction format: xd, xj, xk. */ 5062 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5063 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5064 __m256i __lasx_xvfcmp_cne_s (__m256 _1, __m256 _2) 5065 { 5066 return (__m256i)__builtin_lasx_xvfcmp_cne_s ((v8f32)_1, (v8f32)_2); 5067 } 5068 5069 /* Assembly instruction format: xd, xj, xk. */ 5070 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5071 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5072 __m256i __lasx_xvfcmp_cor_d (__m256d _1, __m256d _2) 5073 { 5074 return (__m256i)__builtin_lasx_xvfcmp_cor_d ((v4f64)_1, (v4f64)_2); 5075 } 5076 5077 /* Assembly instruction format: xd, xj, xk. */ 5078 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5079 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5080 __m256i __lasx_xvfcmp_cor_s (__m256 _1, __m256 _2) 5081 { 5082 return (__m256i)__builtin_lasx_xvfcmp_cor_s ((v8f32)_1, (v8f32)_2); 5083 } 5084 5085 /* Assembly instruction format: xd, xj, xk. */ 5086 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5087 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5088 __m256i __lasx_xvfcmp_cueq_d (__m256d _1, __m256d _2) 5089 { 5090 return (__m256i)__builtin_lasx_xvfcmp_cueq_d ((v4f64)_1, (v4f64)_2); 5091 } 5092 5093 /* Assembly instruction format: xd, xj, xk. */ 5094 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5095 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5096 __m256i __lasx_xvfcmp_cueq_s (__m256 _1, __m256 _2) 5097 { 5098 return (__m256i)__builtin_lasx_xvfcmp_cueq_s ((v8f32)_1, (v8f32)_2); 5099 } 5100 5101 /* Assembly instruction format: xd, xj, xk. */ 5102 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5103 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5104 __m256i __lasx_xvfcmp_cule_d (__m256d _1, __m256d _2) 5105 { 5106 return (__m256i)__builtin_lasx_xvfcmp_cule_d ((v4f64)_1, (v4f64)_2); 5107 } 5108 5109 /* Assembly instruction format: xd, xj, xk. */ 5110 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5111 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5112 __m256i __lasx_xvfcmp_cule_s (__m256 _1, __m256 _2) 5113 { 5114 return (__m256i)__builtin_lasx_xvfcmp_cule_s ((v8f32)_1, (v8f32)_2); 5115 } 5116 5117 /* Assembly instruction format: xd, xj, xk. */ 5118 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5119 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5120 __m256i __lasx_xvfcmp_cult_d (__m256d _1, __m256d _2) 5121 { 5122 return (__m256i)__builtin_lasx_xvfcmp_cult_d ((v4f64)_1, (v4f64)_2); 5123 } 5124 5125 /* Assembly instruction format: xd, xj, xk. */ 5126 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5127 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5128 __m256i __lasx_xvfcmp_cult_s (__m256 _1, __m256 _2) 5129 { 5130 return (__m256i)__builtin_lasx_xvfcmp_cult_s ((v8f32)_1, (v8f32)_2); 5131 } 5132 5133 /* Assembly instruction format: xd, xj, xk. */ 5134 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5135 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5136 __m256i __lasx_xvfcmp_cun_d (__m256d _1, __m256d _2) 5137 { 5138 return (__m256i)__builtin_lasx_xvfcmp_cun_d ((v4f64)_1, (v4f64)_2); 5139 } 5140 5141 /* Assembly instruction format: xd, xj, xk. */ 5142 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5143 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5144 __m256i __lasx_xvfcmp_cune_d (__m256d _1, __m256d _2) 5145 { 5146 return (__m256i)__builtin_lasx_xvfcmp_cune_d ((v4f64)_1, (v4f64)_2); 5147 } 5148 5149 /* Assembly instruction format: xd, xj, xk. */ 5150 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5151 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5152 __m256i __lasx_xvfcmp_cune_s (__m256 _1, __m256 _2) 5153 { 5154 return (__m256i)__builtin_lasx_xvfcmp_cune_s ((v8f32)_1, (v8f32)_2); 5155 } 5156 5157 /* Assembly instruction format: xd, xj, xk. */ 5158 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5159 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5160 __m256i __lasx_xvfcmp_cun_s (__m256 _1, __m256 _2) 5161 { 5162 return (__m256i)__builtin_lasx_xvfcmp_cun_s ((v8f32)_1, (v8f32)_2); 5163 } 5164 5165 /* Assembly instruction format: xd, xj, xk. */ 5166 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5167 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5168 __m256i __lasx_xvfcmp_saf_d (__m256d _1, __m256d _2) 5169 { 5170 return (__m256i)__builtin_lasx_xvfcmp_saf_d ((v4f64)_1, (v4f64)_2); 5171 } 5172 5173 /* Assembly instruction format: xd, xj, xk. */ 5174 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5175 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5176 __m256i __lasx_xvfcmp_saf_s (__m256 _1, __m256 _2) 5177 { 5178 return (__m256i)__builtin_lasx_xvfcmp_saf_s ((v8f32)_1, (v8f32)_2); 5179 } 5180 5181 /* Assembly instruction format: xd, xj, xk. */ 5182 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5183 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5184 __m256i __lasx_xvfcmp_seq_d (__m256d _1, __m256d _2) 5185 { 5186 return (__m256i)__builtin_lasx_xvfcmp_seq_d ((v4f64)_1, (v4f64)_2); 5187 } 5188 5189 /* Assembly instruction format: xd, xj, xk. */ 5190 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5191 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5192 __m256i __lasx_xvfcmp_seq_s (__m256 _1, __m256 _2) 5193 { 5194 return (__m256i)__builtin_lasx_xvfcmp_seq_s ((v8f32)_1, (v8f32)_2); 5195 } 5196 5197 /* Assembly instruction format: xd, xj, xk. */ 5198 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5199 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5200 __m256i __lasx_xvfcmp_sle_d (__m256d _1, __m256d _2) 5201 { 5202 return (__m256i)__builtin_lasx_xvfcmp_sle_d ((v4f64)_1, (v4f64)_2); 5203 } 5204 5205 /* Assembly instruction format: xd, xj, xk. */ 5206 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5207 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5208 __m256i __lasx_xvfcmp_sle_s (__m256 _1, __m256 _2) 5209 { 5210 return (__m256i)__builtin_lasx_xvfcmp_sle_s ((v8f32)_1, (v8f32)_2); 5211 } 5212 5213 /* Assembly instruction format: xd, xj, xk. */ 5214 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5215 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5216 __m256i __lasx_xvfcmp_slt_d (__m256d _1, __m256d _2) 5217 { 5218 return (__m256i)__builtin_lasx_xvfcmp_slt_d ((v4f64)_1, (v4f64)_2); 5219 } 5220 5221 /* Assembly instruction format: xd, xj, xk. */ 5222 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5223 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5224 __m256i __lasx_xvfcmp_slt_s (__m256 _1, __m256 _2) 5225 { 5226 return (__m256i)__builtin_lasx_xvfcmp_slt_s ((v8f32)_1, (v8f32)_2); 5227 } 5228 5229 /* Assembly instruction format: xd, xj, xk. */ 5230 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5231 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5232 __m256i __lasx_xvfcmp_sne_d (__m256d _1, __m256d _2) 5233 { 5234 return (__m256i)__builtin_lasx_xvfcmp_sne_d ((v4f64)_1, (v4f64)_2); 5235 } 5236 5237 /* Assembly instruction format: xd, xj, xk. */ 5238 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5239 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5240 __m256i __lasx_xvfcmp_sne_s (__m256 _1, __m256 _2) 5241 { 5242 return (__m256i)__builtin_lasx_xvfcmp_sne_s ((v8f32)_1, (v8f32)_2); 5243 } 5244 5245 /* Assembly instruction format: xd, xj, xk. */ 5246 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5247 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5248 __m256i __lasx_xvfcmp_sor_d (__m256d _1, __m256d _2) 5249 { 5250 return (__m256i)__builtin_lasx_xvfcmp_sor_d ((v4f64)_1, (v4f64)_2); 5251 } 5252 5253 /* Assembly instruction format: xd, xj, xk. */ 5254 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5255 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5256 __m256i __lasx_xvfcmp_sor_s (__m256 _1, __m256 _2) 5257 { 5258 return (__m256i)__builtin_lasx_xvfcmp_sor_s ((v8f32)_1, (v8f32)_2); 5259 } 5260 5261 /* Assembly instruction format: xd, xj, xk. */ 5262 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5263 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5264 __m256i __lasx_xvfcmp_sueq_d (__m256d _1, __m256d _2) 5265 { 5266 return (__m256i)__builtin_lasx_xvfcmp_sueq_d ((v4f64)_1, (v4f64)_2); 5267 } 5268 5269 /* Assembly instruction format: xd, xj, xk. */ 5270 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5271 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5272 __m256i __lasx_xvfcmp_sueq_s (__m256 _1, __m256 _2) 5273 { 5274 return (__m256i)__builtin_lasx_xvfcmp_sueq_s ((v8f32)_1, (v8f32)_2); 5275 } 5276 5277 /* Assembly instruction format: xd, xj, xk. */ 5278 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5279 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5280 __m256i __lasx_xvfcmp_sule_d (__m256d _1, __m256d _2) 5281 { 5282 return (__m256i)__builtin_lasx_xvfcmp_sule_d ((v4f64)_1, (v4f64)_2); 5283 } 5284 5285 /* Assembly instruction format: xd, xj, xk. */ 5286 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5287 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5288 __m256i __lasx_xvfcmp_sule_s (__m256 _1, __m256 _2) 5289 { 5290 return (__m256i)__builtin_lasx_xvfcmp_sule_s ((v8f32)_1, (v8f32)_2); 5291 } 5292 5293 /* Assembly instruction format: xd, xj, xk. */ 5294 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5295 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5296 __m256i __lasx_xvfcmp_sult_d (__m256d _1, __m256d _2) 5297 { 5298 return (__m256i)__builtin_lasx_xvfcmp_sult_d ((v4f64)_1, (v4f64)_2); 5299 } 5300 5301 /* Assembly instruction format: xd, xj, xk. */ 5302 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5303 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5304 __m256i __lasx_xvfcmp_sult_s (__m256 _1, __m256 _2) 5305 { 5306 return (__m256i)__builtin_lasx_xvfcmp_sult_s ((v8f32)_1, (v8f32)_2); 5307 } 5308 5309 /* Assembly instruction format: xd, xj, xk. */ 5310 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5311 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5312 __m256i __lasx_xvfcmp_sun_d (__m256d _1, __m256d _2) 5313 { 5314 return (__m256i)__builtin_lasx_xvfcmp_sun_d ((v4f64)_1, (v4f64)_2); 5315 } 5316 5317 /* Assembly instruction format: xd, xj, xk. */ 5318 /* Data types in instruction templates: V4DI, V4DF, V4DF. */ 5319 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5320 __m256i __lasx_xvfcmp_sune_d (__m256d _1, __m256d _2) 5321 { 5322 return (__m256i)__builtin_lasx_xvfcmp_sune_d ((v4f64)_1, (v4f64)_2); 5323 } 5324 5325 /* Assembly instruction format: xd, xj, xk. */ 5326 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5327 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5328 __m256i __lasx_xvfcmp_sune_s (__m256 _1, __m256 _2) 5329 { 5330 return (__m256i)__builtin_lasx_xvfcmp_sune_s ((v8f32)_1, (v8f32)_2); 5331 } 5332 5333 /* Assembly instruction format: xd, xj, xk. */ 5334 /* Data types in instruction templates: V8SI, V8SF, V8SF. */ 5335 extern __inline __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 5336 __m256i __lasx_xvfcmp_sun_s (__m256 _1, __m256 _2) 5337 { 5338 return (__m256i)__builtin_lasx_xvfcmp_sun_s ((v8f32)_1, (v8f32)_2); 5339 } 5340 5341 /* Assembly instruction format: xd, xj, ui2. */ 5342 /* Data types in instruction templates: V4DF, V4DF, UQI. */ 5343 #define __lasx_xvpickve_d_f(/*__m256d*/ _1, /*ui2*/ _2) \ 5344 ((__m256d)__builtin_lasx_xvpickve_d_f ((v4f64)(_1), (_2))) 5345 5346 /* Assembly instruction format: xd, xj, ui3. */ 5347 /* Data types in instruction templates: V8SF, V8SF, UQI. */ 5348 #define __lasx_xvpickve_w_f(/*__m256*/ _1, /*ui3*/ _2) \ 5349 ((__m256)__builtin_lasx_xvpickve_w_f ((v8f32)(_1), (_2))) 5350 5351 /* Assembly instruction format: xd, si10. */ 5352 /* Data types in instruction templates: V32QI, HI. */ 5353 #define __lasx_xvrepli_b(/*si10*/ _1) \ 5354 ((__m256i)__builtin_lasx_xvrepli_b ((_1))) 5355 5356 /* Assembly instruction format: xd, si10. */ 5357 /* Data types in instruction templates: V4DI, HI. */ 5358 #define __lasx_xvrepli_d(/*si10*/ _1) \ 5359 ((__m256i)__builtin_lasx_xvrepli_d ((_1))) 5360 5361 /* Assembly instruction format: xd, si10. */ 5362 /* Data types in instruction templates: V16HI, HI. */ 5363 #define __lasx_xvrepli_h(/*si10*/ _1) \ 5364 ((__m256i)__builtin_lasx_xvrepli_h ((_1))) 5365 5366 /* Assembly instruction format: xd, si10. */ 5367 /* Data types in instruction templates: V8SI, HI. */ 5368 #define __lasx_xvrepli_w(/*si10*/ _1) \ 5369 ((__m256i)__builtin_lasx_xvrepli_w ((_1))) 5370 5371 #endif /* defined(__loongarch_asx). */ 5372 #endif /* _GCC_LOONGSON_ASXINTRIN_H. */ 5373