Mercurial > hg > CbC > CbC_gcc
comparison gcc/config/i386/avx512vlbwintrin.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 /* Copyright (C) 2014-2017 Free Software Foundation, Inc. | 1 /* Copyright (C) 2014-2018 Free Software Foundation, Inc. |
2 | 2 |
3 This file is part of GCC. | 3 This file is part of GCC. |
4 | 4 |
5 GCC is free software; you can redistribute it and/or modify | 5 GCC is free software; you can redistribute it and/or modify |
6 it under the terms of the GNU General Public License as published by | 6 it under the terms of the GNU General Public License as published by |
1465 (__mmask16) -1); | 1465 (__mmask16) -1); |
1466 } | 1466 } |
1467 | 1467 |
1468 extern __inline __mmask16 | 1468 extern __inline __mmask16 |
1469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 1469 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
1470 _mm_mask_cmp_epi8_mask (__mmask8 __U, __m128i __X, __m128i __Y, | 1470 _mm_mask_cmp_epi8_mask (__mmask16 __U, __m128i __X, __m128i __Y, |
1471 const int __P) | 1471 const int __P) |
1472 { | 1472 { |
1473 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, | 1473 return (__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi) __X, |
1474 (__v16qi) __Y, __P, | 1474 (__v16qi) __Y, __P, |
1475 (__mmask16) __U); | 1475 (__mmask16) __U); |
1484 (__mmask16) -1); | 1484 (__mmask16) -1); |
1485 } | 1485 } |
1486 | 1486 |
1487 extern __inline __mmask32 | 1487 extern __inline __mmask32 |
1488 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 1488 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
1489 _mm256_mask_cmp_epi8_mask (__mmask16 __U, __m256i __X, __m256i __Y, | 1489 _mm256_mask_cmp_epi8_mask (__mmask32 __U, __m256i __X, __m256i __Y, |
1490 const int __P) | 1490 const int __P) |
1491 { | 1491 { |
1492 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, | 1492 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, |
1493 (__v32qi) __Y, __P, | 1493 (__v32qi) __Y, __P, |
1494 (__mmask32) __U); | 1494 (__mmask32) __U); |
1495 } | 1495 } |
1496 | 1496 |
1497 extern __inline __mmask16 | 1497 extern __inline __mmask32 |
1498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 1498 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
1499 _mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P) | 1499 _mm256_cmp_epi8_mask (__m256i __X, __m256i __Y, const int __P) |
1500 { | 1500 { |
1501 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, | 1501 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, |
1502 (__v32qi) __Y, __P, | 1502 (__v32qi) __Y, __P, |
1541 (__mmask16) -1); | 1541 (__mmask16) -1); |
1542 } | 1542 } |
1543 | 1543 |
1544 extern __inline __mmask16 | 1544 extern __inline __mmask16 |
1545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 1545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
1546 _mm_mask_cmp_epu8_mask (__mmask8 __U, __m128i __X, __m128i __Y, | 1546 _mm_mask_cmp_epu8_mask (__mmask16 __U, __m128i __X, __m128i __Y, |
1547 const int __P) | 1547 const int __P) |
1548 { | 1548 { |
1549 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, | 1549 return (__mmask16) __builtin_ia32_ucmpb128_mask ((__v16qi) __X, |
1550 (__v16qi) __Y, __P, | 1550 (__v16qi) __Y, __P, |
1551 (__mmask16) __U); | 1551 (__mmask16) __U); |
1560 (__mmask16) -1); | 1560 (__mmask16) -1); |
1561 } | 1561 } |
1562 | 1562 |
1563 extern __inline __mmask32 | 1563 extern __inline __mmask32 |
1564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 1564 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
1565 _mm256_mask_cmp_epu8_mask (__mmask16 __U, __m256i __X, __m256i __Y, | 1565 _mm256_mask_cmp_epu8_mask (__mmask32 __U, __m256i __X, __m256i __Y, |
1566 const int __P) | 1566 const int __P) |
1567 { | 1567 { |
1568 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | 1568 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, |
1569 (__v32qi) __Y, __P, | 1569 (__v32qi) __Y, __P, |
1570 (__mmask32) __U); | 1570 (__mmask32) __U); |
1571 } | 1571 } |
1572 | 1572 |
1573 extern __inline __mmask16 | 1573 extern __inline __mmask32 |
1574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 1574 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
1575 _mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P) | 1575 _mm256_cmp_epu8_mask (__m256i __X, __m256i __Y, const int __P) |
1576 { | 1576 { |
1577 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | 1577 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, |
1578 (__v32qi) __Y, __P, | 1578 (__v32qi) __Y, __P, |
1996 (__mmask32)-1)) | 1996 (__mmask32)-1)) |
1997 | 1997 |
1998 #define _mm_mask_cmp_epi16_mask(M, X, Y, P) \ | 1998 #define _mm_mask_cmp_epi16_mask(M, X, Y, P) \ |
1999 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \ | 1999 ((__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi)(__m128i)(X), \ |
2000 (__v8hi)(__m128i)(Y), (int)(P),\ | 2000 (__v8hi)(__m128i)(Y), (int)(P),\ |
2001 (__mmask16)(M))) | 2001 (__mmask8)(M))) |
2002 | 2002 |
2003 #define _mm_mask_cmp_epi8_mask(M, X, Y, P) \ | 2003 #define _mm_mask_cmp_epi8_mask(M, X, Y, P) \ |
2004 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \ | 2004 ((__mmask16) __builtin_ia32_cmpb128_mask ((__v16qi)(__m128i)(X), \ |
2005 (__v16qi)(__m128i)(Y), (int)(P),\ | 2005 (__v16qi)(__m128i)(Y), (int)(P),\ |
2006 (__mmask16)(M))) | 2006 (__mmask16)(M))) |
2428 (__mmask8) __U); | 2428 (__mmask8) __U); |
2429 } | 2429 } |
2430 | 2430 |
2431 extern __inline __m256i | 2431 extern __inline __m256i |
2432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 2432 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
2433 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask32 __U, __m128i __A) | 2433 _mm256_mask_cvtepi8_epi16 (__m256i __W, __mmask16 __U, __m128i __A) |
2434 { | 2434 { |
2435 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A, | 2435 return (__m256i) __builtin_ia32_pmovsxbw256_mask ((__v16qi) __A, |
2436 (__v16hi) __W, | 2436 (__v16hi) __W, |
2437 (__mmask16) __U); | 2437 (__mmask16) __U); |
2438 } | 2438 } |
2447 (__mmask16) __U); | 2447 (__mmask16) __U); |
2448 } | 2448 } |
2449 | 2449 |
2450 extern __inline __m128i | 2450 extern __inline __m128i |
2451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 2451 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
2452 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask32 __U, __m128i __A) | 2452 _mm_mask_cvtepi8_epi16 (__m128i __W, __mmask8 __U, __m128i __A) |
2453 { | 2453 { |
2454 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A, | 2454 return (__m128i) __builtin_ia32_pmovsxbw128_mask ((__v16qi) __A, |
2455 (__v8hi) __W, | 2455 (__v8hi) __W, |
2456 (__mmask8) __U); | 2456 (__mmask8) __U); |
2457 } | 2457 } |
2466 (__mmask8) __U); | 2466 (__mmask8) __U); |
2467 } | 2467 } |
2468 | 2468 |
2469 extern __inline __m256i | 2469 extern __inline __m256i |
2470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 2470 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
2471 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask32 __U, __m128i __A) | 2471 _mm256_mask_cvtepu8_epi16 (__m256i __W, __mmask16 __U, __m128i __A) |
2472 { | 2472 { |
2473 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A, | 2473 return (__m256i) __builtin_ia32_pmovzxbw256_mask ((__v16qi) __A, |
2474 (__v16hi) __W, | 2474 (__v16hi) __W, |
2475 (__mmask16) __U); | 2475 (__mmask16) __U); |
2476 } | 2476 } |
2485 (__mmask16) __U); | 2485 (__mmask16) __U); |
2486 } | 2486 } |
2487 | 2487 |
2488 extern __inline __m128i | 2488 extern __inline __m128i |
2489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 2489 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
2490 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask32 __U, __m128i __A) | 2490 _mm_mask_cvtepu8_epi16 (__m128i __W, __mmask8 __U, __m128i __A) |
2491 { | 2491 { |
2492 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A, | 2492 return (__m128i) __builtin_ia32_pmovzxbw128_mask ((__v16qi) __A, |
2493 (__v8hi) __W, | 2493 (__v8hi) __W, |
2494 (__mmask8) __U); | 2494 (__mmask8) __U); |
2495 } | 2495 } |
4344 __M); | 4344 __M); |
4345 } | 4345 } |
4346 | 4346 |
4347 extern __inline __m128i | 4347 extern __inline __m128i |
4348 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4348 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4349 _mm_mask_packus_epi32 (__m128i __W, __mmask16 __M, __m128i __A, | 4349 _mm_mask_packus_epi32 (__m128i __W, __mmask8 __M, __m128i __A, |
4350 __m128i __B) | 4350 __m128i __B) |
4351 { | 4351 { |
4352 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, | 4352 return (__m128i) __builtin_ia32_packusdw128_mask ((__v4si) __A, |
4353 (__v4si) __B, | 4353 (__v4si) __B, |
4354 (__v8hi) __W, __M); | 4354 (__v8hi) __W, __M); |
4387 __M); | 4387 __M); |
4388 } | 4388 } |
4389 | 4389 |
4390 extern __inline __m128i | 4390 extern __inline __m128i |
4391 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4391 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4392 _mm_mask_packs_epi32 (__m128i __W, __mmask16 __M, __m128i __A, | 4392 _mm_mask_packs_epi32 (__m128i __W, __mmask8 __M, __m128i __A, |
4393 __m128i __B) | 4393 __m128i __B) |
4394 { | 4394 { |
4395 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, | 4395 return (__m128i) __builtin_ia32_packssdw128_mask ((__v4si) __A, |
4396 (__v4si) __B, | 4396 (__v4si) __B, |
4397 (__v8hi) __W, __M); | 4397 (__v8hi) __W, __M); |
4539 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, | 4539 return (__mmask8) __builtin_ia32_cmpw128_mask ((__v8hi) __X, |
4540 (__v8hi) __Y, 2, | 4540 (__v8hi) __Y, 2, |
4541 (__mmask8) __M); | 4541 (__mmask8) __M); |
4542 } | 4542 } |
4543 | 4543 |
4544 extern __inline __mmask8 | 4544 extern __inline __mmask32 |
4545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4545 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4546 _mm256_mask_cmpneq_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4546 _mm256_mask_cmpneq_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y) |
4547 { | 4547 { |
4548 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | 4548 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, |
4549 (__v32qi) __Y, 4, | |
4550 (__mmask32) __M); | |
4551 } | |
4552 | |
4553 extern __inline __mmask32 | |
4554 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4555 _mm256_mask_cmplt_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y) | |
4556 { | |
4557 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | |
4558 (__v32qi) __Y, 1, | |
4559 (__mmask32) __M); | |
4560 } | |
4561 | |
4562 extern __inline __mmask32 | |
4563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4564 _mm256_mask_cmpge_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y) | |
4565 { | |
4566 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | |
4567 (__v32qi) __Y, 5, | |
4568 (__mmask32) __M); | |
4569 } | |
4570 | |
4571 extern __inline __mmask32 | |
4572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4573 _mm256_mask_cmple_epu8_mask (__mmask32 __M, __m256i __X, __m256i __Y) | |
4574 { | |
4575 return (__mmask32) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | |
4576 (__v32qi) __Y, 2, | |
4577 (__mmask32) __M); | |
4578 } | |
4579 | |
4580 extern __inline __mmask16 | |
4581 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4582 _mm256_mask_cmpneq_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y) | |
4583 { | |
4584 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | |
4585 (__v16hi) __Y, 4, | |
4586 (__mmask16) __M); | |
4587 } | |
4588 | |
4589 extern __inline __mmask16 | |
4590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4591 _mm256_mask_cmplt_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y) | |
4592 { | |
4593 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | |
4594 (__v16hi) __Y, 1, | |
4595 (__mmask16) __M); | |
4596 } | |
4597 | |
4598 extern __inline __mmask16 | |
4599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4600 _mm256_mask_cmpge_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y) | |
4601 { | |
4602 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | |
4603 (__v16hi) __Y, 5, | |
4604 (__mmask16) __M); | |
4605 } | |
4606 | |
4607 extern __inline __mmask16 | |
4608 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4609 _mm256_mask_cmple_epu16_mask (__mmask16 __M, __m256i __X, __m256i __Y) | |
4610 { | |
4611 return (__mmask16) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | |
4612 (__v16hi) __Y, 2, | |
4613 (__mmask16) __M); | |
4614 } | |
4615 | |
4616 extern __inline __mmask32 | |
4617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4618 _mm256_mask_cmpneq_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y) | |
4619 { | |
4620 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, | |
4549 (__v32qi) __Y, 4, | 4621 (__v32qi) __Y, 4, |
4550 (__mmask8) __M); | 4622 (__mmask32) __M); |
4551 } | 4623 } |
4552 | 4624 |
4553 extern __inline __mmask8 | 4625 extern __inline __mmask32 |
4554 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4626 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4555 _mm256_mask_cmplt_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4627 _mm256_mask_cmplt_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y) |
4556 { | 4628 { |
4557 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | 4629 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, |
4558 (__v32qi) __Y, 1, | 4630 (__v32qi) __Y, 1, |
4559 (__mmask8) __M); | 4631 (__mmask32) __M); |
4560 } | 4632 } |
4561 | 4633 |
4562 extern __inline __mmask8 | 4634 extern __inline __mmask32 |
4563 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4635 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4564 _mm256_mask_cmpge_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4636 _mm256_mask_cmpge_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y) |
4565 { | 4637 { |
4566 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | 4638 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, |
4567 (__v32qi) __Y, 5, | 4639 (__v32qi) __Y, 5, |
4568 (__mmask8) __M); | 4640 (__mmask32) __M); |
4569 } | 4641 } |
4570 | 4642 |
4571 extern __inline __mmask8 | 4643 extern __inline __mmask32 |
4572 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4644 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4573 _mm256_mask_cmple_epu8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4645 _mm256_mask_cmple_epi8_mask (__mmask32 __M, __m256i __X, __m256i __Y) |
4574 { | 4646 { |
4575 return (__mmask8) __builtin_ia32_ucmpb256_mask ((__v32qi) __X, | 4647 return (__mmask32) __builtin_ia32_cmpb256_mask ((__v32qi) __X, |
4576 (__v32qi) __Y, 2, | 4648 (__v32qi) __Y, 2, |
4577 (__mmask8) __M); | 4649 (__mmask32) __M); |
4578 } | 4650 } |
4579 | 4651 |
4580 extern __inline __mmask8 | 4652 extern __inline __mmask16 |
4581 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4653 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4582 _mm256_mask_cmpneq_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4654 _mm256_mask_cmpneq_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y) |
4583 { | 4655 { |
4584 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | 4656 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, |
4585 (__v16hi) __Y, 4, | 4657 (__v16hi) __Y, 4, |
4586 (__mmask8) __M); | 4658 (__mmask16) __M); |
4587 } | 4659 } |
4588 | 4660 |
4589 extern __inline __mmask8 | 4661 extern __inline __mmask16 |
4590 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4591 _mm256_mask_cmplt_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4663 _mm256_mask_cmplt_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y) |
4592 { | 4664 { |
4593 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | 4665 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, |
4594 (__v16hi) __Y, 1, | 4666 (__v16hi) __Y, 1, |
4595 (__mmask8) __M); | 4667 (__mmask16) __M); |
4596 } | 4668 } |
4597 | 4669 |
4598 extern __inline __mmask8 | 4670 extern __inline __mmask16 |
4599 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4600 _mm256_mask_cmpge_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4672 _mm256_mask_cmpge_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y) |
4601 { | 4673 { |
4602 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | 4674 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, |
4603 (__v16hi) __Y, 5, | 4675 (__v16hi) __Y, 5, |
4604 (__mmask8) __M); | 4676 (__mmask16) __M); |
4605 } | 4677 } |
4606 | 4678 |
4607 extern __inline __mmask8 | 4679 extern __inline __mmask16 |
4608 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | 4680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) |
4609 _mm256_mask_cmple_epu16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | 4681 _mm256_mask_cmple_epi16_mask (__mmask16 __M, __m256i __X, __m256i __Y) |
4610 { | 4682 { |
4611 return (__mmask8) __builtin_ia32_ucmpw256_mask ((__v16hi) __X, | 4683 return (__mmask16) __builtin_ia32_cmpw256_mask ((__v16hi) __X, |
4612 (__v16hi) __Y, 2, | 4684 (__v16hi) __Y, 2, |
4613 (__mmask8) __M); | 4685 (__mmask16) __M); |
4614 } | |
4615 | |
4616 extern __inline __mmask8 | |
4617 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4618 _mm256_mask_cmpneq_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4619 { | |
4620 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, | |
4621 (__v32qi) __Y, 4, | |
4622 (__mmask8) __M); | |
4623 } | |
4624 | |
4625 extern __inline __mmask8 | |
4626 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4627 _mm256_mask_cmplt_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4628 { | |
4629 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, | |
4630 (__v32qi) __Y, 1, | |
4631 (__mmask8) __M); | |
4632 } | |
4633 | |
4634 extern __inline __mmask8 | |
4635 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4636 _mm256_mask_cmpge_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4637 { | |
4638 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, | |
4639 (__v32qi) __Y, 5, | |
4640 (__mmask8) __M); | |
4641 } | |
4642 | |
4643 extern __inline __mmask8 | |
4644 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4645 _mm256_mask_cmple_epi8_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4646 { | |
4647 return (__mmask8) __builtin_ia32_cmpb256_mask ((__v32qi) __X, | |
4648 (__v32qi) __Y, 2, | |
4649 (__mmask8) __M); | |
4650 } | |
4651 | |
4652 extern __inline __mmask8 | |
4653 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4654 _mm256_mask_cmpneq_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4655 { | |
4656 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, | |
4657 (__v16hi) __Y, 4, | |
4658 (__mmask8) __M); | |
4659 } | |
4660 | |
4661 extern __inline __mmask8 | |
4662 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4663 _mm256_mask_cmplt_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4664 { | |
4665 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, | |
4666 (__v16hi) __Y, 1, | |
4667 (__mmask8) __M); | |
4668 } | |
4669 | |
4670 extern __inline __mmask8 | |
4671 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4672 _mm256_mask_cmpge_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4673 { | |
4674 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, | |
4675 (__v16hi) __Y, 5, | |
4676 (__mmask8) __M); | |
4677 } | |
4678 | |
4679 extern __inline __mmask8 | |
4680 __attribute__ ((__gnu_inline__, __always_inline__, __artificial__)) | |
4681 _mm256_mask_cmple_epi16_mask (__mmask8 __M, __m256i __X, __m256i __Y) | |
4682 { | |
4683 return (__mmask8) __builtin_ia32_cmpw256_mask ((__v16hi) __X, | |
4684 (__v16hi) __Y, 2, | |
4685 (__mmask8) __M); | |
4686 } | 4686 } |
4687 | 4687 |
4688 #ifdef __DISABLE_AVX512VLBW__ | 4688 #ifdef __DISABLE_AVX512VLBW__ |
4689 #undef __DISABLE_AVX512VLBW__ | 4689 #undef __DISABLE_AVX512VLBW__ |
4690 #pragma GCC pop_options | 4690 #pragma GCC pop_options |