comparison gcc/config/rs6000/mmintrin.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) 2002-2017 Free Software Foundation, Inc. 1 /* Copyright (C) 2002-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
47 47
48 Most MMX intrinsic operations can be performed efficiently as 48 Most MMX intrinsic operations can be performed efficiently as
49 C language 64-bit scalar operation or optimized to use the newer 49 C language 64-bit scalar operation or optimized to use the newer
50 128-bit SSE/Altivec operations. We recomend this for new 50 128-bit SSE/Altivec operations. We recomend this for new
51 applications. */ 51 applications. */
52 #warning "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this warning." 52 #error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error."
53 #endif 53 #endif
54 54
55 #ifndef _MMINTRIN_H_INCLUDED 55 #ifndef _MMINTRIN_H_INCLUDED
56 #define _MMINTRIN_H_INCLUDED 56 #define _MMINTRIN_H_INCLUDED
57 57
234 __vector unsigned char a, b, c; 234 __vector unsigned char a, b, c;
235 235
236 a = (__vector unsigned char)vec_splats (__m1); 236 a = (__vector unsigned char)vec_splats (__m1);
237 b = (__vector unsigned char)vec_splats (__m2); 237 b = (__vector unsigned char)vec_splats (__m2);
238 c = vec_mergel (a, b); 238 c = vec_mergel (a, b);
239 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 239 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
240 #else 240 #else
241 __m64_union m1, m2, res; 241 __m64_union m1, m2, res;
242 242
243 m1.as_m64 = __m1; 243 m1.as_m64 = __m1;
244 m2.as_m64 = __m2; 244 m2.as_m64 = __m2;
315 __vector unsigned char a, b, c; 315 __vector unsigned char a, b, c;
316 316
317 a = (__vector unsigned char)vec_splats (__m1); 317 a = (__vector unsigned char)vec_splats (__m1);
318 b = (__vector unsigned char)vec_splats (__m2); 318 b = (__vector unsigned char)vec_splats (__m2);
319 c = vec_mergel (a, b); 319 c = vec_mergel (a, b);
320 return (__builtin_unpack_vector_int128 ((vector __int128_t)c, 1)); 320 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 1));
321 #else 321 #else
322 __m64_union m1, m2, res; 322 __m64_union m1, m2, res;
323 323
324 m1.as_m64 = __m1; 324 m1.as_m64 = __m1;
325 m2.as_m64 = __m2; 325 m2.as_m64 = __m2;
396 __vector signed char a, b, c; 396 __vector signed char a, b, c;
397 397
398 a = (__vector signed char)vec_splats (__m1); 398 a = (__vector signed char)vec_splats (__m1);
399 b = (__vector signed char)vec_splats (__m2); 399 b = (__vector signed char)vec_splats (__m2);
400 c = vec_add (a, b); 400 c = vec_add (a, b);
401 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 401 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
402 #else 402 #else
403 __m64_union m1, m2, res; 403 __m64_union m1, m2, res;
404 404
405 m1.as_m64 = __m1; 405 m1.as_m64 = __m1;
406 m2.as_m64 = __m2; 406 m2.as_m64 = __m2;
432 __vector signed short a, b, c; 432 __vector signed short a, b, c;
433 433
434 a = (__vector signed short)vec_splats (__m1); 434 a = (__vector signed short)vec_splats (__m1);
435 b = (__vector signed short)vec_splats (__m2); 435 b = (__vector signed short)vec_splats (__m2);
436 c = vec_add (a, b); 436 c = vec_add (a, b);
437 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 437 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
438 #else 438 #else
439 __m64_union m1, m2, res; 439 __m64_union m1, m2, res;
440 440
441 m1.as_m64 = __m1; 441 m1.as_m64 = __m1;
442 m2.as_m64 = __m2; 442 m2.as_m64 = __m2;
461 _mm_add_pi32 (__m64 __m1, __m64 __m2) 461 _mm_add_pi32 (__m64 __m1, __m64 __m2)
462 { 462 {
463 #if _ARCH_PWR9 463 #if _ARCH_PWR9
464 __vector signed int a, b, c; 464 __vector signed int a, b, c;
465 465
466 a = (__vector signed int)vec_splats (__m1, __m1); 466 a = (__vector signed int)vec_splats (__m1);
467 b = (__vector signed int)vec_splats (__m2, __m2); 467 b = (__vector signed int)vec_splats (__m2);
468 c = vec_add (a, b); 468 c = vec_add (a, b);
469 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 469 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
470 #else 470 #else
471 __m64_union m1, m2, res; 471 __m64_union m1, m2, res;
472 472
473 m1.as_m64 = __m1; 473 m1.as_m64 = __m1;
474 m2.as_m64 = __m2; 474 m2.as_m64 = __m2;
494 __vector signed char a, b, c; 494 __vector signed char a, b, c;
495 495
496 a = (__vector signed char)vec_splats (__m1); 496 a = (__vector signed char)vec_splats (__m1);
497 b = (__vector signed char)vec_splats (__m2); 497 b = (__vector signed char)vec_splats (__m2);
498 c = vec_sub (a, b); 498 c = vec_sub (a, b);
499 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 499 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
500 #else 500 #else
501 __m64_union m1, m2, res; 501 __m64_union m1, m2, res;
502 502
503 m1.as_m64 = __m1; 503 m1.as_m64 = __m1;
504 m2.as_m64 = __m2; 504 m2.as_m64 = __m2;
530 __vector signed short a, b, c; 530 __vector signed short a, b, c;
531 531
532 a = (__vector signed short)vec_splats (__m1); 532 a = (__vector signed short)vec_splats (__m1);
533 b = (__vector signed short)vec_splats (__m2); 533 b = (__vector signed short)vec_splats (__m2);
534 c = vec_sub (a, b); 534 c = vec_sub (a, b);
535 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 535 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
536 #else 536 #else
537 __m64_union m1, m2, res; 537 __m64_union m1, m2, res;
538 538
539 m1.as_m64 = __m1; 539 m1.as_m64 = __m1;
540 m2.as_m64 = __m2; 540 m2.as_m64 = __m2;
562 __vector signed int a, b, c; 562 __vector signed int a, b, c;
563 563
564 a = (__vector signed int)vec_splats (__m1); 564 a = (__vector signed int)vec_splats (__m1);
565 b = (__vector signed int)vec_splats (__m2); 565 b = (__vector signed int)vec_splats (__m2);
566 c = vec_sub (a, b); 566 c = vec_sub (a, b);
567 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 567 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
568 #else 568 #else
569 __m64_union m1, m2, res; 569 __m64_union m1, m2, res;
570 570
571 m1.as_m64 = __m1; 571 m1.as_m64 = __m1;
572 m2.as_m64 = __m2; 572 m2.as_m64 = __m2;
752 __vector signed char a, b, c; 752 __vector signed char a, b, c;
753 753
754 a = (__vector signed char)vec_splats (__m1); 754 a = (__vector signed char)vec_splats (__m1);
755 b = (__vector signed char)vec_splats (__m2); 755 b = (__vector signed char)vec_splats (__m2);
756 c = (__vector signed char)vec_cmpgt (a, b); 756 c = (__vector signed char)vec_cmpgt (a, b);
757 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 757 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
758 #else 758 #else
759 __m64_union m1, m2, res; 759 __m64_union m1, m2, res;
760 760
761 m1.as_m64 = __m1; 761 m1.as_m64 = __m1;
762 m2.as_m64 = __m2; 762 m2.as_m64 = __m2;
789 __vector signed short a, b, c; 789 __vector signed short a, b, c;
790 790
791 a = (__vector signed short)vec_splats (__m1); 791 a = (__vector signed short)vec_splats (__m1);
792 b = (__vector signed short)vec_splats (__m2); 792 b = (__vector signed short)vec_splats (__m2);
793 c = (__vector signed short)vec_cmpeq (a, b); 793 c = (__vector signed short)vec_cmpeq (a, b);
794 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 794 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
795 #else 795 #else
796 __m64_union m1, m2, res; 796 __m64_union m1, m2, res;
797 797
798 m1.as_m64 = __m1; 798 m1.as_m64 = __m1;
799 m2.as_m64 = __m2; 799 m2.as_m64 = __m2;
820 __vector signed short a, b, c; 820 __vector signed short a, b, c;
821 821
822 a = (__vector signed short)vec_splats (__m1); 822 a = (__vector signed short)vec_splats (__m1);
823 b = (__vector signed short)vec_splats (__m2); 823 b = (__vector signed short)vec_splats (__m2);
824 c = (__vector signed short)vec_cmpgt (a, b); 824 c = (__vector signed short)vec_cmpgt (a, b);
825 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 825 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
826 #else 826 #else
827 __m64_union m1, m2, res; 827 __m64_union m1, m2, res;
828 828
829 m1.as_m64 = __m1; 829 m1.as_m64 = __m1;
830 m2.as_m64 = __m2; 830 m2.as_m64 = __m2;
852 #if _ARCH_PWR9 852 #if _ARCH_PWR9
853 __vector signed int a, b, c; 853 __vector signed int a, b, c;
854 854
855 a = (__vector signed int)vec_splats (__m1); 855 a = (__vector signed int)vec_splats (__m1);
856 b = (__vector signed int)vec_splats (__m2); 856 b = (__vector signed int)vec_splats (__m2);
857 c = (__vector signed short)vec_cmpeq (a, b); 857 c = (__vector signed int)vec_cmpeq (a, b);
858 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 858 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
859 #else 859 #else
860 __m64_union m1, m2, res; 860 __m64_union m1, m2, res;
861 861
862 m1.as_m64 = __m1; 862 m1.as_m64 = __m1;
863 m2.as_m64 = __m2; 863 m2.as_m64 = __m2;
881 #if _ARCH_PWR9 881 #if _ARCH_PWR9
882 __vector signed int a, b, c; 882 __vector signed int a, b, c;
883 883
884 a = (__vector signed int)vec_splats (__m1); 884 a = (__vector signed int)vec_splats (__m1);
885 b = (__vector signed int)vec_splats (__m2); 885 b = (__vector signed int)vec_splats (__m2);
886 c = (__vector signed short)vec_cmpgt (a, b); 886 c = (__vector signed int)vec_cmpgt (a, b);
887 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 887 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
888 #else 888 #else
889 __m64_union m1, m2, res; 889 __m64_union m1, m2, res;
890 890
891 m1.as_m64 = __m1; 891 m1.as_m64 = __m1;
892 m2.as_m64 = __m2; 892 m2.as_m64 = __m2;
913 __vector signed char a, b, c; 913 __vector signed char a, b, c;
914 914
915 a = (__vector signed char)vec_splats (__m1); 915 a = (__vector signed char)vec_splats (__m1);
916 b = (__vector signed char)vec_splats (__m2); 916 b = (__vector signed char)vec_splats (__m2);
917 c = vec_adds (a, b); 917 c = vec_adds (a, b);
918 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 918 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
919 } 919 }
920 920
921 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 921 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
922 _m_paddsb (__m64 __m1, __m64 __m2) 922 _m_paddsb (__m64 __m1, __m64 __m2)
923 { 923 {
931 __vector signed short a, b, c; 931 __vector signed short a, b, c;
932 932
933 a = (__vector signed short)vec_splats (__m1); 933 a = (__vector signed short)vec_splats (__m1);
934 b = (__vector signed short)vec_splats (__m2); 934 b = (__vector signed short)vec_splats (__m2);
935 c = vec_adds (a, b); 935 c = vec_adds (a, b);
936 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 936 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
937 } 937 }
938 938
939 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 939 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
940 _m_paddsw (__m64 __m1, __m64 __m2) 940 _m_paddsw (__m64 __m1, __m64 __m2)
941 { 941 {
949 __vector unsigned char a, b, c; 949 __vector unsigned char a, b, c;
950 950
951 a = (__vector unsigned char)vec_splats (__m1); 951 a = (__vector unsigned char)vec_splats (__m1);
952 b = (__vector unsigned char)vec_splats (__m2); 952 b = (__vector unsigned char)vec_splats (__m2);
953 c = vec_adds (a, b); 953 c = vec_adds (a, b);
954 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 954 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
955 } 955 }
956 956
957 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 957 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
958 _m_paddusb (__m64 __m1, __m64 __m2) 958 _m_paddusb (__m64 __m1, __m64 __m2)
959 { 959 {
968 __vector unsigned short a, b, c; 968 __vector unsigned short a, b, c;
969 969
970 a = (__vector unsigned short)vec_splats (__m1); 970 a = (__vector unsigned short)vec_splats (__m1);
971 b = (__vector unsigned short)vec_splats (__m2); 971 b = (__vector unsigned short)vec_splats (__m2);
972 c = vec_adds (a, b); 972 c = vec_adds (a, b);
973 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 973 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
974 } 974 }
975 975
976 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 976 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
977 _m_paddusw (__m64 __m1, __m64 __m2) 977 _m_paddusw (__m64 __m1, __m64 __m2)
978 { 978 {
987 __vector signed char a, b, c; 987 __vector signed char a, b, c;
988 988
989 a = (__vector signed char)vec_splats (__m1); 989 a = (__vector signed char)vec_splats (__m1);
990 b = (__vector signed char)vec_splats (__m2); 990 b = (__vector signed char)vec_splats (__m2);
991 c = vec_subs (a, b); 991 c = vec_subs (a, b);
992 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 992 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
993 } 993 }
994 994
995 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 995 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
996 _m_psubsb (__m64 __m1, __m64 __m2) 996 _m_psubsb (__m64 __m1, __m64 __m2)
997 { 997 {
1006 __vector signed short a, b, c; 1006 __vector signed short a, b, c;
1007 1007
1008 a = (__vector signed short)vec_splats (__m1); 1008 a = (__vector signed short)vec_splats (__m1);
1009 b = (__vector signed short)vec_splats (__m2); 1009 b = (__vector signed short)vec_splats (__m2);
1010 c = vec_subs (a, b); 1010 c = vec_subs (a, b);
1011 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 1011 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
1012 } 1012 }
1013 1013
1014 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1014 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1015 _m_psubsw (__m64 __m1, __m64 __m2) 1015 _m_psubsw (__m64 __m1, __m64 __m2)
1016 { 1016 {
1025 __vector unsigned char a, b, c; 1025 __vector unsigned char a, b, c;
1026 1026
1027 a = (__vector unsigned char)vec_splats (__m1); 1027 a = (__vector unsigned char)vec_splats (__m1);
1028 b = (__vector unsigned char)vec_splats (__m2); 1028 b = (__vector unsigned char)vec_splats (__m2);
1029 c = vec_subs (a, b); 1029 c = vec_subs (a, b);
1030 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 1030 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
1031 } 1031 }
1032 1032
1033 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1033 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1034 _m_psubusb (__m64 __m1, __m64 __m2) 1034 _m_psubusb (__m64 __m1, __m64 __m2)
1035 { 1035 {
1044 __vector unsigned short a, b, c; 1044 __vector unsigned short a, b, c;
1045 1045
1046 a = (__vector unsigned short)vec_splats (__m1); 1046 a = (__vector unsigned short)vec_splats (__m1);
1047 b = (__vector unsigned short)vec_splats (__m2); 1047 b = (__vector unsigned short)vec_splats (__m2);
1048 c = vec_subs (a, b); 1048 c = vec_subs (a, b);
1049 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 1049 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
1050 } 1050 }
1051 1051
1052 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1052 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1053 _m_psubusw (__m64 __m1, __m64 __m2) 1053 _m_psubusw (__m64 __m1, __m64 __m2)
1054 { 1054 {
1066 __vector signed int zero = {0, 0, 0, 0}; 1066 __vector signed int zero = {0, 0, 0, 0};
1067 1067
1068 a = (__vector signed short)vec_splats (__m1); 1068 a = (__vector signed short)vec_splats (__m1);
1069 b = (__vector signed short)vec_splats (__m2); 1069 b = (__vector signed short)vec_splats (__m2);
1070 c = vec_vmsumshm (a, b, zero); 1070 c = vec_vmsumshm (a, b, zero);
1071 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 1071 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
1072 } 1072 }
1073 1073
1074 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1074 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1075 _m_pmaddwd (__m64 __m1, __m64 __m2) 1075 _m_pmaddwd (__m64 __m1, __m64 __m2)
1076 { 1076 {
1094 1094
1095 w0 = vec_vmulesh (a, b); 1095 w0 = vec_vmulesh (a, b);
1096 w1 = vec_vmulosh (a, b); 1096 w1 = vec_vmulosh (a, b);
1097 c = (__vector signed short)vec_perm (w0, w1, xform1); 1097 c = (__vector signed short)vec_perm (w0, w1, xform1);
1098 1098
1099 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 1099 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
1100 } 1100 }
1101 1101
1102 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1102 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1103 _m_pmulhw (__m64 __m1, __m64 __m2) 1103 _m_pmulhw (__m64 __m1, __m64 __m2)
1104 { 1104 {
1113 __vector signed short a, b, c; 1113 __vector signed short a, b, c;
1114 1114
1115 a = (__vector signed short)vec_splats (__m1); 1115 a = (__vector signed short)vec_splats (__m1);
1116 b = (__vector signed short)vec_splats (__m2); 1116 b = (__vector signed short)vec_splats (__m2);
1117 c = a * b; 1117 c = a * b;
1118 return (__builtin_unpack_vector_int128 ((__vector __int128_t)c, 0)); 1118 return (__builtin_unpack_vector_int128 ((__vector __int128)c, 0));
1119 } 1119 }
1120 1120
1121 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) 1121 extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
1122 _m_pmullw (__m64 __m1, __m64 __m2) 1122 _m_pmullw (__m64 __m1, __m64 __m2)
1123 { 1123 {
1134 if (__count <= 15) 1134 if (__count <= 15)
1135 { 1135 {
1136 m = (__vector signed short)vec_splats (__m); 1136 m = (__vector signed short)vec_splats (__m);
1137 c = (__vector unsigned short)vec_splats ((unsigned short)__count); 1137 c = (__vector unsigned short)vec_splats ((unsigned short)__count);
1138 r = vec_sl (m, (__vector unsigned short)c); 1138 r = vec_sl (m, (__vector unsigned short)c);
1139 return (__builtin_unpack_vector_int128 ((__vector __int128_t)r, 0)); 1139 return (__builtin_unpack_vector_int128 ((__vector __int128)r, 0));
1140 } 1140 }
1141 else 1141 else
1142 return (0); 1142 return (0);
1143 } 1143 }
1144 1144
1203 if (__count <= 15) 1203 if (__count <= 15)
1204 { 1204 {
1205 m = (__vector signed short)vec_splats (__m); 1205 m = (__vector signed short)vec_splats (__m);
1206 c = (__vector unsigned short)vec_splats ((unsigned short)__count); 1206 c = (__vector unsigned short)vec_splats ((unsigned short)__count);
1207 r = vec_sra (m, (__vector unsigned short)c); 1207 r = vec_sra (m, (__vector unsigned short)c);
1208 return (__builtin_unpack_vector_int128 ((__vector __int128_t)r, 0)); 1208 return (__builtin_unpack_vector_int128 ((__vector __int128)r, 0));
1209 } 1209 }
1210 else 1210 else
1211 return (0); 1211 return (0);
1212 } 1212 }
1213 1213
1272 if (__count <= 15) 1272 if (__count <= 15)
1273 { 1273 {
1274 m = (__vector unsigned short)vec_splats (__m); 1274 m = (__vector unsigned short)vec_splats (__m);
1275 c = (__vector unsigned short)vec_splats ((unsigned short)__count); 1275 c = (__vector unsigned short)vec_splats ((unsigned short)__count);
1276 r = vec_sr (m, (__vector unsigned short)c); 1276 r = vec_sr (m, (__vector unsigned short)c);
1277 return (__builtin_unpack_vector_int128 ((__vector __int128_t)r, 0)); 1277 return (__builtin_unpack_vector_int128 ((__vector __int128)r, 0));
1278 } 1278 }
1279 else 1279 else
1280 return (0); 1280 return (0);
1281 } 1281 }
1282 1282
1415 { 1415 {
1416 #if _ARCH_PWR9 1416 #if _ARCH_PWR9
1417 __vector signed short w; 1417 __vector signed short w;
1418 1418
1419 w = (__vector signed short)vec_splats (__w); 1419 w = (__vector signed short)vec_splats (__w);
1420 return (__builtin_unpack_vector_int128 ((__vector __int128_t)w, 0)); 1420 return (__builtin_unpack_vector_int128 ((__vector __int128)w, 0));
1421 #else 1421 #else
1422 __m64_union res; 1422 __m64_union res;
1423 1423
1424 res.as_short[0] = __w; 1424 res.as_short[0] = __w;
1425 res.as_short[1] = __w; 1425 res.as_short[1] = __w;
1435 { 1435 {
1436 #if _ARCH_PWR8 1436 #if _ARCH_PWR8
1437 __vector signed char b; 1437 __vector signed char b;
1438 1438
1439 b = (__vector signed char)vec_splats (__b); 1439 b = (__vector signed char)vec_splats (__b);
1440 return (__builtin_unpack_vector_int128 ((__vector __int128_t)b, 0)); 1440 return (__builtin_unpack_vector_int128 ((__vector __int128)b, 0));
1441 #else 1441 #else
1442 __m64_union res; 1442 __m64_union res;
1443 1443
1444 res.as_char[0] = __b; 1444 res.as_char[0] = __b;
1445 res.as_char[1] = __b; 1445 res.as_char[1] = __b;